컴퓨터없이 마이크로 컨트롤러를 프로그래밍 할 수 있습니까?


16

다소 단순하고 작은 마이크로 컨트롤러가 있고 인터페이스, 컴퓨터, 디버거, 컴파일러 또는 어셈블러가 없다고 가정 해 봅시다. 코드를 어셈블리로 작성하고 수동으로 기계 코드로 변환 한 다음 전압 소스를 사용하여 해당 핀에 전원을 공급할 수 있습니까?

난 당신이 정말로 I / O와 메모리를 적절한 필요가 이해 아무것도하지만, 당신이 그렇게 경사와 시간을 가지고 있다면, 당신은이 작업을 수행 할 수 있습니까? 나는 역사적으로 컴퓨터 / 컴파일러 / 어셈블러가 없을 때 어떻게 되었습니까? 저를 외부 자원으로 자유롭게 연결하십시오. 감사! :)


3
Altair 1을 살펴보십시오. 전면 패널 스위치와 수동 기계 프로그래밍이 이를 사용 하는 유일한 방법이었습니다.
pjc50

@ pj50 그는 마이크로 프로세서가 아닌 마이크로 컨트롤러에 대해 물었습니다. 마이크로 컨트롤러는 일종의 인터페이스 없이는 액세스 할 수없는 플래시 코드를 실행합니다.
tcrosley

프로그래밍 된 장치 수는 몇 개입니까? 많은 제조업체에서 코드로 사전 프로그래밍 된 마이크로를 공급합니다. 그러나 전체 릴보다 적게 필요한 경우에는 실용적이지 않습니다.
Oleg Mazurov

2
70 년대에는 프로그램에 들어갈 수있는 토글 스위치와 조명 패널을 만들었습니다. 나는 초기 마이크로 컨트롤러 중 하나와 함께 일한 적이 없지만 여러 가지 다른 마이크로 프로세서와 함께 일했으며 기본적으로 그렇게했습니다. 또한 초기 마이크로 컨트롤러와 I / O 기능 이외의 마이크로 프로세서 사이에는 근본적인 차이가 없었으며 프로그램 메모리 구성 방법에 대한 세부 사항도있었습니다.
핫 릭

이 이야기의 출처를 찾을 수 없기 때문에 이것을 주석으로 남겨 두겠습니다. 나는 디지털 로직에 대한 자신의 이해를 바탕으로 과학 박람회를 위해 트랜지스터로 자신의 컴퓨터 (실제로 CPU 만)를 설계하고 만든 어린이의 이야기를 기억합니다. 그는 당시에 컴퓨터를 감당할 수 없었고 토글 스위치를 통해 자신의 창작물을 프로그래밍했습니다 (단지 버튼 일의 시계를 기억한다고 생각합니다). 판사 중 한 명이 너무 감동하여 아이에게 컴퓨터를 샀습니다.
slebetman

답변:


37

코드를 어셈블리로 작성하고 수동으로 기계 코드로 변환 할 수 있습니까?

예!
원하는 경우 코드를 이진법으로 "머리 밖으로"쓸 수 있습니다.
오래 전 (오래) 오래 전부터 마이크로 프로세서를 사용하기 시작했습니다.
나와 친구들은 어셈블리 언어로 코드를 작성하고, 기계 코드 (일부 연습 후 "검사로"수행 할 수있는)로 수동으로 컴파일 한 다음 다양한 방법으로 프로세서에 입력합니다. 한 시스템에서 바이너리 (온 오프) 스위치에 주소를 설정하거나 프로세서의 자동 증분 기능을 사용하고 바이너리 스위치에 8 데이터 비트를 입력 한 다음 "클럭"스위치를 눌러 데이터를 메모리에 입력합니다.

직렬 SPI 프로그래밍을 사용하는 최신 마이크로 컨트롤러에서 더 적은 수의 스위치로 동등한 기능을 수행 할 수 있습니다 (아래 참조).

... 그리고 전압 소스를 사용하여 적절한 핀에 전원을 공급합니까?

예!
그러나 그렇게하는 것은 엄청나게 느릴 것입니다!
많은 최신 마이크로 컨트롤러는 프로그래밍을 위해 "SPI"인터페이스를 사용할 수 있습니다.
이것은 일반적으로 입력 및 출력 데이터 라인과 "클럭"라인 및 일반적으로 리셋 라인으로 구성됩니다.

많은 프로세서가 SPI 클럭과 데이터를 "정적"으로 허용하므로 비트간에 데이터를 설정하는 데 시간이 오래 걸리지 않습니다. 수동 조작 스위치로 구동되는 데이터 라인과 클럭 라인을 사용하여 이러한 프로세서를 프로그래밍 할 수 있습니다. 클럭 라인은 "바운스 프리 (bounce free)"여야합니다. 작업 당 단일 전환에서 높거나 낮게 설정할 수 있어야합니다. 따라서 최소 인터페이스에는 슈미트 트리거 게이트가 포함되어야합니다. RC 지연 및 푸시 버튼 스위치만으로 "도주"할 수 있지만 Schmitt 트리거 입력이 더 안전합니다. 상태는 클럭 에지에서만 읽으므로 데이터 라인은 바운스되지 않아도됩니다.

일부 인터페이스는 대화식입니다. 프로그래밍 중에 프로세서가 데이터를 출력합니다 (예 : AVR 프로세서의 데이터 출력 = MISO = 마스터 입력 직렬 출력). 이것을 읽으려면 예를 들어 LED와 저항을 추가해야합니다 (구동 성능이 매우 낮 으면 버퍼 또는 트랜지스터 일 수도 있습니다).


MC6800 :

세미 페이딩 메모리에서 (약 40 년!)

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
...


1
정적 디자인을 언급하면 ​​+1이되어 클록이 DC로 진행됩니다.
pericynthion

2
이것은 추억을 다시 불러옵니다. 실제로 학교에서 버튼을 사용하여 Z80 코드를 입력하는 것을 실제로 배웠습니다. 저의 선생님은 1990 년 무렵이었습니다. 선생님은 어려운 프로그래밍 학습법이 가치 있다고 주장하셨습니다. 25 년 후 나는 동의해야한다.
Nils Pipenbrinck

@NilsPipenbrinck 저는 지금 C 코드를 작성하고 Fortran에서 처음 배운 교훈을 적용하고 있습니다 :-) !!! 그리고 임베디드 시스템 및 어셈블리 언어로 연마되었습니다. 이 레슨은 허용되지는 않지만 원치 않거나 유용하지 않은 작업을 수행 할 수있는 변수 및 포트 액세스에 정신 입력을 적용하여 오류 가능성을 줄입니다. 어셈블러는 핸드 가드가없는 양날의 칼입니다. 그 후 "높은 수준의"언어는 덜 선명 해 보입니다 :-). Z80 버튼 입력은 학습 경험과 유사하게 작동합니다. ;-).
Russell McMahon

@Erbureth 감사합니다 :-). 1111 년의 ffff는 명백한 두뇌 퇴색이었다. ... 그냥 "당신은 아이디어를 얻었습니다".
Russell McMahon

네, 아이디어를 가지고,하지만 난 그것을 때 ... :)
Erbureth는 분석 재개 모니카 말한다

10

원래 프로그램 가능한 기계에서 프로그램은 수동으로 종이 테이프 또는 카드에 펀칭되었습니다. 나중에 그들은 타자기를 사용하여 펀칭을했으며 나중에도 컴퓨터 (그 당시 알려진대로)는 자체 종이 테이프를 펀칭 할 수있었습니다.

말 그대로 카드로 거기에 앉아 수동으로 구멍을 뚫었습니다.

enter image description here

각 열은 CPU의 상태 머신이 작업을 수행하기 위해 해석하는 명령 또는 데이터 비트입니다.

물론 그것은 모두 플래시 메모리이고, 그렇습니다. 처음에 데이터를 얻으려면 일반적으로 컴퓨터가 필요합니다. 그러나 이것은 100 % 사실이 아닙니다.

결국, 컴퓨터와 하드웨어 프로그래머는 무엇을하면서 적절한 시점에 IO 핀의 상태를 설정합니까? 따라서, 당신이 정말 매혹적이라면, 실행을 위해 플래시 메모리에 명령을 설치하는 올바른 방법으로 올바른 명령을 마이크로 컨트롤러의 프로그래밍 핀에 보낼 수있는 시스템을 구축 할 수 있습니다.

어쩌면 많은 스위치, 일부 시프트 레지스터, 클록 생성기 등이 관련된 것일 수 있습니다.

대학에서 우리는 Z80 기반의 여행 가방 크기, 약간의 RAM 용량, 7 세그먼트 LED 디스플레이 및 스위치가 큰 새로운 Z80 기반 프로그래밍 시스템을 가지고 있다고 기억합니다. 스위치를 사용하여 명령어를 RAM에 수동으로로드하여 프로그래밍하십시오.


Z80은 유효한 예가 아닙니다. 그는 마이크로 프로세서가 아닌 마이크로 컨트롤러에 대해 물었다. 마이크로 컨트롤러는 일종의 인터페이스 없이는 액세스 할 수없는 플래시 코드를 실행합니다. 적어도 당신은 다른 곳에서 플래시와 프로그래밍 인터페이스에 대해 언급했습니다.
tcrosley

@tcrosley Z80은 일화적인 목적으로 사용되었습니다. Visual Studio가 모든 기술을 제거하기 전에 컴퓨터를 프로그래밍하는 방법을 보여줍니다.
Majenko

나는 그렇게하도록 만들어진 기계를 알지 못하지만, 카드 판독기에 회로를 추가하여 일련의 카드에 저장된 코드로 마이크로 컨트롤러를 프로그래밍하는 것은 어렵지 않습니다. 그러나 종이 테이프가 더 실용적 일 수 있습니다.
supercat April

2
나는 그 구멍을 수동으로 자르 곤했습니다. 극한 상황에서만 가능합니다 (오후 10시, 내일 마감 서류, 메인 프레임 런 1 회, 펀치 룸 레이디 1 명). 프론트 패널에서 동일한 메인 프레임을 프로그래밍하면 (몇 년 후) 실제로 더 빠릅니다.
Oleg Mazurov

1
@Majenko-Babbage 머신의 재구성을 보았으며 전화 장비로 만든 것이 아닙니다. 그래도 시끄 럽습니다.
Hot Licks

7

당신은 "작은 마이크로 컨트롤러가 없으며 인터페이스, 컴퓨터, 디버거, 컴파일러 또는 어셈블러가 없다"고 말했다. 컴퓨터, 디버거, 컴파일러 또는 어셈블러 없이도 얻을 수 있지만 프로그램을로드하려면 마이크로 컨트롤러와 연결하기위한 일종의 인터페이스가 있어야합니다.

우선 C와 같은 고급 언어를 잊어 버리십시오. 가장 쉬운 방법은 프로그램을 어셈블리 언어로 작성하는 것이지만 어셈블러를 사용하여 기계 코드 로 변환하지 마십시오 . 대신, 프로그래밍 매뉴얼에서 각 어셈블리 명령어를 찾아 해당하는 16 진수 코딩을 찾아서 적어 두십시오.

고유 한 변수를 할당해야하므로 명령어의 피연산자 부분에 적절한 주소를 채울 수 있습니다. 또한 스택과 힙 사용을 잊어 버리십시오. 너무 많은 작업이 필요합니다. 완료되면 링커가 필요하지 않은 마이크로 컨트롤러의 플래시 메모리에 직접로드 할 수있는 머신 프로그램을 갖게됩니다.

거의 모든 마이크로 컨트롤러에 외부 주소 및 데이터 버스가 없기 때문에 (I / O 포트 및 주변 장치에 필요한 핀을 너무 많이 차지하므로) 거의 모든 마이크로 컨트롤러는 다음과 같은 특수 인터페이스를 통해 프로그래밍됩니다.

enter image description here

일반적으로 왼쪽의 "프로그래머"는 PC에 연결되어 컴파일러 / 링커에서 생성 된 머신 파일을 다운로드합니다.

그러나 프로그래머가 아래와 같은 키보드를 가지고 있다면 :

enter image description here

그러면 수동으로 생성 된 프로그램의 16 진수 코드를 프로그래머에게 직접 입력하고 컴파일러, 링커 또는 PC가 필요없는 장치를 프로그래밍 할 수 있습니다. (키보드는 16 진 파일을 편집하고 체크섬을 생성하는 데에도 사용됩니다.)

이와 같은 키보드를 가진 프로그래머는 거의 없습니다. 이것은 아마 2 천 달러가 들기 때문에 애호가에게는 적합하지 않을 것입니다.

이 특정 프로그래머는 보드에 넣기 전에 부품을 프로그래밍합니다. 인터페이스 및 소켓은 여러 PIC 및 Atmel AVR에 사용할 수 있습니다.


5
당신은 자신의 무효에 대한 다양한 다른 답변에 대해 언급했지만이 답변은 귀하가 언급 한 대부분의 것보다 덜 유효합니다. 그는 "... 인터페이스도없고 컴퓨터도 없다 ..." 최소한 귀하의 솔루션은 "컴퓨터"입니다. "인터페이스 없음"이란 의미는 바보입니다. 그러나 SPI 인터페이스에서 일부 디 바운스 된 스위치를 사용하면 분명히 해결책이 있습니다.
Russell McMahon

1
@RussellMcMahon 누가 프로그래머에 컴퓨터가 있다고 말합니까? 그들 중 다수는 FPGA (이산 논리로 대체 될 수 있음) 만 사용합니다. 부트 로더가없는 한 SPI 인터페이스를 통해 마이크로 컨트롤러를 어떻게 프로그래밍합니까? 그렇다면 부트 로더를 어떻게 프로그래밍합니까?
tcrosley

3
많은 (아마도 대부분의) 마이크로 컨트롤러에서 본질적으로 부트 로더가없는 표준 저전압 ​​직렬 프로그래밍 인터페이스는 본질적으로 직렬 인터페이스에서 몇 줄을 사용합니다. 상호 작용이있는 경우 MOSI MCLK (Vdd Gnd Reset)가 최소 MISO입니다. 3 개의 스위치 (이 중 하나만 바운스가 없어야 함)와 MISO 및 "You off"의 LED. 매우 느리게 FPGA가 "컴퓨터"로 간주되지 않으면 많은 프로세서 기반 시스템을 구현하는 데 아무런 문제가 없습니다. 나는 "조합 논리가 없다"는 그의 요구의 정신을 충족시킬 것이라고 생각한다.
Russell McMahon

불꽃은 전자 장비로 작업 할 때 사용할 수있는 잘못된 배경입니다. :)
익명 펭귄

6

실제로 JTAG 핀을 수동으로 전환하는 것과 같은 작업은 오류가 발생하기 쉽습니다. 적절한 크기의 프로그램을 입력하려면 수천 번의 전환이 필요합니다. 그러나 이론적으로는 가능합니다.

미리 마이크로 컨트롤러를 준비하거나 부트 ROM을 작성할 수 있다면 초기 메인 프레임에서 사용되는 외부 토글 스위치와 같은 것을 쉽게 구현할 수 있습니다. 외부 로직을 허용하면 16 진수 키패드를 사용하여 속도를 높일 수도 있습니다.

마지막으로 요즘은 흔하지 않지만 사용자 정의 코드가 포함 된 ROM 기반 마이크로 컨트롤러를 구입할 수 있습니다. 선불을 제공하고 일정량을 보장해야하지만 고객이 대량 생산시 비용을 절약하기 위해 돈을 절약하는 것을 보았습니다. 이 경우 마이크로 컨트롤러를 프로그래밍하는 데 외부 신호가 전혀 필요하지 않습니다. 코드는 칩의 물리적 레이아웃에 내장됩니다.

물론 외부 메모리 인터페이스에서 코드를 실행하는 마이크로 컨트롤러를 사용할 수도 있습니다. :-)


2
사실, 나는 1976/77 년에 Imsai 8800 "복제"를 구축했고 토글 스위치를 사용하여 이진으로 일상적으로 프로그래밍 할 것입니다. 나는 ASR-33 텔레타이프에서 종이 테이프를 읽고 키보드 모니터로 데려다 줄 40-60odd 바이트 (이것은 평생이었다!)의 부트로드 시퀀스를 가졌다. 텔레타이프가 작동하기 전에 8085 (내 "복제본"과 Imsai의 차이점 중 하나)를 이진법으로 엄격하게 프로그래밍했습니다. 그러나 스위치와 함께 병렬로 작동했습니다. 전보 키를 사용하여 직렬 인코딩을 수행했으며 Adam이 말한 것처럼 오류가 발생하기 쉽습니다.
user6297

3

물론. 사실, 내가 처음으로했던 마이크로 프로세서 코스 (87 년경)는 Motorola 68000 보드를 사용했습니다. 우리는 어셈블리의 코드를 해결하고 어셈블리의 16 진수를 찾은 다음 16 진수를 터미널에 입력하여 보드를 프로그래밍합니다. 편집 한 경우 입력 한 코드가 교체하려는 코드보다 짧은 지 확인한 다음 나머지는 NOP로 버퍼링해야합니다. CoDE가 더 길면 모든 것을 다시 입력해야합니다! 우리는 많은 NOP를 추가하는 법을 배웠습니다.


68000은 마이크로 컨트롤러가 아닙니다. 그는 마이크로 프로세서가 아닌 마이크로 컨트롤러에 대해 물었다. 마이크로 컨트롤러는 일종의 인터페이스 없이는 액세스 할 수없는 플래시 코드를 실행합니다.
tcrosley

5
@tcrosley 그것은 사실이 아닙니다. 자체 ROM이나 플래시가 없기 때문에 외부 ROM이 필요한 마이크로 컨트롤러가 있습니다. 그것들을 마이크로 컨트롤러로 만드는 것은 RAM이나 ROM이 아니라 주변 장치 (IO 포트, UART 등)에 내장되어 있습니다.
Majenko

아주 적음-방금 언급 한 I / O 주변 장치로 인해 외부 주소 및 데이터 버스가있는 핀은 두 개가 많기 때문에 거의 없습니다.
tcrosley

2

물론. 실제 명령어의 이진 형식 (잘 지정된 명령어 세트에 대해 수행하기 쉬운)이 있으면 프로그래밍 프로토콜을 구현하기 만하면됩니다.

예를 들어 AVR Tiny 4 와 같은 작은 것을 사용하십시오 . 14 장에서는 프로토콜과 물리 계층을 포함한 프로그래밍 인터페이스에 대해 자세히 설명합니다. 비교적 간단하며 1 또는 0을 송수신하기 위해 몇 개의 버튼과 풀업 / 다운 저항 만 있으면됩니다.

마지막 남은 문제는 AVR Tiny 4 (섹션 16)에 대해 운 좋게 * 충분히 빠르게 할 수 있다면 프로그래밍 할 때 최소 주파수가 없다는 것입니다.

* 참고 : 데이터 시트가 지정하는 한. 이것은 실제로 다를 수 있습니다 ... 나는 누군가가 mHz 클럭 속도로 프로그래밍을 시도했는지 의심합니다.

원하는만큼 프로세스를 자동화 할 수 있습니다. 어쨌든 대부분의 프로그래밍 장치는 프로세스를 자동화합니다.


2

어떤 방식 으로든 프로그램을 uC에 입력한다는 것은 어떤 방식 으로든 인터페이싱하는 것입니다. 인터페이싱이 의미하기 때문입니다. 수동으로 뒤집는 스위치조차도 "인터페이스"입니다.

그래서 나는이 질문을 "전자와는 달리 주로 기계적으로 연결하는 하드웨어를 사용하여 가능한 한 멋진 방법으로 uC와 인터페이스하는 방법"으로 취급 할 것입니다.

내 대답은 피아노 롤로 프로그램을 입력하십시오. 플레이어 피아노의 피아노 롤 "트래커 바"는 기본적으로 종이의 천공에 따라 독립적으로 켜고 끌 수있는 최소 65 (포맷에 따라 다름) 비트를 제공합니다. 나머지는 정확한 칼로 정확한 작업입니다. 그러나 적어도 한 번 실행되면 프로그램은 영구적으로 저장됩니다 (스위치 뒤집기 방식과 달리).


2

뿐만 아니라이다 가능한 컴퓨터없이 마이크로 컨트롤러를 프로그래밍 할 수 있지만, 실제로는 특히 스위치 토글 하드웨어와 프로그래밍 할 수 있도록 설계되었습니다 오늘 컴퓨터를 구입할 수 있습니다. 이 키트는 멤버십 카드 라고하며 1970 년대부터 COSMAC Elf 컴퓨터를 재현 한 것입니다. 이 키트는 최근 IEEE Spectrum 잡지의 기사에 설명되어 있습니다. 또한 최신 버전의 멤버십 카드를 PC에서 프로그래밍 할 수도 있습니다.


2

괜찮아. 어떻습니까 : 이전에 제안한대로 프로그램을 어셈블러로 작성하고 opcode를 직접 찾아보십시오. 컴퓨터에 넣는 방법 : 오래된 테이프 플레이어를 가지고 재생 헤드를 제거하되 캡스턴과 핀치 롤러는 그대로 두십시오. 이것은 당신의 수송이 될 것입니다. 릴 투 릴 플레이어가있는 경우 재생 헤드를 그대로 둘 수 있습니다.

그런 다음 길고 좁은 용지 또는 더 나은 투명 테이프를 사용하십시오. 이곳은 프로그램을 인코딩하는 곳입니다. 프로그래밍 할 핀 수만큼 트랙을 사용합니다. 한 트랙에서 일정한 간격으로 검은 점을 넣습니다. 이것은 당신의 시계입니다. 다른 트랙에서는 데이터와 신호에 따라 검은 점이나 스트립을 넣고 공백을 남겨 둡니다. 전체적으로 빛을 비추고 작은 포토 트랜지스터로 감지하거나 (또는 ​​테이프에서 하나의 LED를 비추고 다른 유사한 LED로 빛을 감지) 트랜지스터로 클록 및 신호 라인을 구동합니다. 테이프 플레이어에 약간의 공간이 필요하기 때문에 재생 헤드를 제거해야 할 수도 있습니다.

물론 신호를 오디오로 인코딩 할 수도 있지만 디코딩하기가 조금 더 복잡합니다. 또는 투과 된 빛 대신 반사 된 것을 감지 할 수 있습니다. 또는 투명 테이프에 검은 색 표시 대신 어두운 테이프 나 종이 테이프에 구멍을 뚫을 수 있습니다. 도대체 무엇이. 테이프 플레이어는 테이프를 일정한 속도로 구동하므로 컴퓨터없이 클럭 신호를 입력 할 수 있습니다.


1

예. 주요 문제는 프로그래밍 인터페이스와 상호 작용하는 것일 수 있습니다. 일반 주소와 데이터 버스가 있다면 조금 더 쉽습니다. 초기 컴퓨터를 본 적이 있습니까? 프로그램은 전면에 스위치가있는 RAM에 한 번에 하나의 명령으로 입력됩니다.


그는 마이크로 프로세서가 아닌 마이크로 컨트롤러에 대해 물었다. 마이크로 컨트롤러는 일종의 인터페이스 없이는 액세스 할 수없는 플래시 코드를 실행합니다.
tcrosley

4
@tcrosley-초기 uC에는 플래시가 없었습니다. 그들은 프로그램 저장소를위한 RAM이나 ROM을 가지고있었습니다.
핫 릭

@HotLicks 수정. 그리고 몇 가지 예외가 있지만 이들은 마이크로 컨트롤러가 아닌 모든 마이크로 프로세서였습니다. 그것은 프로그램 저장소가 플래시인지, ROM인지, PROM인지, EPROM인지, EEPROM인지가 아니라 내 요점이었습니다. 요점은 프로그램 저장소가 칩에 있는지 (마이크로 컨트롤러) 아닌지 (마이크로 프로세서)였다. 1977 년에 소개 된 인텔 최초의 micvrocontroller 인 8048조차도 내부 ROM을 가지고있었습니다.
tcrosley

3
@Tcrosley 누구 시죠? 그리고 일반적으로 도움이되고 객관적인 tcrosley로 무엇을 했습니까? :-) | 그의 첫 번째 관찰은 프로그래밍 인터페이스와 상호 작용할 수 있다는 것입니다. "IF"주소 및 데이터 버스는 IF입니다. 일부 대형 및 경계 하이브리드 마이크로 컨트롤러에 적용되지만 그의 원래 IF는 충분히 훌륭했습니다 (단단하고 느리지 만).
Russell McMahon

3
마이크로 프로세서와 마이크로 컨트롤러 사이의 엄격한 차이를 유지하는 것은 특히 모든 단일 응답에 대한 의견을 제시 할 때 유용하지 않습니다.
pjc50

1

40 년 전의 Digital Equipment의 PDP-8 최소 컴퓨터 에는 자동 부팅 기능이 없었습니다. 프로그램은 일반적으로 펀칭 페이퍼 테이프에서로드되었지만 페이퍼 테이프를로드하는 로더는 수동으로 전면 패널 스위치에 입력해야했습니다.

enter image description here

오늘날 임베디드 컨트롤러로 사용했던 OEM과 같은 Digital 및 PDP-8 고객 사이트에서 사용자가 부트 로더를 암기하고 부트에 가장 빠른 시간 동안 서로 경쟁하는 것은 드문 일이 아니 었습니다. 기계에 로더. 이 기계는 자기 코어 메모리를 사용했습니다 (손이 작은 손가락을 가진 숙녀들이 바늘과 머리카락을 사용하여 세계 곳곳에서 손을)습니다).

enter image description here

마그네틱 메모리 내용은 비 휘발성이기 때문에 부트 로더는 전원이 꺼진 상태로 남아 있으며 초기 조립 후에 만 ​​수동 입력이 필요했습니다. 로더는 프로그램 버그 또는 로더 공간을 사용하는 데 필요한 프로그램으로 지워졌습니다.


몇 년 전, 눈이 내리막 길에서 맨발로 학교에 갔을 때, 고등학교의 PDP-8은 앞에서 설명한 것처럼 전면 패널에서 부트 로더를 토글하여 부팅해야했습니다. 컴퓨터를 담당 한 교사를 포함하여 컴퓨터에 대해 많은 교사가 알지 못했습니다. 그는 up이 0이고 1이 down이라고 생각하여 부트 로더에서 절대로 토글 할 수 없었습니다. 영어 수업을 할 때 컴퓨터가 충돌하도록 컴퓨터를 다시 시작하라는 메시지가 표시됩니다. 나는 그의 업 대 다운 오해에 대해 그에게 말하지 않았다-그것은 나에게 너무 유용했다.
Olin Lathrop

나는 PDP-8을 좋아했다. 약 3 년 동안 단독으로 액세스 할 수 있었으므로 PC라는 용어가 발명되기 훨씬 전에 개인용 컴퓨터를 사용하는 것과 같습니다. 4K 메모리에 맞는 놀라운 기능. 물론 많은 종이 테이프 (DECtape가 없었 음)와 Teletype 용지를 겪었습니다.
tcrosley

0

대답은 그렇습니다 . 컴퓨터, 디버거 등없이 마이크로 컨트롤러를 프로그래밍 할 수 있습니다. 필요한 것은 uC 제조업체가 지정한 다양한 전압, 데이터, 클록 및 프로그래밍 시퀀스를 제공하는 것입니다 (쉽지 않은 작업은 아님).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.