2008-10-09 4 views
3

OS 지원이없는 임베디드 시스템 용 C++ 프로젝트를 작성하고 있습니다. 거의 도서관 지원이 없습니다. 아주 베어 메탈. 따라서 상당한 양의 코드가 긴밀하게 결합됩니다 (예 : 소프트웨어 트리거 인터럽트 및 그 바로 위의 계층).베어 메탈 시스템에 대한 소프트웨어 테스팅

내가하고있는 일은 직렬 포트 구성을 변경하여 PC 끝 (UI 끝)과 마이크로 프로세서 (활동 끝)의 동시 변경을 유도하는 것입니다. 나는 지금까지 조심 스레 점진적 타입 개발 (피팅으로 피팅)을 해왔다. 그러나 공학적으로 작동하는 코드에 대해 더 확신하고 싶습니다.

이런 종류의 상황에 대해 어떤 종류의 방법론/프레임 워크를 추천 하시겠습니까?

편집 :

나는 제비 갈매기, Inc.의 컴파일러에 의해 만들어진 ACore86 보드의 AMD186 ES를 사용 패러다임, 무료 버전 (선박 보드와 함께). 나는 불행하게도 나는 일하고있는 것을 바꿀 수있는 선택권이 없다.

답변

2

베어 메탈 환경에서 인프라가 부족하다는 것은 상당히 어려운 일입니다. 디버깅 도구에 중점을 두는 것이 좋습니다. 훌륭한주의와 훌륭한 방법론으로도 디버깅 할 수 있어야합니다.

gdbagent를 작동시키는 것이 좋습니다. 직접 구현해야하지만 간단한 텍스트 기반 프로토콜입니다. 외부 시스템에서 gdb를 실행하고 대상의 gdbagent와 통신합니다. 직렬 포트를 통해 gdbagent 프로토콜을 실행할 수는 있지만 많은 양의 데이터를 검사해야하는 경우에는 지루한 작업이됩니다. 사용 가능한 인터페이스가 더 빠른 경우 활용하십시오.

예산이 얼마인지 모르지만 JTAG 디버거를 계획해야합니다. gdbagent는 대상의 gdbagent가 실행될 수있는 한 훌륭합니다. 모든 것이 열심히 충돌하면, 당신은 토스트입니다. JTAG 디버거는 엄청나게 비싸지 만 임대 할 수 있습니다. 나는 과거에 Corelis 제품을 사용했으며, Abatron에 관한 좋은 소식을 들었습니다.

+0

2 개의 직렬 포트가 있습니다. 하나는 * my * 소프트웨어에서 사용됩니다. 다른 하나는 시스템과 함께 제공되는 로더/디버거에 의해 사용됩니다. gdbagent를 확인하고 JTAG 디버거를 살펴 보겠습니다. –

1

당신이 가장 좋은 방법은 컴파일러의 공급 업체와 협력하여 장치 시뮬레이터를 얻는 것입니다.

테시는이 칩과 함께 작동한다고합니다. 체크 아웃 : http://www.hitex.us/products.html?con_186.html~content

+0

Keil이나 Paradigm (컴파일러 회사)도 내가 말할 수있는 장치 시뮬레이터를 만들지 않습니다. –

+0

Tessy가이 칩에서 작동한다고 추측됩니다. 체크 아웃 : http://www.hitex.us/products.html?con_186.html~content – NotMe

1

타이밍이 중요 할 때 나는 무료 I/O 핀 또는 2 개와 스코프를 함께 사용하여 코드를 계측하고 싶습니다. 나는 또한 소스 레벨 디버깅을위한 JTAG 포트의 팬이다. 또한 마이크로 프로세서가 데이터 벡터를 저장하고 분석을 위해 PC에 두 번째 uart (있는 경우)를 다시 전송할 수 있습니다.

0

이런 종류의 영역에서 내가 한 일은 단위 테스트입니다.

아니요, 농담이 아닙니다.

유닛 테스트는 호스트 PC의 제어하에 장치에서 실행됩니다.

단위 테스트 제어하에 레이로드 프로그램에 대한 래퍼를 SRAM에 씁니다.

그러면 PC에서 프로그램을 보내 실행하고 출력을 확인할 수 있습니다.

보드를 운동해야하는 경우 랩 또는 유사한 USB 인터페이스 카드를 사용하십시오.

이제 테스트 지그의 하드웨어가 모두 호스트 PC에서 실행됩니다.

0

필자가 한 가지 성공한 점은 PC 환경에서 코드를 C++로 컴파일하고 테스트 한 다음 나중에 "직접"C로 컴파일하여 임베디드 시스템에서 실행하는 PC 환경을 설계하는 것이 었습니다. I/O 포트 참조는 I/O 객체에 대한 속성 액세스가되도록 # 정의되며 소켓을 통해 "하드웨어 에뮬레이션"프로그램으로 전송됩니다. 시스템의 일부는 내가 좋아할 것보다 더 까다로워졌지만, 후속 버전은 덜 복잡 할 것으로 예상됩니다.

관련 문제