메뉴 English Ukrainian 러시아인 홈

애호가 및 전문가를 위한 무료 기술 라이브러리 무료 기술 라이브러리


라디오 전자 및 전기 공학의 백과사전
무료 도서관 / 무선 전자 및 전기 장치의 계획

ROM 에뮬레이터를 사용하여 마이크로컨트롤러 디버깅 무선 전자 및 전기 공학 백과사전

무료 기술 라이브러리

무선 전자 및 전기 공학 백과사전 / 마이크로 컨트롤러

기사에 대한 의견 기사에 대한 의견

마이크로프로세서가 포함된 전자 장치의 작동 프로그램을 개발하고 디버깅하는 복잡성이 전체 개발 비용을 결정하는 경우가 많습니다. 메모리와 일부 주변 장치가 통합된 마이크로컨트롤러(MC)에서는 특히 두드러집니다. 디버깅을 크게 용이하게 하는 도구 중 하나는 [1]에 설명된 ROM 에뮬레이터입니다. 제안 된 기사는 작업 기술을 설명합니다. 디버깅 기능은 설명된 방법으로 제한되지 않습니다. 이 과정은 일반적으로 디자인뿐만 아니라 어느 정도 예술입니다. 같은 악기에 대해 모든 사람이 "자신의 음악"을 만듭니다. 우리는 MK 프로그램을 디버깅하기 위한 독창적인 도구와 방법을 공유할 독자들에게 감사할 것입니다.

MC 소프트웨어 디버깅 프로세스의 복잡성과 수고로움은 다음 요인에 의해 결정됩니다[2].

  • 시스템의 소프트웨어와 하드웨어 부분 간의 강력한 상호 연결
  • MC의 내부 리소스 및 제어 지점에 대한 직접 액세스 부족
  • 시간에 따라 복잡하게 분포된 신호의 다중 비트 특성;
  • 시스템에서 신호의 비주기성 또는 매우 낮은 반복 빈도;
  • 정보를 교환하기 위한 다양한 외부 장치 및 프로토콜.

전통적인 테스트 장비(예: 오실로스코프)는 MCU 디버깅을 위해 제한된 범위에서만 사용할 수 있습니다.

가장 간단한(동시에 가장 비효율적인) 디버깅 방법은 "시행착오 방법"입니다. 프로그램을 재프로그래밍 가능한 읽기 전용 메모리(EPROM)에 로드하고 실행을 시도하며 프로그램의 오류를 감지 및 수정하고 하드웨어, EPROM 지우기, 프로그램 다시 로드 등 e. EPROM 칩에 데이터를 지우고 쓰는 프로세스는 시간이 오래 걸리며 일정 횟수의 재프로그래밍 주기 후에는 일반적으로 실패합니다. 마이크로 회로를 반복적으로 설치 및 제거하면 EPROM 소켓의 전기 접점의 신뢰성이 떨어집니다. 시스템에 대한 디버깅 정보를 얻을 가능성은 거의 없습니다.

현재 MK는 개인용 컴퓨터를 기반으로 한 크로스 도구로 디버깅하는 경우가 가장 많습니다. 이를 통해 MC 리소스의 방해를 최소화할 수 있습니다. 디버깅할 장치는 그림과 같이 ROM 에뮬레이터와 같은 일부 도구를 통해 컴퓨터에 연결됩니다. 이러한 콤플렉스를 통해 프로그램을 다운로드 및 편집하고 테스트 모듈을 입력하고 시스템에 대한 특정 정보를 얻는 등 아래에서 논의할 수 있습니다.

ROM 에뮬레이터가 유일하고 가장 강력한 디버깅 도구는 아니지만 여전히 인기가 있습니다. 그들의 "장수"는 MC 유형과의 독립성 (외부 프로그램 메모리로 작업하는 기능 만 필요함), 실시간 작동, 저렴한 가격 및 광범위한 장비 개발자 및 라디오 아마추어에 대한 접근성으로 설명됩니다. MCS-51 MK 제품군(8031, 8051, 80C31, 80C51. KR1816BE31, KR1816BE51, KR1830BE31, KR1830BE51 등)의 예를 사용하여 ROM 에뮬레이터를 사용하여 프로그램을 디버깅하는 기술을 고려할 것입니다.

디버깅을 시작하려면 시스템 하드웨어 및 MC 자체의 작동 가능성을 확인해야 합니다. 이를 위해 "자유 카운트" 테스트[3]를 사용할 수 있습니다. 이는 MK 포트 라인에서 가능한 모든 코드 조합의 열거로 구성됩니다. 테스트하는 동안 포트 라인은 출력 상태로 설정되므로 먼저 디버깅 중인 장치에 따라 포트 라인이 다른 요소의 출력에 로드되지 않았는지 확인하십시오. 그러한 부하가 있으면 일시적으로 분리하십시오.

MCU 프로그램의 전체 주소 공간 내에서 NOP(No Operation) 명령 코드로 ROM 에뮬레이터를 로드합니다. MCS-51의 경우 코드 00H입니다. 이러한 "프로그램"을 실행할 때 MK는 프로그램 메모리의 모든 주소를 순차적으로 통과합니다. 오실로스코프를 사용하여 ALE, PME 및 포트 P0, P2의 신호를 모니터링합니다. 포트 라인의 파형은 주소 및 데이터의 하위 바이트 P0에 대한 멀티플렉싱을 고려하여 이진 카운터의 타이밍 다이어그램과 일치해야 합니다.

다음으로 표 1에 표시된 테스트 프로그램을 ROM 에뮬레이터에 로드하여 포트 P1 및 P00을 확인합니다. 0. 지정된 포트의 라인에 XNUMXH에서 XNUMXFFH까지 일련의 코드를 출력하여 XNUMX비트 이진 카운터를 시뮬레이트합니다. 오실로그램이 필요한 것과 일치하는 경우 포트에서 분리된 부하를 복원하고 MK의 작업 프로그램 디버깅을 진행합니다. 시스템의 소프트웨어와 하드웨어를 동시에 디버깅하고 있으며 오실로스코프를 사용하여 테스트 지점에서 주기적으로 신호를 모니터링하는 것을 잊지 마십시오. 신호 유형과 신호에 대한 아이디어의 불일치는 진지한 반성 및 추가 확인이 필요한 이유입니다.

ROM 에뮬레이터를 사용하여 마이크로컨트롤러 디버깅

개발 및 디버깅을 용이하게 하려면 프로그래밍의 모듈식 원칙을 준수해야 합니다. 즉, 기능적 특징에 따라 MK 프로그램을 여러 부분으로 나눕니다. 이렇게 하면 개별 모듈을 쉽게 이동하고 필요한 경우 다른 프로젝트에 적용할 수 있습니다. 전원이 켜지거나 MK가 재설정된 후 제어가 전달되는 모듈을 메인 또는 메인이라고 합니다. 프로그램 진입점으로 제어를 넘기는 것은 반환 주소로 스택을 오염시키지 않기 위해 서브루틴 호출이 아닌 점프 명령이어야 합니다.

예기치 않은 프로그램 결과를 방지하려면 변수를 처음 사용하기 전에 각 변수에 초기 값을 지정해야 합니다. 경우에 따라 주변 장비를 초기화해야 할 수도 있습니다. 초기화 블록은 기본 프로그램 모듈의 시작 부분에 배치됩니다.

디버깅 시작 시 기본 프로그램 모듈의 대략적인 보기가 표에 나와 있습니다. 2. 프로그램에 대한 진입점과 종료 핸들러만 포함합니다. 이러한 출력은 마이크로컨트롤러 시스템에서 거의 사용되지 않지만 비상 상황을 올바르게 종료하려면 제공되어야 합니다. 고려중인 예에서 작업 완료 후 프로그램이 "루프"됩니다. 하드웨어 재설정 신호로 시스템을 다시 시작해야만 이 상태에서 벗어날 수 있습니다.

ROM 에뮬레이터를 사용하여 마이크로컨트롤러 디버깅

디버깅하는 동안 다른 프로그램 모듈이 준비되면 기본 모듈에 추가됩니다. 연결 및 디버깅 순서는 중요한 역할을 합니다. 정보 출력 장치(디스플레이, 디지털-아날로그 변환기 등)용 드라이버부터 시작하여 해당 호출을 기본 모듈에 배치해야 합니다. 그런 다음 다른 주변 장치의 드라이버, 데이터 처리 루틴을 디버깅하고 그 후에야 모든 프로그램 모듈의 공동 작동을 확인합니다. 영숫자 디스플레이가 있는 경우 드라이버가 먼저 디버깅되고 나중에 디버깅 정보(예: MK의 내부 데이터 메모리 내용)를 표시하는 데 사용됩니다. 제어 컴퓨터와 디버깅 중인 장치 모두에서 포함된 정보를 읽고 쓸 수 있는 ROM 에뮬레이터를 사용하는 경우 MK는 디버그 데이터를 ROM 에뮬레이터의 여유 메모리 영역에 배치할 수 있으며 제어 컴퓨터는 이를 읽고 디스플레이에 표시합니다.

예를 들어 MCU의 내부 데이터 RAM의 내용을 출력하려면 외부 데이터 메모리 쓰기(WR) 신호 출력을 ROM 에뮬레이터의 쓰기 신호 입력에 연결하고 표 3에 표시된 서브루틴을 사용합니다. 32. 디버깅 중인 장치의 프로그램 메모리 양이 8000KB를 초과하지 않는다고 가정하므로 에뮬레이터 메모리에 배치된 디버그 정보는 주소 0H에서 시작합니다. 레지스터 R1 및 R8000의 내용은 나중에 루프를 구성하기 위해 서브루틴에서 사용되기 때문에 별도로 전송됩니다. 디버깅 정보가 출력된 후 MK 프로그램이 일시 중지되고 807H-XNUMXFH ROM 에뮬레이터의 메모리 셀 내용이 제어 컴퓨터에서 읽고 표시 및 분석됩니다. 마찬가지로 프로그래밍 방식으로 액세스 가능한 모든 MC 레지스터의 내용을 표시할 수 있습니다.

ROM 에뮬레이터를 사용하여 마이크로컨트롤러 디버깅

주변 장치 드라이버 디버깅을 시작할 때 MK에서 생성된 제어 신호를 일시적으로 비활성화하여 프로그램 오류로 인한 장치 오류를 방지합니다. 프로세스가 일회성이면 "루프"하고 필요한 경우 오실로스코프 클록 신호를 프로그래밍합니다. 오실로스코프에서 생성된 신호를 모니터링하여 드라이버를 디버그합니다. 제어 신호의 타이밍 다이어그램이 필요한 것과 일치하는지 확인한 후 주변 장치를 연결하고 실제 하드웨어에서 드라이버 디버깅을 계속하십시오. 마지막으로 프로그램 모듈에서 디버깅 요소를 제거하고 최종 형태에서 동작을 확인합니다.

서로 다른 모듈에서 공유 MK 리소스를 사용하면 다른 서브루틴이 추가될 때 디버깅된 프로그램이 작동을 멈춘다는 사실이 자주 발생합니다.따라서 다음 모듈을 디버깅한 후 이전에 디버깅된 모든 드라이버와 서브루틴이 계속 올바르게 작동하는지 확인하십시오. 프로그램에서 인터럽트를 사용하는 경우 반드시 필요한 경우가 아니면 인터럽트를 비활성화하지 마십시오. 디버깅된 모듈은 현재 필요하지 않더라도 프로그램에서 제거하면 안 됩니다.

MK가 "정지"되면 다음 오류 현지화 방법이 유용합니다. 순차적으로 증가하는 숫자를 표시하는 프로그램에 제어점을 입력하십시오. "매달린" 후 디스플레이에는 마지막으로 성공적으로 통과한 제어점에 해당하는 번호가 표시됩니다. 이러한 여러 지점이 무한 루프에 걸리면 디스플레이의 숫자가 빠르게 변경됩니다. 주기에 어떤 지점이 있는지 정확히 확인하려면 예를 들어 유휴 주기의 형태로 각 지점을 출력할 때 프로그램 지연을 설정하여 숫자 변경을 인위적으로 늦춰야 합니다. 디버깅 중인 시스템에 내장 디스플레이가 없는 경우 ROM 에뮬레이터의 여유 메모리 영역을 통해 호스트 컴퓨터의 디스플레이에 정보를 표시할 수 있습니다.

모든 장치 드라이버를 디버깅한 후 다른 서브루틴 디버깅을 시작합니다. 그 중 하나라도 데이터를 처리하거나 변환하는 복잡한 알고리즘을 구현하는 경우 하나 이상의 변수 중간 값을 디스플레이에 표시하는 것은 오류 분석에 충분한 정보를 제공하지 못하는 경우가 많습니다.어려움을 극복하기 위해 필요한 양의 디버깅 정보를 ROM 에뮬레이터의 여유 메모리 영역은 어려움을 극복하는 데 도움이 될 것입니다.

모든 프로그램 모듈의 정상적인 작동을 달성하면 함께 디버깅할 수 있습니다. 이 경우 발생하는 어려움은 두 그룹으로 나뉩니다. 첫 번째는 산술 논리 장치, 데이터 메모리, 입출력 포트와 같은 공통 MK 리소스 공유 문제를 포함합니다. 두 번째는 마이크로컨트롤러 장치의 실시간 작동과 관련이 있습니다.

실시간 시스템은 일반적으로 다중 스레드입니다. 여러 프로그램 작업(스레드)이 병렬로 실행되어 서로 상호 작용하고 공통 리소스를 사용합니다. 그러나 매 순간 MC는 구조로 인해 그중 하나만 해결하고 우선 순위를 고려하여 차례로 다른 것으로 전환합니다. 리소스 부족과 데이터 처리 시간 부족으로 인해 작업 간의 충돌이 발생합니다. 따라서 프로그램 모듈에서 사용되는 MK 리소스에 특별한 주의를 기울이고 종종 디버그 정보를 표시하여 상태 변경을 제어합니다. 가능할 때마다 전역 변수의 수를 줄이고 로컬 변수로 바꾸십시오. 스택의 상태를 모니터링합니다. 프로그램의 중요한 부분의 실행 시간을 예측하고 실제로 가능한 다양한 입력 신호 값으로 시스템을 확인하십시오.

ROM 에뮬레이터를 사용하면 MK의 내부 메모리에서 작동하도록 설계된 프로그램을 일시적으로 외부 프로그램 메모리에 넣으면 디버그할 수도 있습니다. 이 경우 포트 P0 및 P2는 외부 메모리 서비스에 의해 점유되므로 MK의 나머지 여유 I/O 라인이 충분하지 않은 경우 P0 및 P2는 외부 데이터 메모리 셀로 지정된 I/O 포트로 대체됩니다. 트리거 레지스터를 사용하여 출력 라인 수와 입력 라인 수를 늘리는 표준 구성표에 따라 연결됩니다. 세 가지 출력 상태의 요소입니다.

에뮬레이터를 사용하여 시스템을 디버깅 한 후 디버깅 요소를 제거하고 프로그램을 ROM (또는 MK의 내부 프로그램 메모리)에 쓰고 최종 형태의 장치 작동을 확인하십시오.

문학

  1. Vydolob G., Kudryashov V., Samoilov V. ROM/RAM 에뮬레이터 RE020. - 라디오, 1997. No. 11, S. 30-32.
  2. Zelenko GV, Ivannikov AD, Sypchuk PP 마이크로 프로세서 시스템의 설계 및 디버깅. - 엠엔지니어링. 1982.
  3. William G. B. 디버깅 마이크로프로세서 시스템: Per. 영어로부터. -M Energoatomizdat. 1988년

저자: G.Vydolob, V.Samoylov, 모스크바(Zelenograd)

다른 기사 보기 섹션 마이크로 컨트롤러.

읽고 쓰기 유용한 이 기사에 대한 의견.

<< 뒤로

과학 기술의 최신 뉴스, 새로운 전자 제품:

터치 에뮬레이션을 위한 인조 가죽 15.04.2024

거리가 점점 일반화되는 현대 기술 세계에서는 연결과 친밀감을 유지하는 것이 중요합니다. 최근 독일 자를란트 대학(Saarland University) 과학자들이 인공 피부를 개발하면서 가상 상호 작용의 새로운 시대가 열렸습니다. 독일 자를란트 대학 연구진이 촉각 감각을 멀리까지 전달할 수 있는 초박형 필름을 개발했습니다. 이 최첨단 기술은 특히 사랑하는 사람과 멀리 떨어져 있는 사람들에게 가상 커뮤니케이션을 위한 새로운 기회를 제공합니다. 연구원들이 개발한 두께가 50마이크로미터에 불과한 초박형 필름은 직물에 통합되어 제XNUMX의 피부처럼 착용될 수 있습니다. 이 필름은 엄마나 아빠의 촉각 신호를 인식하는 센서이자, 이러한 움직임을 아기에게 전달하는 액추에이터 역할을 합니다. 부모가 직물을 만지면 압력에 반응하여 초박막 필름이 변형되는 센서가 활성화됩니다. 이것 ...>>

펫구구 글로벌 고양이 모래 15.04.2024

애완동물을 돌보는 것은 종종 어려운 일이 될 수 있습니다. 특히 집을 깨끗하게 유지하는 데 있어서는 더욱 그렇습니다. Petgugu Global 스타트업의 새롭고 흥미로운 솔루션이 제시되었습니다. 이 솔루션은 고양이 주인의 삶을 더 쉽게 만들고 집을 완벽하게 깨끗하고 깔끔하게 유지할 수 있도록 도와줍니다. 스타트업 펫구구글로벌(Petgugu Global)이 자동으로 배설물을 씻어내는 독특한 고양이 화장실을 공개해 집안을 깨끗하고 산뜻하게 유지해준다. 이 혁신적인 장치에는 애완동물의 배변 활동을 모니터링하고 사용 후 자동으로 청소하도록 활성화되는 다양한 스마트 센서가 장착되어 있습니다. 이 장치는 하수 시스템에 연결되어 소유자의 개입 없이 효율적인 폐기물 제거를 보장합니다. 또한 변기는 물을 내릴 수 있는 대용량 수납 공간을 갖추고 있어 다묘 가정에 이상적입니다. Petgugu 고양이 모래 그릇은 수용성 모래와 함께 사용하도록 설계되었으며 다양한 추가 기능을 제공합니다. ...>>

배려심 많은 남자의 매력 14.04.2024

여성이 '나쁜 남자'를 더 좋아한다는 고정관념은 오랫동안 널리 퍼져 있었습니다. 그러나 최근 모나쉬 대학의 영국 과학자들이 실시한 연구는 이 문제에 대한 새로운 관점을 제시합니다. 그들은 여성이 남성의 정서적 책임과 다른 사람을 도우려는 의지에 어떻게 반응하는지 살펴보았습니다. 이번 연구 결과는 무엇이 남성을 여성에게 매력적으로 만드는지에 대한 우리의 이해를 변화시킬 수 있습니다. Monash University의 과학자들이 실시한 연구는 여성에 대한 남성의 매력에 대한 새로운 발견으로 이어졌습니다. 실험에서 여성에게는 노숙자를 만났을 때의 반응을 포함하여 다양한 상황에서 자신의 행동에 대한 간략한 이야기와 함께 남성의 사진이 표시되었습니다. 일부 남성은 노숙인을 무시했지만, 다른 남성은 음식을 사주는 등 그를 도왔습니다. 한 연구에 따르면 공감과 친절을 보여주는 남성은 공감과 친절을 보여주는 남성에 비해 여성에게 더 매력적이었습니다. ...>>

아카이브의 무작위 뉴스

두 비트의 정보 - 하나의 원자 09.09.2020

네덜란드 과학자들은 원자의 궤도 운동량과 스핀 상태의 여기를 서로 독립적으로 제어할 수 있는 기판에 하나의 철 원자 시스템을 만들었습니다.

시스템을 제어하기 위해 연구원들은 주사 터널링 현미경의 바늘을 사용했는데, 원자와 상호 작용할 때 스핀 상태의 여기 없이 궤도 운동량이 반전되었습니다. 이러한 조건에서 원자는 자기장과 관련된 XNUMX개의 자유도를 가지며, 이는 미래에 원자당 XNUMX비트의 기록 밀도를 갖는 특히 대용량 정보 저장 시스템을 만드는 데 사용될 수 있습니다.

단일 비트의 크기를 원자의 규모로 줄이면 엄청난 양의 데이터를 극도로 작은 미디어에 담을 수 있습니다. 잠재적으로 이러한 시스템은 개별 원자 S의 자기장 제어 스핀을 사용하여 만들 수 있습니다. 즉, 구성에 포함된 기본 입자의 각 운동량의 벡터 합입니다. 실제 샘플에서 각 원자 L의 궤도 운동량(전체 각운동량)은 스핀-궤도 상호작용과 결정장의 조합으로 인해 억제되기 때문에 이러한 시스템에서 비트로 선택되는 것은 스핀 상태입니다.

그러나 그러한 시스템에서 원자의 L이 XNUMX이 아닌 경우에도 스핀-궤도 상호작용은 L과 S를 중첩으로 연결하여 시스템의 총 각운동량만 L + S 보존되며 L과 S의 독립적인 여기가 불가능합니다. 원자의 궤도 상태에 정보를 저장하려면 차례로 L을 저장할 수 있어야 하고 스핀 상태에 영향을 주지 않고 L을 제어할 수 있어야 합니다. 그런 다음 스핀 및 궤도 상태는 XNUMX과 XNUMX의 역할을 할 수 있으며 원자 자체는 시스템의 XNUMX자유도(스핀당 XNUMX비트 및 궤도 운동량).

스핀과 궤도 상태를 독립적으로 여기할 수 있는 하나의 원자 시스템이 Delft University of Technology의 Rasa Rejali에 의해 만들어졌습니다. 이를 위해 물리학자와 동료들은 Cu2N 기질의 자기적으로 중성인 질소 원자 위에 단일 철 원자를 배치하여 실질적으로 자유 궤도 운동량과 스핀을 갖는 시스템을 얻었다. 주사 전자 현미경의 바늘은 물리학자들이 원자를 연구하고 조작할 수 있게 해주었습니다.

단일 원자의 궤도 및 스핀 상태를 독립적으로 변경하는 제안된 방법은 아직 실제 구현과는 거리가 멉니다. 그럼에도 불구하고, 스핀의 성질과 궤도 상태의 유사성은 미래에 원자의 궤도 운동량이 지금처럼 간단하게 스핀으로 제어될 수 있다는 희망을 줍니다. 이 경우 정보 캐리어는 각 원자가 하나가 아닌 두 비트로 작동하여 잠재적인 최대 데이터 기록 밀도를 더욱 높일 수 있는 매우 현실적일 수 있습니다.

다른 흥미로운 소식:

▪ 가장 가벼운 중성미자의 질량 계산

▪ Thunderbolt 광 케이블

▪ 드론은 불법 조업 근절에 도움이 될 것입니다.

▪ 사람의 타액으로 구동되는 배터리

▪ 위를 자극하고 식욕을 개선하는 전기 캡슐

과학 기술 뉴스 피드, 새로운 전자 제품

 

무료 기술 라이브러리의 흥미로운 자료:

▪ 사이트 라디오 섹션 - 초보자용. 기사 선택

▪ 네메시스 기사. 대중적인 표현

▪ 기사 가짜가 린든이라고 불리는 이유는 무엇입니까? 자세한 답변

▪ 기사 연료 탱크 캡에 장착. 개인 수송

▪ 기사 Biogas 생산 기술. 무선 전자 및 전기 공학 백과사전

▪ 기사 트랜지스터 필드 외국. 무선 전자 및 전기 공학 백과사전

이 기사에 대한 의견을 남겨주세요:

이름 :


이메일(선택사항):


댓글 :





이 페이지의 모든 언어

홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰

www.diagram.com.ua

www.diagram.com.ua
2000-2024