???? ??? ????

터보 디버거에 들어가면 “원격에서 오래된 프로그램, 링크를 통해 보내라”라는 대화 상자가 표시됩니다. “예”를 선택하면 파일 blink.exe가 대상 RAM에 다운로드됩니다. 그런 다음 디버거는 기본에 초기 중단점을 설정하고 디버그 모니터에 해당 지점에 도달할 때까지 프로그램을 실행하도록 지시합니다. 다음으로 볼 수 있는 것은 기본의 C 소스 코드이며, 임베디드 프로세서의 프로그램 카운터가 해당 루틴의 진입점에 있음을 나타내는 커서가 있습니다. 에뮬레이터의 다른 한 가지 유형은이 시점에서 언급 할 가치가있다. ROM 에뮬레이터는 읽기 전용 메모리 장치를 에뮬레이트하는 장치입니다. ICE와 마찬가지로 대상에 연결하고 호스트와 통신하는 임베디드 시스템이기도 합니다. 그러나 이번에는 대상 연결이 ROM 소켓을 통해 연결됩니다. 임베디드 프로세서에, 그것은 다른 읽기 전용 메모리 장치 처럼 보인다. 그러나 원격 디버거는 디버그 모니터처럼 보입니다.

임베디드 소프트웨어를 다운로드하는 가장 확실한 방법 중 하나는 바이너리 이미지를 읽기 전용 메모리 장치에 로드하고 해당 칩을 대상 보드의 소켓에 삽입하는 것입니다. 분명히, 진정으로 읽기 전용 메모리 장치의 내용을 덮어 쓸 수 없습니다. 그러나 6장에서 볼 수 있듯이 임베디드 시스템은 일반적으로 장치 프로그래머라는 특수 장비의 도움으로 프로그래밍(또는 다시 프로그래밍)할 수 있는 특수 읽기 전용 메모리 장치를 사용합니다. 장치 프로그래머는 다양한 모양과 크기의 여러 메모리 소켓이 있는 컴퓨터 시스템으로, 모든 종류의 메모리 장치를 프로그래밍할 수 있습니다. 이 다운로드 기술의 가장 큰 단점은 ROM에서 실행되는 소프트웨어를 디버깅하는 쉬운 방법이 없다는 것입니다. 프로세서는 빠른 속도로 명령을 가져오고 실행하며 프로그램의 내부 상태를 볼 수 있는 방법을 제공하지 않습니다. 소프트웨어가 작동하고 시스템을 배포할 준비가 되었다는 것을 알고 나면 괜찮을 수 있지만 소프트웨어 개발 중에는 별로 유용하지 않습니다. 물론 LED 및 기타 외부에서 보이는 하드웨어의 상태를 검사할 수는 있지만 디버거만큼 많은 정보와 피드백을 제공하지는 않습니다. 지금까지 시뮬레이터의 가장 큰 단점은 프로세서만 시뮬레이션한다는 것입니다. 또한 임베디드 시스템에는 하나 이상의 중요한 하드웨어 장치가 포함되어 있는 경우가 많습니다.

이러한 장치와의 상호 작용은 시뮬레이터 스크립트 나 다른 해결 방법을 모방 할 수 있지만 이러한 해결 방법은 시뮬레이션이 가치있는 것보다 만드는 것이 더 어려울 수 있습니다. 따라서 실제 임베디드 하드웨어를 사용할 수 있게 되면 시뮬레이터로 너무 많은 작업을 수행하지 않을 것입니다. PC 및 임베디드 시스템의 소프트웨어 개발 주기에는 여러 단계가 포함됩니다. 그림 5-1은 임베디드 소프트웨어 개발 주기의 일반적인 다이어그램입니다. 일반 터보 디버거 명령을 사용하면 프로그램을 단계별로 시작하고 중단점을 설정하고 변수 및 레지스터에 저장된 값을 모니터링하고 디버거가 허용하는 다른 모든 작업을 수행할 수 있습니다. 또는 F9 키를 누르기만 하면 프로그램의 나머지 부분을 즉시 실행할 수 있습니다. 이렇게하면 보드 전면에 녹색 LED가 깜박이기 시작합니다. 프로그램과 디버거가 모두 제대로 작동하고 있다고 생각하면 Arcom 보드에 연결된 리셋 스위치를 누릅니다. 이렇게 하면 임베디드 프로세서가 재설정되고 LED가 깜박임을 중지하고 터보 디버거가 명령에 다시 응답합니다.

Author: Scott Wells

Scott Wells, 46, is a Universalist Christian minister doing Universalist theology and church administration hacks in Washington, D.C.