Pourriez-vous programmer un microcontrôleur sans ordinateur?

16

Disons que vous aviez un microcontrôleur assez simple et petit et que vous n'aviez ni interface, ni ordinateur, ni débogueur, compilateur ou assembleur. Pourriez-vous écrire votre code en assembleur, le convertir (manuellement) en code machine, puis appliquer l'alimentation aux broches appropriées à l'aide d'une source de tension?

Je comprends que vous auriez besoin d'E / S et de mémoire appropriées pour vraiment faire quoi que ce soit, mais si vous étiez si enclin et si vous aviez le temps, pourriez-vous faire cela? Je suppose que, historiquement, comment cela a-t-il été fait alors qu'il n'y avait pas d'ordinateur / compilateur / assembleur pour commencer? N'hésitez pas à me lier à une ressource extérieure. Merci! :)

idle_engineer
la source
3
Jetez un œil à l'Altair 1. Les commutateurs du panneau avant et la programmation manuelle de la machine étaient la seule façon de l'utiliser.
pjc50
@ pj50 Il a posé des questions sur un microcontrôleur, pas sur un microprocesseur. Les microcontrôleurs exécutent leur code notre flash qui n'est pas accessible sans une interface quelconque.
tcrosley
De combien d'unités programmées avez-vous besoin? De nombreux fabricants fourniront leurs micros préprogrammés avec votre code; cependant, ce n'est pas pratique si vous avez besoin de moins qu'une bobine complète.
Oleg Mazurov
2
Dans les années 70, vous auriez construit un panneau d'interrupteurs à bascule et de lumières pour pouvoir entrer dans le programme. Je n'ai jamais travaillé avec l'un des premiers microcontrôleurs, mais j'ai travaillé avec plusieurs microprocesseurs différents, et c'est comme ça que vous avez fait, par défaut. Et il n'y avait pas de différence fondamentale entre les premiers microcontrôleurs et microprocesseurs autres que les capacités d'E / S et certains détails de la configuration de la mémoire du programme.
Hot Licks
Je vais laisser cela comme un commentaire car je ne trouve pas la source de cette histoire. Je me souviens de l'histoire d'un enfant qui a conçu et construit son propre ordinateur (juste le CPU vraiment) à partir de transistors pour une expo-sciences uniquement basée sur sa compréhension de la logique numérique. Il ne pouvait pas se permettre un ordinateur à l'époque et a programmé sa création via des interrupteurs à bascule (je pense que je me souviens que l'horloge de la chose n'était qu'un bouton). L'un des juges a été tellement impressionné qu'il a acheté un ordinateur à l'enfant.
slebetman

Réponses:

37

Pourriez-vous écrire votre code en assembleur, le convertir (manuellement) en code machine,

Oui!
Le code peut être écrit "hors de votre tête" en binaire, si vous le souhaitez.
Il y a longtemps (très longtemps), c'est ainsi que j'ai commencé à utiliser (à l'époque) des microprocesseurs.
Mes amis et moi écrivions du code en langage assembleur, le compilions manuellement en code machine (quelque chose que vous pouvez faire "par inspection" après une certaine pratique), puis le saisissiez dans le processeur par divers moyens. Sur un système que nous avons construit, nous configurerions l'adresse sur les commutateurs binaires (on off) ou utiliserions une fonction d'incrémentation automatique du processeur, entrer 8 bits de données sur les commutateurs binaires, puis appuyer sur un commutateur "horloge" pour entrer les données en mémoire.

La fonctionnalité équivalente pourrait être obtenue avec encore moins de commutateurs sur un microcontrôleur moderne utilisant la programmation série SPI - voir ci-dessous.

... et ensuite alimenter les broches appropriées à l'aide d'une source de tension?

Oui!
Mais ce serait incroyablement lent à faire!
De nombreux microcontrôleurs modernes permettent d'utiliser une interface "SPI" pour la programmation.
Il s'agit généralement de lignes de données d'entrée et de sortie et d'une ligne "d'horloge", et généralement d'une ligne de réinitialisation.

De nombreux processeurs permettent à l'horloge SPI et aux données d'être "statiques", ce qui signifie qu'il n'y a pas de limite sur le temps que vous pouvez prendre pour configurer les données entre les bits. Vous pouvez programmer un tel processeur en utilisant une ligne de données et une ligne d'horloge qui étaient pilotées par des commutateurs manuels. La ligne d'horloge doit être "sans rebond" - vous devez pouvoir la régler à un niveau élevé ou faible en une seule transition par opération - une interface minimale peut donc nécessiter une porte déclenchée par Schmitt. Vous pouvez "vous en tirer" avec juste un retard RC et un bouton-poussoir, mais une entrée déclenchée par Schmitt est plus sûre. La ligne de données n'a pas besoin d'être sans rebond car son état n'est lu qu'au bord de l'horloge.

Certaines interfaces sont interactives - les données sont émises par le processeur pendant la programmation (par exemple, sortie des données = MISO = entrée maître en sortie série sur les processeurs AVR). Pour lire ceci, vous devez ajouter, par exemple, une LED et une résistance (et peut-être juste un tampon ou un transistor si la capacité du lecteur était VRAIMENT faible).


MC6800:

De mémoire semi-évanouissante (près de 40 ans!)

LDI A, 7F $ ...... 86 7F ...... 1000 0110 0111 1111
STA, 1234 $ ...... B7 12 34 ... 1011 0111 0001 0010 0011 0100
LDI X, 2734 $ .. CE 27 34 ... 1100 1110 0010 0111 0011 0100
...

Russell McMahon
la source
1
+1 pour avoir mentionné la conception statique, permettant à l'horloge de se rendre jusqu'à DC.
pericynthion le
2
Cela ramène des souvenirs. En fait, j'ai appris à entrer le code Z80 à l'aide de boutons à l'école. C'était vers 1990. Mon professeur a insisté sur le fait que l'apprentissage de la programmation à la dure est précieux. 25 ans plus tard, je suis d'accord.
Nils Pipenbrinck
@NilsPipenbrinck Je suis en ce moment en train d'écrire du code C et d'appliquer les leçons que j'ai apprises avec Fortran :-) !!! - et qui ont ensuite été perfectionnés avec des systèmes embarqués et un langage d'assemblage. Ces leçons réduisent le risque d'erreurs en appliquant le typage mental aux accès aux variables et aux ports qui autrement pourraient faire des choses autorisées mais non souhaitées ou utiles. L'assembleur est l'arme tranchante ultime - une épée à double extrémité sans protège-mains. Après cela, les langues de "niveau supérieur" semblent moins nettes :-). L'entrée du bouton Z80 agit de la même manière sur vos expériences d'apprentissage ;-).
Russell McMahon
@Erbureth Merci :-). Oui ffff pour 1111 était un fondu de cerveau évident. ... c'était juste "vous avez l'idée" mais terminer la ligne ne fait pas de mal.
Russell McMahon
Oui, j'ai eu l'idée, mais quand j'y étais ... :)
Erbureth dit Reinstate Monica
10

À l'origine, dans les machines programmables, les programmes étaient perforés manuellement sur du papier ou des cartes. Plus tard, ils ont utilisé une sorte de machine à écrire pour faire le poinçonnage, et même plus tard, les ordinateurs (comme ils étaient connus à l'époque) pouvaient perforer leur propre bande de papier.

Il était, littéralement, assis là avec une carte et y faisait des trous manuellement.

enter image description here

Chaque colonne est une instruction ou un bit de données qui est interprété par la machine d'état du CPU pour effectuer des tâches.

Maintenant, bien sûr, c'est toute la mémoire flash, et oui, obtenir les données là-dedans en premier lieu nécessite normalement un ordinateur pour le faire. Mais ce n'est pas strictement vrai à 100%.

Après tout, que fait un programmeur informatique et matériel, sinon définir l'état des broches d'E / S au bon moment? Donc, si vous êtes vraiment assez masochiste, vous pouvez construire un système qui vous permet d'envoyer les bonnes instructions aux broches de programmation du microcontrôleur de la bonne manière pour installer certaines instructions dans la mémoire flash pour exécution.

Peut-être quelque chose impliquant beaucoup de commutateurs, des registres à décalage, un générateur d'horloge, etc.

Je me souviens qu'au collège, nous avions un nouveau système de programmation basé sur Z80 - une unité de la taille d'une valise avec un Z80, une petite quantité de RAM, un tas d'écrans LED à 7 segments et une grande rangée de commutateurs. Programmez-le en chargeant manuellement les instructions dans la RAM à l'aide des commutateurs.

Majenko
la source
Le Z80 n'est pas un exemple valable. Il a posé des questions sur un microcontrôleur, pas sur un microprocesseur. Les microcontrôleurs exécutent leur code notre flash qui n'est pas accessible sans une interface quelconque. Au moins, vous avez mentionné le flash et une interface de programmation ailleurs dans votre réponse.
tcrosley
@tcrosley Le Z80 était plus à des fins anecdotiques - illustrant la façon dont les ordinateurs étaient programmés avant que Visual Studio n'enlève toutes les compétences.
Majenko
Bien que je ne sois au courant d'aucune machine ayant été construite à cet effet, il ne serait pas difficile d'ajouter des circuits à un lecteur de cartes pour programmer un microcontrôleur avec du code stocké sur une séquence de cartes. Le ruban de papier pourrait cependant être plus pratique.
supercat
2
J'avais l'habitude de faire des trous manuellement dans ceux-ci. Cela n'est faisable que dans des circonstances extrêmes (22h, papiers à terme dus demain, un mainframe en cours d'exécution à gauche, une femme de la salle de punch est partie pour la journée). La programmation du même ordinateur central à partir du panneau avant (quelques années plus tard) était en fait plus rapide.
Oleg Mazurov
1
@Majenko - J'ai vu la reconstruction de la machine de Babbage, et elle n'a certainement pas été fabriquée avec du matériel téléphonique. Certainement bruyant, cependant.
Hot Licks
7

Vous avez dit "petit microcontrôleur et sans interface, sans ordinateur, sans débogueur, compilateur ou assembleur". Eh bien, vous pouvez vous passer de l'ordinateur, du débogueur, du compilateur ou de l'assembleur, mais vous devez avoir une sorte d'interface pour vous connecter au microcontrôleur afin de charger le programme.

Tout d'abord, oubliez les langages de haut niveau comme C. Ensuite, le moyen le plus simple est d'écrire votre programme en langage assembleur, mais n'utilisez pas l'assembleur pour le traduire en code machine. Recherchez plutôt chacune des instructions d'assemblage dans le manuel de programmation, trouvez leur codage hex équivalent et notez-le.

Vous devrez allouer vos propres variables, afin de pouvoir remplir les adresses appropriées dans la partie opérande des instructions. Oubliez également l'utilisation de la pile et du tas, trop de travail. Une fois terminé, vous aurez un programme machine qui peut être chargé directement dans la mémoire flash du microcontrôleur - aucun éditeur de liens n'est nécessaire non plus.

En raison du manque d'adresses externes et de bus de données sur presque tous les microcontrôleurs (car ils occuperaient trop de broches nécessaires aux ports d'E / S et aux périphériques), pratiquement tous les microcontrôleurs sont programmés via une interface spéciale comme celle-ci:

enter image description here

Normalement, le "programmeur" à gauche serait connecté à un PC, qui téléchargerait un fichier machine généré par un compilateur / éditeur de liens.

Cependant, si le programmeur a un clavier, comme celui ci-dessous:

enter image description here

alors on peut entrer les codes hexadécimaux d'un programme généré manuellement directement dans le programmeur, et programmer l'appareil sans avoir besoin d'un compilateur, d'un éditeur de liens ou d'un PC, ce qui était ce que vous demandiez. (Le clavier est également utilisé pour éditer des fichiers hexadécimaux et générer des sommes de contrôle.)

Certes, très peu de programmeurs ont des claviers comme celui-ci. Celui-ci ne conviendrait pas à un amateur car il coûte probablement quelques milliers de dollars.

Ce programmeur particulier programme des pièces avant de les placer sur une carte; des interfaces et des sockets sont disponibles pour plusieurs PIC et également pour les AVR Atmel.

tcrosley
la source
5
Vous avez commenté diverses autres réponses concernant leur invalidité, mais cette réponse est sans doute moins valable que la plupart des autres que vous avez commentées. Il a dit "... pas d'interface, pas d'ordinateur, ...". Au minimum, votre solution est "un ordinateur". Ce que signifie "pas d'interfaçage" est théorique. Mais, utilisez des commutateurs anti-rebond sur l'interface SPI et vous avez sans doute une solution.
Russell McMahon
1
@RussellMcMahon Qui a dit qu'il y avait un ordinateur dans le programmeur? Beaucoup d'entre eux utilisent simplement des FPGA (qui pourraient être remplacés par une logique discrète.) Comment allez-vous programmer un microcontrôleur via une interface SPI, à moins qu'il ne dispose d'un chargeur de démarrage? Si oui, comment programmez-vous le chargeur de démarrage?
tcrosley
3
L'interface de programmation série basse tension standard, essentiellement sans chargeur de démarrage, sur de nombreux microcontrôleurs (peut-être la plupart) utilise quelques lignes dans une interface essentiellement série. MOSI MCLK (Vdd Gnd Reset) étant le MISO minimum absolu s'il y a interaction. 3 commutateurs (dont un seul) doit être sans rebond) et une LED pour MISO et "vous êtes éteint". Très très très lentement. Si un FPGA est autorisé à ne pas compter comme un "ordinateur", il n'y aurait aucun problème à implémenter de nombreux systèmes basés sur des processeurs. Je soupçonne "qu'aucune logique combinatoire" ne répondrait à l'esprit de sa demande.
Russell McMahon
Je dois dire que les feux d'artifice ne sont pas le bon arrière-plan à utiliser lorsque vous travaillez avec du matériel électronique :)
Anonymous Penguin
6

En pratique, quelque chose comme basculer manuellement les broches JTAG serait très sujet aux erreurs. Pour entrer un programme de n'importe quelle taille décente, il faudrait des milliers de basculements. Mais théoriquement, c'est possible.

Si vous êtes autorisé à préparer le microcontrôleur à l'avance (ou à y écrire une ROM de démarrage), vous pouvez facilement implémenter quelque chose comme les commutateurs à bascule externes utilisés sur les premiers mainframes. Si vous autorisez la logique externe, vous pouvez même utiliser un clavier hexadécimal pour accélérer les choses.

Enfin, bien que ce ne soit pas aussi courant de nos jours, vous pouvez acheter un microcontrôleur basé sur ROM avec du code personnalisé. Il faudrait offrir un peu d'argent à l'avance et garantir un certain volume, mais j'ai vu des clients le faire pour économiser de l'argent sur une production à volume élevé. Dans ce cas, aucun signal externe ne serait nécessaire pour programmer le microcontrôleur. Le code serait intégré à la disposition physique de la puce.

Bien sûr, vous pouvez également utiliser un microcontrôleur qui exécute du code à partir d'une interface de mémoire externe, mais c'est de la triche. :-)

Adam Haun
la source
2
En fait, j'ai construit un "clone" Imsai 8800 en 1976/77 et je le programmais régulièrement en binaire en utilisant les interrupteurs à bascule. J'avais une séquence de démarrage d'environ 40 ou 60 octets impairs (c'était il y a toute une vie!) Qui lisait une bande papier de mon téléscripteur ASR-33 et me faisait entrer dans un moniteur de clavier. Avant que le télétype ne fonctionne, je programmais le 8085 (une des différences entre mon "clone" et l'Imsai) strictement en binaire. Mais c'était en parallèle, avec une rangée de commutateurs. J'ai utilisé une clé télégraphique pour effectuer un codage série et elle est VRAIMENT sujette aux erreurs, comme l'a déclaré Adam.
user6297
3

Absolument. En fait, le premier cours de microprocesseur que j'ai suivi (vers 87) a utilisé une carte Motorola 68000. Nous élaborerions le code dans l'assembly, rechercherions l'hexagone de l'assembly et saisirions l'hexagone dans un terminal pour programmer la carte. Si vous avez modifié, vous devez vous assurer que le code que vous avez entré est plus court que le code que vous remplacez, puis tamponner le reste avec des NOP. Si le coDE était plus long, il faudrait tout retaper! Nous avons appris à ajouter de nombreux NOP.

Scott Seidman
la source
Le 68000 n'était pas un microcontrôleur. Il a posé des questions sur un microcontrôleur, pas sur un microprocesseur. Les microcontrôleurs exécutent leur code notre flash qui n'est pas accessible sans une interface quelconque.
tcrosley
5
@tcrosley Ce n'est pas strictement vrai. Il existe des microcontrôleurs qui nécessitent une ROM externe car ils ne disposent pas de leur propre ROM ou Flash. Ce qui en fait un microcontrôleur n'est pas construit en RAM ou ROM, mais en périphériques (ports IO, UART, etc.).
Majenko
Très peu cependant - en raison des périphériques d'E / S que vous venez de mentionner, très peu ont des bus d'adresse et de données externes car ils nécessitent deux broches.
tcrosley
2

Absolument. Une fois que vous avez un format binaire des instructions réelles (facile à faire pour des jeux d'instructions bien spécifiés), il vous suffit d'implémenter le protocole de programmation.

Par exemple, prenez quelque chose de petit comme un AVR Tiny 4 . La section 14 détaille l'interface de programmation, y compris le protocole et la couche physique. C'est relativement simple et vous avez juste besoin de quelques boutons et de résistances pull-up / down pour envoyer / recevoir un 1 ou un 0. Si vous vous sentez ambitieux, ajoutez des LED pour relire la sortie.

Le dernier problème restant est de savoir si vous pouvez le faire assez rapidement, ce qui heureusement * pour l'AVR Tiny 4 (section 16), il n'a pas de fréquence minimale quand il s'agit de le programmer.

* remarque: pour autant que la fiche technique le précise. Cela peut différer dans la réalité ... Je doute que quelqu'un ait essayé de le programmer à des vitesses d'horloge mHz.

N'hésitez pas à l'automatiser autant / peu de processus que vous le souhaitez. C'est ce que la plupart des appareils de programmation font de toute façon: automatiser le processus.

helloworld922
la source
2

Par quelque moyen que ce soit que vous entrez le programme dans l'UC, vous "interfacer" avec lui, parce que c'est ce que signifie l'interfaçage. Même un tas de commutateurs que vous actionnez manuellement sont une "interface".

Je traiterai donc cette question comme "comment puis-je m'interfacer avec une uC avec un matériel d'interfaçage largement -mécanique- (par opposition à électronique), et d'une manière aussi cool que possible?"

À laquelle ma réponse est, entrez le programme sous forme de rouleau de piano. La «barre de suivi» du piano roll d'un piano de joueur vous donne essentiellement au moins 65 bits (selon le format) que vous pouvez activer et désactiver indépendamment en fonction des perforations du papier. Le reste est un travail exigeant avec un couteau exacto. Mais au moins, votre programme, une fois exécuté, est (quelque peu) stocké en permanence (contrairement à une approche à bascule manuelle).

Atsby
la source
2

Non seulement il est possible de programmer un microcontrôleur sans ordinateur, mais vous pouvez actuellement acheter un ordinateur spécialement conçu pour être programmé avec des interrupteurs à bascule matériels. Le kit s'appelle une carte de membre et il s'agit d'une recréation de l'ordinateur COSMAC Elf des années 1970. Le kit a été décrit dans un article récent du magazine IEEE Spectrum . Il est également possible de programmer des versions plus récentes de la carte de membre à partir d'un PC.

Craig Finch
la source
2

D'accord. Que diriez-vous de cela: vous écrivez le programme dans l'assembleur et recherchez les opcodes vous-même, comme suggéré précédemment. Comment l'obtenir dans l'ordinateur: prenez un vieux lecteur de cassette, retirez la tête de lecture, mais laissez le cabestan et le galet presseur. Ce sera votre transport. Si vous avez un lecteur bobine à bobine, vous pouvez laisser la tête de lecture en place.

Prenez ensuite une bande de papier longue et étroite, ou mieux encore, du ruban transparent. C'est là que vous encodez votre programme. Vous utilisez autant de pistes que vous avez de broches à programmer. Sur une piste, vous mettez des points noirs à intervalles réguliers; c'est ton horloge. Sur les autres pistes, vous mettez des points ou des bandes noires et laissez des blancs en fonction des données et des signaux. Vous éclairez le tout et le détectez avec de petits phototransistors (ou vous allumez une LED sur la bande et détectez la lumière avec d'autres similaires) et pilotez les lignes d'horloge et de signal avec des transistors. Cela prend un peu d'espace sur le lecteur de bande, c'est pourquoi vous devrez peut-être retirer la tête de lecture.

Bien sûr, vous pouvez également encoder les signaux en audio, mais c'est un peu plus compliqué à décoder. Ou vous pouvez détecter la lumière réfléchie au lieu de la lumière transmise. Ou vous pouvez percer des trous dans du ruban noir ou du papier, au lieu de faire des marques noires sur du ruban transparent. Peu importe. Le lecteur de bande entraîne la bande à une vitesse constante, vous pouvez donc entrer un signal cadencé sans ordinateur.

Angus McG
la source
1

Oui. Le problème principal peut interagir avec l'interface de programmation. Si vous avez une adresse simple et un bus de données, les choses sont un peu plus faciles. Avez-vous déjà vu certains des premiers ordinateurs? Les programmes sont entrés une instruction à la fois dans la RAM avec des commutateurs à l'avant.

alex.forencich
la source
Il a posé des questions sur un microcontrôleur, pas sur un microprocesseur. Les microcontrôleurs exécutent leur code notre flash qui n'est pas accessible sans une interface quelconque.
tcrosley
4
@tcrosley - Les premiers uCs n'avaient pas de flash. Ils avaient soit RAM ou ROM pour le magasin de programmes.
Hot Licks
@HotLicks Correct. Et à quelques exceptions près, ce sont tous des microprocesseurs, pas des microcontrôleurs. C'était mon point, pas si le magasin de programme était flash, ou ROM, ou PROM, ou EPROM, ou EEPROM. Il s'agissait de savoir si le magasin de programmes était sur puce (microcontrôleur) ou non (microprocesseur). Même le 8048, le premier microcontrôleur Intel introduit en 1977, avait une ROM interne.
tcrosley
3
@Tcrosley Qui êtes-vous? Et qu'avez-vous fait avec le tcrosley habituellement utile et objectif? :-) | Sa première observation a été que vous pouviez interagir avec l'interface de programmation - qui sera souvent mais pas toujours valide. Le bus d'adresse et de données "IF" est un IF. Cela s'applique à certains microcontrôleurs hybrides de grande taille et à la limite, mais son IF d'origine était assez fin (bien que dur et lent).
Russell McMahon
3
Essayer de maintenir une distinction stricte entre microprocesseur et microcontrôleur est plus pédant qu'utile, surtout quand c'est dans un commentaire à chaque réponse.
pjc50
1

Les mini-ordinateurs PDP-8 de Digital Equipment d'il y a 40 ans et plus n'avaient aucune capacité de démarrage automatique. Les programmes étaient généralement chargés à partir de bandes de papier perforées, mais le chargeur pour charger les bandes de papier devait être entré manuellement sur les commutateurs du panneau avant.

entrez la description de l'image ici

Sur les sites des clients Digital et PDP-8 tels que les OEM qui les utilisaient comme contrôleurs intégrés de la journée, il n'était pas rare que les utilisateurs mémorisent les chargeurs de démarrage et se concurrencent pour le temps le plus rapide pour entrer dans le démarrage chargeur dans la machine. Les machines utilisaient des mémoires à noyau magnétique (enfilées à la main dans des régions éloignées du monde, par des femmes aux doigts minuscules, utilisant des aiguilles et des fils fins).

entrez la description de l'image ici

Étant donné que le contenu de la mémoire magnétique est non volatile, les chargeurs de démarrage ont survécu à une mise hors tension et une entrée manuelle n'a été nécessaire qu'après l'assemblage initial, le chargeur a été effacé par un bug de programme ou un programme nécessaire pour utiliser l'espace du chargeur.

JRobert
la source
Il y a de nombreuses années, lorsque nous devions aller à l'école pieds nus dans la neige dans les deux sens, le PDP-8 de notre lycée devait être démarré en basculant le chargeur de démarrage depuis le panneau avant, comme vous le décrivez. Aucun des enseignants ne savait grand-chose sur l'ordinateur, y compris celui qui en était responsable. Il pensait que 0 et 1 étaient en panne, donc il ne pouvait jamais basculer dans le chargeur de démarrage. J'arrangerais pour que l'ordinateur tombe en panne quand j'étais en cours d'anglais, donc je serais appelé à redémarrer l'ordinateur. Je ne lui ai jamais parlé de sa conception erronée de haut en bas - c'était beaucoup trop utile pour moi.
Olin Lathrop
J'ai adoré le PDP-8. J'avais un accès exclusif à un ordinateur pendant environ trois ans - c'était donc comme avoir un ordinateur personnel bien avant que le terme PC ne soit inventé. Incroyable ce qui pourrait tenir dans 4K de mémoire. Bien sûr, il y a eu beaucoup de bandes de papier (il n'y avait pas de DECtape) et de papier Teletype.
tcrosley
0

La réponse est oui , vous pouvez programmer un microcontrôleur sans ordinateur, débogueur, etc. Ce dont vous auriez besoin serait de fournir les différentes tensions, données, horloge et séquences de programmation spécifiées par le fabricant uC (ce n'est pas une tâche facile).

Guill
la source