Czy mógłbyś zaprogramować mikrokontroler bez komputera?

16

Powiedzmy, że masz dość prosty i mały mikrokontroler i nie masz interfejsu, komputera, debuggera, kompilatora ani asemblera. Czy możesz napisać kod w asemblerze, przekonwertować go (ręcznie) na kod maszynowy, a następnie przyłożyć zasilanie do odpowiednich styków za pomocą źródła napięcia?

Rozumiem, że potrzebowałbyś odpowiedniego I / O i pamięci, aby naprawdę cokolwiek zrobić , ale gdybyś był tak skłonny i miał czas, czy mógłbyś to zrobić? Wydaje mi się, że historycznie, jak to zrobiono, skoro na początku nie było komputera / kompilatora / asemblera? Nie krępuj się połączyć mnie z zasobem zewnętrznym. Dzięki! :)

idle_engineer
źródło
3
Spójrz na Altair 1. Wyłączniki na przednim panelu i ręczne programowanie maszyny były jedynym sposobem korzystania z niego.
pjc50
@ pj50 Zapytał o mikrokontroler, a nie mikroprocesor. Mikrokontrolery uruchamiają swój kod flash, który jest niedostępny bez jakiegoś interfejsu.
tcrosley,
Ile programowanych jednostek potrzebujesz? Wielu producentów dostarczy swoje mikra wstępnie zaprogramowane z twoim kodem; nie jest to jednak praktyczne, jeśli potrzebujesz mniej niż pełny bęben.
Oleg Mazurov
2
W latach 70. zbudowałeś panel przełączników i świateł, abyś mógł wejść do programu. Nigdy nie pracowałem z jednym z wczesnych mikrokontrolerów, ale pracowałem z kilkoma różnymi mikroprocesorami i tak właśnie to robiłeś, domyślnie. I nie było zasadniczej różnicy między wczesnymi mikrokontrolerami i mikroprocesorami innymi niż możliwości I / O i niektórymi szczegółami konfiguracji pamięci programu.
Hot Licks,
Zostawię to jako komentarz, ponieważ nie mogę znaleźć źródła tej historii. Pamiętam kiedyś historię dziecka, które zaprojektowało i zbudowało własny komputer (tak naprawdę tylko procesor) z tranzystorów na targach naukowych opartych wyłącznie na jego rozumieniu logiki cyfrowej. W tym czasie nie było go stać na komputer i zaprogramował swoje dzieło za pomocą przełączników (wydaje mi się, że pamiętam zegar, który był tylko przyciskiem). Jeden z sędziów był pod takim wrażeniem, że kupił dziecku komputer.
slebetman

Odpowiedzi:

37

Czy możesz napisać kod w asemblerze, przekonwertować go (ręcznie) na kod maszynowy,

Tak!
Kod można zapisać „z głowy” w formie binarnej, jeśli chcesz.
Dawno (dawno, dawno temu) tak zacząłem używać (wtedy) mikroprocesorów.
Ja i przyjaciele piszemy kod w języku asemblera, kompilujemy go ręcznie do kodu maszynowego (coś, co można zrobić „przez kontrolę” po pewnej praktyce), a następnie wprowadzamy go do procesora na różne sposoby. W jednym zbudowanym przez nas systemie ustawiamy adres na przełącznikach binarnych (włącz / wyłącz) lub korzystamy z funkcji automatycznego zwiększania procesora, wprowadzamy 8 bitów danych na przełącznikach binarnych, a następnie wciskamy przełącznik „zegar”, aby wprowadzić dane do pamięci.

Równoważną funkcjonalność można uzyskać dzięki jeszcze mniejszej liczbie przełączników nowoczesnego mikrokontrolera za pomocą szeregowego programowania SPI - patrz poniżej.

... a następnie zasilić odpowiednie piny za pomocą źródła napięcia?

Tak!
Ale byłoby to niezwykle powolne!
Wiele nowoczesnych mikrokontrolerów pozwala na użycie interfejsu „SPI” do programowania.
Zwykle składa się z linii danych wejściowych i wyjściowych oraz linii „zegara” i zwykle linii resetu.

Wiele procesorów pozwala, aby zegar SPI i dane były „statyczne”, co oznacza, że ​​nie ma ograniczeń co do czasu, jaki można poświęcić na konfigurację danych między bitami. Można zaprogramować taki procesor za pomocą linii danych i linii zegara, które były sterowane ręcznie obsługiwanymi przełącznikami. Linia zegara musi być „wolna od odbicia” - musisz być w stanie ustawić ją na wysoką lub niską w jednym przejściu na operację - więc minimalny interfejs może wymagać włączenia bramki wyzwalanej przez Schmitta. Możesz „uciec” z opóźnieniem RC i przełącznikiem przyciskowym, ale wejście wyzwalane przez Schmitta jest bezpieczniejsze. Linia danych nie musi być odbijana swobodnie, ponieważ jej stan jest odczytywany tylko na brzegu zegara.

Niektóre interfejsy są interaktywne - dane są przetwarzane przez procesor podczas programowania (np. Data out = MISO = Master In Serial Out na procesorach AVR). Aby to przeczytać, musisz dodać np. Diodę LED i rezystor (a może tylko bufor lub tranzystor, jeśli zdolność napędu była NAPRAWDĘ niska).


MC6800:

Z pamięci zanikającej (prawie 40 lat!)

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
źródło
1
+1 za wzmiankę o statycznym projekcie, pozwalając zegarowi przejść do DC.
pericynthion
2
To przywraca wspomnienia. W rzeczywistości nauczyłem się wpisywać kod Z80 za pomocą przycisków w szkole. To było około 1990 roku. Mój nauczyciel nalegał, że nauka programowania na ciężko jest cenna. 25 lat później muszę się zgodzić.
Nils Pipenbrinck 10.04.15
@NilsPipenbrinck W tej chwili piszę kod C i stosuję lekcje, których nauczyłem się najpierw z Fortranem :-) !!! - i które zostały następnie dopracowane za pomocą systemów wbudowanych i języka asemblera. Te lekcje zmniejszają ryzyko błędów poprzez zastosowanie typowania myślowego do dostępu do zmiennych i portów, które w przeciwnym razie mogłyby robić rzeczy, które są dozwolone, ale nie są pożądane lub przydatne. Asembler to najostrzejsza broń - miecz dwustronny bez osłon dłoni. Po tym języki „wyższego poziomu” wydają się mniej ostre :-). Wpisywanie przycisku Z80 działa podobnie na twoje doświadczenia edukacyjne ;-).
Russell McMahon,
@Erbureth Thanks :-). Tak, ffff dla 1111 było oczywistym zanikiem mózgu. ... było po prostu „masz pomysł”, ale ukończenie linii nie boli.
Russell McMahon,
Tak, wpadłem na pomysł, ale kiedy to zrobiłem ... :)
Erbureth mówi Przywróć Monikę
10

Pierwotnie w programowalnych maszynach programy były ręcznie dziurkowane w taśmę papierową lub karty. Później używali swego rodzaju maszyny do pisania, aby wykonać wykrawanie, a nawet później komputery (jak do tej pory były znane) mogły wykrawać własną taśmę papierową.

Dosłownie siedział tam z kartą i ręcznie robił w nim dziury.

enter image description here

Każda kolumna jest instrukcją lub bitem danych interpretowanym przez maszynę stanu procesora do wykonywania zadań.

Teraz, jeśli oczywiście jest to cała pamięć flash, i tak, uzyskanie danych tam przede wszystkim zwykle wymaga komputera. Ale to nie jest w 100% prawda.

W końcu, co robi programista komputerowy i sprzętowy, ale ustawia stan pinów we / wy we właściwym czasie? Tak więc, jeśli jesteś wystarczająco masochistyczny, możesz zbudować system, który pozwoli ci wysłać odpowiednie instrukcje do pinów programowania mikrokontrolera we właściwy sposób, aby zainstalować niektóre instrukcje w pamięci flash w celu wykonania.

Może coś obejmującego wiele przełączników, niektóre rejestry przesuwne, generator zegara itp.

Pamiętam, że na studiach mieliśmy nowy system programowania oparty na Z80 - jednostkę wielkości walizki z Z80, niewielką ilość pamięci RAM, kilka 7-segmentowych wyświetlaczy LED i duży rząd przełączników. Zaprogramuj go, ręcznie ładując instrukcje do pamięci RAM za pomocą przełączników.

Majenko
źródło
Z80 nie jest prawidłowym przykładem. Zapytał o mikrokontroler, a nie mikroprocesor. Mikrokontrolery uruchamiają swój kod flash, który jest niedostępny bez jakiegoś interfejsu. Przynajmniej wspomniałeś flash i interfejs programowania gdzieś w odpowiedzi.
tcrosley,
@tcrosley Z80 był bardziej anegdotyczny - ilustrował, jak komputery były programowane, zanim Visual Studio zabrał wszystkie umiejętności.
Majenko,
Chociaż nie wiem, jakie maszyny zostały zbudowane do tego celu, nie byłoby trudno dodać do czytnika kart trochę obwodów, aby zaprogramować mikrokontroler z kodem przechowywanym na sekwencji kart. Taśma papierowa może być jednak bardziej praktyczna.
supercat,
2
Kiedyś wycinałem w nich otwory ręcznie. Jest to wykonalne tylko w ekstremalnych okolicznościach (godzina dwudziesta druga, jutrzejsze dokumenty terminowe, jedna biegła mainframe w lewo, dama z pokoju bokserskiego wyszła na dzień). Programowanie tego samego komputera mainframe z panelu przedniego (kilka lat później) było w rzeczywistości szybsze.
Oleg Mazurov
1
@Majenko - Widziałem rekonstrukcję maszyny Babbage'a i zdecydowanie nie została wykonana ze sprzętu telefonicznego. Zdecydowanie głośno.
Hot Licks
7

Powiedziałeś: „mały mikrokontroler i nie miał interfejsu, nie miał komputera, nie miał debuggera, kompilatora ani asemblera”. Cóż, możesz sobie poradzić bez komputera, debuggera, kompilatora lub asemblera, ale musisz mieć jakiś interfejs, aby połączyć się z mikrokontrolerem, aby załadować program.

Przede wszystkim zapomnij o językach wysokiego poziomu, takich jak C. Następnie najłatwiej jest napisać program w języku asemblera, ale nie używaj asemblera do tłumaczenia go na kod maszynowy. Zamiast tego przejrzyj każdą instrukcję montażu w instrukcji programowania, znajdź jej równoważne kodowanie szesnastkowe i zapisz ją.

Będziesz musiał przydzielić własne zmienne, abyś mógł wpisać odpowiednie adresy w części operandu instrukcji. Zapomnij także o stosie i stosie, zbyt dużo pracy. Po zakończeniu otrzymasz program maszynowy, który można załadować bezpośrednio do pamięci flash mikrokontrolera - nie jest też potrzebny linker.

Z powodu braku zewnętrznych adresów i magistrali danych na prawie wszystkich mikrokontrolerach (ponieważ zajęłyby one zbyt wiele pinów potrzebnych przez porty I / O i urządzenia peryferyjne), praktycznie wszystkie mikrokontrolery są programowane za pomocą specjalnego interfejsu takiego jak ten:

enter image description here

Zwykle „programator” po lewej stronie byłby podłączony do komputera PC, który pobierałby plik maszyny wygenerowany przez kompilator / linker.

Jeśli jednak programator ma klawiaturę, taką jak ta poniżej:

enter image description here

następnie można wprowadzić kody szesnastkowe ręcznie wygenerowanego programu bezpośrednio do programatora i zaprogramować urządzenie bez potrzeby korzystania z kompilatora, konsolidatora lub komputera, o które pytano. (Klawiatura służy również do edycji plików szesnastkowych i generowania sum kontrolnych).

Oczywiście niewielu programistów ma takie klawiatury. Ten nie byłby odpowiedni dla hobbystów, ponieważ prawdopodobnie kosztuje kilka tysięcy dolarów.

Ten konkretny programator programuje części przed umieszczeniem ich na płycie; interfejsy i gniazda są dostępne dla wielu PIC, a także dla AVR Atmel.

tcrosley
źródło
5
Skomentowałeś różne inne odpowiedzi dotyczące ich nieważności, ale odpowiedź ta jest prawdopodobnie mniej ważna niż większość komentowanych przez ciebie. Powiedział „... bez interfejsu, bez komputera ...”. Co najmniej twoim rozwiązaniem jest „komputer”. „Brak interfejsu” oznacza dyskusję. Ale użyj niektórych zadeklarowanych przełączników w interfejsie SPI i prawdopodobnie masz rozwiązanie.
Russell McMahon,
1
@ RussellMcMahon Kto mówi, że w programatorze jest komputer? Wiele z nich korzysta tylko z układów FPGA (które można zastąpić dyskretną logiką). Jak zamierzasz zaprogramować mikrokontroler za pośrednictwem interfejsu SPI, chyba że ma on program ładujący? Jeśli tak, w jaki sposób programujesz program ładujący?
tcrosley,
3
Zasadniczo wolny od bootloadera standardowy interfejs programowania szeregowego niskiego napięcia na wielu (prawdopodobnie większości) mikrokontrolerach wykorzystuje kilka linii w interfejsie szeregowym. MOSI MCLK (Vdd Gnd Reset) jest całkowicie minimalnym MISO, jeśli występuje interakcja. 3 przełączniki (tylko jeden) muszą być wolne od odbić) oraz dioda LED dla MISO i „jesteś wyłączony”. Bardzo, bardzo powoli. Jeśli FPGA może nie być liczone jako „komputer”, nie byłoby problemu z implementacją wielu systemów opartych na procesorach. Podejrzewam, że „żadna logika kombinatoryczna” nie spełniłaby ducha jego prośby.
Russell McMahon,
Muszę powiedzieć, że fajerwerki to niewłaściwe tło do pracy przy sprzęcie elektronicznym :)
Anonimowy pingwin
6

W praktyce, coś takiego jak ręczne przełączanie pinów JTAG byłoby bardzo podatne na błędy. Wprowadzenie programu o dowolnej wielkości wymagałoby tysięcy przełączeń. Ale teoretycznie jest to możliwe.

Jeśli możesz wcześniej przygotować mikrokontroler (lub napisać bootowalną pamięć ROM), możesz łatwo zaimplementować coś takiego jak zewnętrzne przełączniki używane we wczesnych komputerach mainframe. Jeśli zezwolisz na logikę zewnętrzną, możesz nawet użyć klawiatury sześciokątnej, aby przyspieszyć.

Wreszcie, choć obecnie nie jest to tak powszechne, możesz kupić mikrokontroler oparty na pamięci ROM z niestandardowym kodem. Musiałbyś zaoferować trochę pieniędzy z góry i zagwarantować określoną ilość, ale widziałem, jak klienci robią to, aby zaoszczędzić pieniądze na produkcji na dużą skalę. W takim przypadku nie byłoby żadnych sygnałów zewnętrznych potrzebnych do zaprogramowania mikrokontrolera. Kod zostałby wbudowany w fizyczny układ układu.

Oczywiście można również użyć mikrokontrolera, który uruchamia kod poza interfejsem pamięci zewnętrznej, ale to oszustwo. :-)

Adam Haun
źródło
2
W rzeczywistości zbudowałem „klon” Imsai 8800 w 1976/77 i rutynowo programowałem go binarnie za pomocą przełączników. Miałem sekwencję ładowania rozruchu, która miała około 40 lub 60 dziwnych bajtów (to było całe życie temu!), Która odczytywałaby papertape z mojego teletypu ASR-33 i wprowadziła mnie do monitora klawiatury. Zanim zadziałałby typ telegraficzny, zaprogramowałem 8085 (jedna z różnic między moim „klonem” a Imsai,) ściśle dwójkowo. Ale było to równolegle, z rzędem przełączników. Użyłem klucza telegraficznego do kodowania szeregowego i jest on NAPRAWDĘ podatny na błędy, jak stwierdził Adam.
user6297
3

Absolutnie. W rzeczywistości pierwszy kurs mikroprocesorowy, który odbyłem (około 87), używał płyty Motorola 68000. Opracowujemy kod w asemblerze, wyszukujemy szesnastkę dla zestawu i wpisujemy hex w terminalu, aby zaprogramować płytkę. Jeśli edytowałeś, musisz upewnić się, że kod, który wstawiłeś, jest krótszy niż kod, który zastępujesz, a następnie buforować resztę za pomocą NOP. Gdyby coDE był dłuższy, musiałbyś przepisać wszystko! Nauczyliśmy się dodawać wiele NOP.

Scott Seidman
źródło
68000 nie był mikrokontrolerem. Zapytał o mikrokontroler, a nie mikroprocesor. Mikrokontrolery uruchamiają swój kod flash, który jest niedostępny bez jakiegoś interfejsu.
tcrosley,
5
@ tcrosley To nie jest do końca prawda. Istnieją mikrokontrolery, które wymagają zewnętrznej pamięci ROM, ponieważ nie mają własnej pamięci ROM ani Flash. Co sprawia, że ​​mikrokontroler nie jest wbudowany w pamięć RAM lub ROM, ale we wbudowane urządzenia peryferyjne (porty IO, UART itp.).
Majenko
Jednak bardzo niewielu - z powodu wspomnianych właśnie urządzeń peryferyjnych we / wy bardzo niewiele ma zewnętrzny adres i magistrale danych, ponieważ wymagają dwóch wielu styków.
tcrosley,
2

Absolutnie. Kiedy masz binarny format rzeczywistych instrukcji (łatwe do zrobienia dla dobrze określonych zestawów instrukcji), wszystko czego potrzebujesz to zaimplementować protokół programowania.

Na przykład weź coś małego jak AVR Tiny 4 . W sekcji 14 szczegółowo opisano interfejs programowania, w tym protokół i warstwę fizyczną. Jest to stosunkowo proste i potrzebujesz tylko kilku przycisków i rezystorów podnoszących / opuszczających, aby wysłać / odebrać 1 lub 0. Jeśli czujesz się ambitny, dodaj kilka diod LED, aby odczytać wynik.

Ostatni pozostały problem dotyczy tego, czy potrafisz to zrobić wystarczająco szybko, co na szczęście * w AVR Tiny 4 (sekcja 16) nie ma żadnej minimalnej częstotliwości, jeśli chodzi o programowanie.

* Uwaga: w zakresie określonym w arkuszu danych. W rzeczywistości może się to różnić ... Wątpię, czy ktoś próbował programować go z częstotliwością taktowania MHz.

Możesz zautomatyzować to tyle / mało procesu, ile chcesz. I tak właśnie robi większość urządzeń programujących: automatyzacja procesu.

helloworld922
źródło
2

Niezależnie od tego, w jaki sposób wprowadzasz program do interfejsu użytkownika, „łączysz się” z nim, ponieważ to właśnie oznacza interfejs. Nawet kilka przełączników, które ręcznie przełączasz, to „interfejs”.

Więc potraktuję to pytanie jako „w jaki sposób mogę połączyć się z komputerem z interfejsem w dużej mierze - mechanicznym - (w przeciwieństwie do elektronicznego) - i tak fajnie, jak to możliwe?”

Na co mam odpowiedź, wprowadź program jako rolkę fortepianu. „Pasek trackera” rolki pianina z pianina gracza w zasadzie daje co najmniej 65 (w zależności od formatu) bitów, które można włączać i wyłączać niezależnie na podstawie perforacji w papierze. Reszta to ciężka praca nożem exacto. Ale przynajmniej twój program, po uruchomieniu, jest (nieco) trwale przechowywany (w przeciwieństwie do ręcznego przełączania przełączników).

Atsby
źródło
2

Możliwe jest nie tylko zaprogramowanie mikrokontrolera bez komputera, ale można dziś kupić komputer specjalnie zaprojektowany do programowania za pomocą przełączników sprzętowych. Zestaw nazywa się Kartą Członkowską i jest odtworzeniem komputera Elfa z COSMAC z lat 70. Zestaw został opisany w ostatnim artykule w magazynie IEEE Spectrum . Możliwe jest również zaprogramowanie nowszych wersji karty członkowskiej z komputera.

Craig Finch
źródło
2

W porządku. Co powiesz na to: piszesz program w asemblerze i sam wyszukujesz kody, jak wcześniej sugerowano. Jak dostać się do komputera: weź stary odtwarzacz taśm, wyjmij głowicę odtwarzającą, ale zostaw kabestan i rolkę dociskową. To będzie twój transport. Jeśli masz odtwarzacz szpulowy, możesz pozostawić głowicę odtwarzającą na miejscu.

Następnie weź długi i wąski pasek papieru, a nawet lepszą, przezroczystą taśmę. To tutaj kodujesz swój program. Do zaprogramowania używasz tyle ścieżek, ile masz pinów. Na jednej ścieżce umieszczasz czarne kropki w regularnych odstępach czasu; to jest twój zegar. Na innych ścieżkach umieszczasz czarne kropki lub paski i pozostawiasz puste miejsca zgodnie z danymi i sygnałami. Świecisz światło na całość i wykrywasz je za pomocą małych fototranzystorów (lub świecisz jedną diodą LED na taśmie i wykrywasz światło za pomocą innych podobnych) i napędzasz zegar i linie sygnałowe za pomocą tranzystorów. Zajmuje to trochę miejsca w odtwarzaczu taśm, dlatego może być konieczne zdjęcie głowicy odtwarzającej.

Oczywiście możesz również kodować sygnały jako audio, ale dekodowanie jest nieco bardziej skomplikowane. Lub możesz wykryć światło odbite zamiast światła przechodzącego. Możesz też dziurkować ciemną taśmą lub taśmą papierową zamiast czarnych znaków na przezroczystej taśmie. Cokolwiek. Odtwarzacz taśm napędza taśmę ze stałą prędkością, dzięki czemu można wprowadzić taktowany sygnał bez komputera.

Angus McG
źródło
1

Tak. Głównym problemem może być interakcja z interfejsem programowania. Jeśli masz zwykły adres i magistralę danych, sprawy są nieco łatwiejsze. Czy widziałeś kiedyś naprawdę wczesne komputery? Programy są wprowadzane pojedynczo do pamięci RAM za pomocą przełączników z przodu.

alex.forencich
źródło
Zapytał o mikrokontroler, a nie mikroprocesor. Mikrokontrolery uruchamiają swój kod flash, który jest niedostępny bez jakiegoś interfejsu.
tcrosley,
4
@ tcrosley - Wczesne programy uCs nie miały flasha. Mieli pamięć RAM lub ROM do przechowywania programów.
Hot Licks
@HotLicks Correct. I z kilkoma wyjątkami były to wszystkie mikroprocesory, a nie mikrokontrolery. To był mój punkt, nie chodzi o to, czy sklep z programami to Flash, ROM, PROM, EPROM lub EEPROM. Chodziło o to, czy sklep z programami był na chipie (mikrokontroler), czy nie (mikroprocesor). Nawet 8048, pierwszy mikrokontroler Intela wprowadzony w 1977 r., Miał wewnętrzną pamięć ROM.
tcrosley,
3
@Tcrosley Kim jesteś? A co zrobiłeś z zwykle pomocnym i obiektywnym tcrosleyem? :-) | Jego pierwszą obserwacją było to, że możesz wchodzić w interakcje z interfejsem programowania - co często, ale nie zawsze, będzie ważne. Adres „IF” i magistrala danych to IF. Odnosi się to do niektórych dużych i granicznych mikrokontrolerów hybrydowych, ale jego oryginalny IF był wystarczająco dobry (choć twardy i wolny).
Russell McMahon,
3
Próba zachowania twardego rozróżnienia między mikroprocesorem a mikrokontrolerem jest bardziej pedantyczna niż przydatna, zwłaszcza gdy jest komentarzem do każdej odpowiedzi.
pjc50
1

Minikomputery PDP-8 firmy Digital Equipment sprzed ponad 40 lat nie miały możliwości automatycznego uruchamiania. Programy były zwykle ładowane z perforowanych taśm papierowych, ale moduł ładujący, aby załadować taśmy papierowe, musiał zostać ręcznie wprowadzony za pomocą przełączników na panelu przednim.

enter image description here

W witrynach klientów Digital i PDP-8, takich jak producenci OEM, którzy używali ich jako wbudowanych kontrolerów tego dnia, nierzadko użytkownicy zapamiętywali moduły ładujące i konkurowali ze sobą o najszybszy czas potrzebny na wejście do bagażnika ładowarka do maszyny. Maszyny wykorzystywały wspomnienia z rdzeniem magnetycznym (ręcznie naciągnięte w odległych częściach świata, przez kobiety z małymi palcami, za pomocą igieł i cienkiego drutu do włosów).

enter image description here

Ponieważ zawartość pamięci magnetycznej jest nieulotna, programy ładujące przeżyły awarię zasilania, a ręczne wprowadzenie było potrzebne dopiero po wstępnym montażu, program ładujący został usunięty przez błąd programu lub program potrzebny do wykorzystania przestrzeni programu ładującego.

JRobert
źródło
Wiele lat temu, kiedy musieliśmy chodzić do szkoły boso po śniegu pod górę w obie strony, PDP-8 w naszej szkole średniej musiał zostać uruchomiony przez włączenie bootloadera z panelu przedniego, jak to opisujesz. Żaden z nauczycieli nie wiedział dużo o komputerze, w tym o tym, który był za niego odpowiedzialny. Pomyślał, że ma 0, a 1 nie działa, więc nigdy nie mógł się włączyć w module ładującym. Zrobiłem awarię komputera, gdy byłem na lekcji angielskiego, więc zostałem wezwany do ponownego uruchomienia komputera. Nigdy nie powiedziałem mu o jego błędnym przekonaniu w stosunku do góry - było to dla mnie zbyt przydatne.
Olin Lathrop,
Kochałem PDP-8. Miałem wyłączny dostęp do jednego przez około trzy lata - więc to było jak posiadanie komputera osobistego na długo przed wynalezieniem terminu PC. Niesamowite, co może zmieścić się w pamięci 4K. Pewnie przeszedł jednak przez wiele taśm papierowych (nie miał DECtape) i papieru typu Teletype.
tcrosley
0

Odpowiedź brzmi: tak , możesz zaprogramować mikrokontroler bez komputera, debugera itp. Potrzebne byłoby zapewnienie różnych napięć, danych, zegara i sekwencji programowania określonych przez producenta uC (nie jest to łatwe zadanie).

Guill
źródło