백그라운드 디버그 모드 인터페이스
Background debug mode interface백그라운드 디버그 모드(BDM) 인터페이스는 임베디드 시스템의 디버깅이 가능한 전자 인터페이스다.구체적으로는 마이크로컨트롤러에서 회로 내 디버깅 기능을 제공한다.그것은 디버깅되고 있는 시스템의 단일 와이어와 전문화된 전자장치를 필요로 한다.그것은 많은 프리스케일 반도체 제품에 나타난다.
인터페이스는 Host가 대상을 관리하고 쿼리할 수 있도록 허용한다.대상 장치에 전문화된 하드웨어가 필요하다.호스트에 특별한 하드웨어가 필요하지 않으며, 간단한 양방향 I/O 핀만 있으면 충분하다.
I/O 신호
BDM이 대상과 데이터를 주고받기 위해 사용하는 신호는 호스트 프로세서에 의해 개시된다.호스트가 전송 라인을 부정하고 다음 중 하나
- 더 빨리 선을 주장해서 1을 출력하면
- 나중에 선을 주장하여 0을 출력한다.
- 출력물을 트리 states하여 대상이 라인을 구동할 수 있도록 한다.호스트는 1 또는 0을 입력 값으로 감지할 수 있다.
다음 비트 시간이 시작될 때 호스트는 전송 라인을 부정하며 프로세스가 반복된다.각 비트는 이러한 방식으로 전달된다.
즉, 오늘날 소프트웨어와 하드웨어 설계의 복잡성이 증가함에 따라 디버깅에 대한 새로운 접근법이 생겨나고 있다.실리콘 제조업체들은 새로운 프로세서의 에뮬레이션을 위해 점점 더 많은 온칩 디버깅 기능을 제공한다.
백그라운드 디버그 모드(BDM), JTAG, 온칩 인 회로 에뮬레이션 등의 이름으로 다양한 프로세서에서 구현된 이 기능은 칩 자체에 기본 디버깅 기능을 탑재한다.BDM(1선 인터페이스) 또는 JTAG(표준 JTAG) 디버그 포트를 통해 안정적인 온칩 디버깅 서비스를 통해서만 마이크로컨트롤러를 제어하고 모니터링할 수 있다.
이 디버깅 모드는 대상 시스템이 충돌할 때에도 실행되며 개발자들이 충돌의 원인을 계속 조사할 수 있게 해준다.
마이크로컨트롤러 애플리케이션 개발
총 개발 시간과 비용을 절감하려면 좋은 개발 도구 환경이 중요하다.사용자들은 그들의 시스템의 실제 설정을 모방하는 조건 하에서 그들의 응용 프로그램을 디버깅하기를 원한다.그 때문에 실제 대상 시스템에서 사용자 프로그램을 디버그할 수 있는 기능이 필요하다.이것을 회로 내 디버깅이라고 한다.더욱이, 대부분의 새로운 MCU는 플래시 메모리 같은 비휘발성 메모리를 가지고 있기 때문에 대상 시스템의 프로그래밍 코드도 필요하다.이것을 회로내 프로그래밍이라고 한다.
회로 디버깅 및 프로그래밍 요건을 지원하기 위해 HC08 패밀리는 모니터 모드를 가지고 있으며 HCS08과 RS08은 백그라운드 디버깅 모드(BDM)를 활용한다.HCS08의 백그라운드 디버그 하드웨어는 백그라운드 디버그 컨트롤러(BDC)와 디버그 모듈(DBG)로 구성된다.RS08의 백그라운드 디버그 하드웨어는 백그라운드 디버그 컨트롤러(BDC)로만 구성된다.
BDM 명령
BDM 호스트는 대상에 매개 변수가 포함된 명령을 내릴 수 있다.일부 명령은 대상 메모리 블록, CPU의 개별 레지스터 또는 대상에서 사용할 수 없는 레지스터의 읽기 또는 쓰기를 허용한다.
예를 들면 다음과 같다.
READ_BYTE | 메모리에서 바이트 읽기 |
WRITE_BYTE | 메모리에 바이트 쓰기 |
GO | 현재 프로그램 카운터 위치에서 실행 시작/다시 시작 |
WRITE_PC | 프로그램 카운터에 값 쓰기 |
READ_PC | 프로그램 카운터 값 읽기 |
WRITE_X | 인덱스 레지스터에 값 쓰기 |
READ_X | 인덱스 레지스터 값 읽기 |
READ_SP | 스택 포인터 값 읽기 |
BDM 함수
대상 부분에 따라 BDM 컨트롤러는 하드웨어 중단점 레지스터를 특징으로 할 수 있다.레지스터는 메모리에 주소를 나타내는 값을 가지고 있다.대상 부품의 CPU가 메모리의 해당 위치에 액세스할 때, BDM 하드웨어는 대상 부품을 제어하고 프로그램 실행을 중지하고 백그라운드 모드에서 작동을 시작할 수 있다.
참조
- 프리스케일 반도체MC9RS08KA2 데이터 시트(MC9RS08KA2, 1.0 개정판).
- 프리스케일 반도체CPU12 참조 설명서
- 프리스케일 반도체RS08 핵심 참조 설명서
- 프리스케일 반도체HCS08 제품군 참조 매뉴얼