어셈블리 코드를 어떻게 단위 테스트합니까?
나는 hexapod 로봇 프로젝트의 일환으로 직렬 서보 컨트롤러를 작업하고 있으며 코드는 복잡해졌습니다.) 어쨌든, 저는 일상 업무에서 C ++ 서버 개발자로서 AVR 어셈블리 코드에 동일한 종류의 테스트를 적용하려고했습니다. 나는 나에게 잘 맞는 방법을 찾았지만 ( 여기 참조 ) 표준 도구 나 기술이 없는지 관심이있다.
업데이트 : 서보 컨트롤러에 대한 전체 소스에 관심이있는 사람들을 위해 이제 유닛 테스트를 사용할 수 있습니다 .
답변
나는 이것을 우아하다고 묘사하지만 침입을 용서한다면 문제를 추가하고 싶습니다.
이런 상황에서 작동하기에는 매우 비싼 소프트웨어 패키지가 있다는 것을 알고 있지만, 내가 일하는 회사에서 우리가 필요로하는 것을 확신하지 않으면 비용을 감당할 수 없습니다.
TDD (Test Driven Development)는 개발을 위해 들었던 더 나은 시스템 중 하나이며, 그것을 즐기지 만, 시간이 걸리는 문제는 일반적으로 많은 사람들이 글리치라고 부르는 복잡한 인터럽트 및 하드웨어 이벤트로 인해 발생합니다. 별이 정렬 될 때 2 시간마다 문제가 발생하는 것은 사소한 것 같지만 휴대 전화가 일주일에 한 번만 얼었다면 엔지니어 이름을 저주 할 것입니다. 우리의 경우, 우리는 실제로 일이 부러 질 때 피드 로트에 들어가야합니다. 상상할 수 있듯이 피하고 싶습니다.
하위 시스템의 기능을 검사하는 매우 지능적인 솔루션을 보았습니다. 제대로 구현하면 일주일에 50 시간의 근무 시간에서 3 시간을 절약 할 수 있지만 결함이있는 상황을 찾아내는 현명한 방법이 있다면 수 주일의 작업 시간을 절약 할 수 있습니다. 때때로 무거운 짐을지고 현장에서 발생하는 “버그”를 찾습니다.
이 게시물은 아마 많은 도움이되지 않지만 모든 것을 빛으로 가져 오는 것이 모든 것을 쉽게 해결할 수 있다는 것을 알았습니다. 글리치 상황을 찾기위한 TDD 방법이 있다면 지불 할 수만 대를 할당 할 수 있습니다. -최대
답변
흥미 롭군 크리스마스가 끝난 후 나는 Pics와 함께 어셈블러를 만들 계획을 세웠습니다. 조금 더 시간이 있으면 시스템을 잘 살펴볼 것입니다.
내가 볼 수있는 한 가지 방법은 모의 객체 등을 생성하고 분해하기 위해 다른 언어로 일종의 프레임 워크를 스크립팅하는 것이지만 이것을 칩 / 시뮬레이션에 인터페이스하는 방법은 문제가 될 것입니다.
그래도 너무 번거로워지면 단위 테스트의 이점보다 중요하며 사용하기가 쉽지 않습니다.