Sie sagten "kleiner Mikrocontroller und hatten keine Schnittstelle, keinen Computer, keinen Debugger, keinen Compiler oder Assembler." Sie können ohne Computer, Debugger, Compiler oder Assembler auskommen, benötigen jedoch eine Schnittstelle, um eine Verbindung mit dem Mikrocontroller herzustellen und das Programm zu laden.
Vergessen Sie zuallererst alle höheren Sprachen wie C. Dann ist es am einfachsten, Ihr Programm in Assemblersprache zu schreiben, aber verwenden Sie den Assembler nicht, um es in Maschinencode zu übersetzen. Lesen Sie stattdessen die Montageanweisungen im Programmierhandbuch nach, suchen Sie die entsprechende Hex-Codierung und notieren Sie diese.
Sie müssen Ihre eigenen Variablen zuweisen, damit Sie die entsprechenden Adressen im Operandenteil der Anweisungen eingeben können. Vergessen Sie auch, den Stapel und den Haufen zu verwenden, zu viel Arbeit. Wenn Sie fertig sind, haben Sie ein Maschinenprogramm, das direkt in den Flash-Speicher des Mikrocontrollers geladen werden kann - auch kein Linker erforderlich.
Aufgrund des Fehlens externer Adress- und Datenbusse auf fast allen Mikrocontrollern (da diese zu viele Pins belegen würden, die von E / A-Ports und Peripheriegeräten benötigt werden) werden praktisch alle Mikrocontroller über eine spezielle Schnittstelle wie die folgende programmiert:
Normalerweise ist der "Programmierer" auf der linken Seite mit einem PC verbunden, der eine von einem Compiler / Linker erzeugte Maschinendatei herunterlädt.
Wenn der Programmierer jedoch eine Tastatur hat, wie die folgende:
Dann kann man die Hex-Codes für ein manuell erstelltes Programm direkt in den Programmierer eingeben und das Gerät programmieren, ohne einen Compiler, Linker oder PC zu benötigen, nach dem Sie gefragt haben. (Die Tastatur wird auch zum Bearbeiten von Hex-Dateien und zum Generieren von Prüfsummen verwendet.)
Zugegeben, sehr wenige Programmierer haben Tastaturen wie diese. Dieser wäre für einen Hobbyisten nicht geeignet, da er wahrscheinlich ein paar tausend Dollar kostet.
Dieser spezielle Programmierer programmiert Teile, bevor sie auf eine Platine gelegt werden. Schnittstellen und Buchsen sind unter anderem für mehrere PICs und Atmel AVRs verfügbar.