프로그램을 보드에 굽기 전에 프로그램 실행을 시뮬레이션하는 방법이 있습니까?


24

때때로 프로그램에 런타임 오류가있을 수 있습니다. 때로는 찾기가 어렵고 쉽게 놓칠 수 있습니다. 실제로 보드에 굽기 전에 프로그램을 테스트하는 방법이 있습니까?




실제 Arduino에서만 오류가 발생하는 문제가있을 수 있습니다 (하지만 예제를 줄 수는 없습니다).
Polar

@Polar 프로그램 로직의 관점에서, 나는 어떻게 상상할 수 없다. 당신은, 어쩌면, 게시 할 수 있는 예를?
asheeshr

답변:


19

몇 가지 Arduino Simulator 프로젝트가 있습니다.

아마도 가장 성숙한 것 중 하나는 Arduino 용 Virtronics Simulator , YouTube 비디오 입니다.

버 트로닉스 아두 이노 시뮬레이터

위에 링크 된 Virtronics 페이지에는 무료 및 유료의 다른 Arduino 시뮬레이터도 나와 있습니다.

Arduino가 유발하는 관심을 감안할 때, 더 많은 시뮬레이터가있을 가능성이 높으므로 여기에 답을 나열하려고 할 필요는 없습니다.

주목할만한 것은 Arduino Simulator iPhone 앱 도 있다는 것입니다 . 이것은 아직 작동 중에는 보지 않은 권장 사항이 아닙니다.


참고 사항 :

Arduino 자체는 프로토 타이핑 / 실험 보드입니다. 그것은 꽤 많은, 신선한 코드를 다시 점멸 한 후, 실험적인 코드를 프로그램을 디버깅, 수정과에 적합 하나 좋아하는만큼 여러 번 . 코드가 중단되면 변경 사항이 있으면 재설정하고 다시 플래시하십시오.

따라서 다양한 실제 타이밍 또는 애플리케이션이 직면 할 수있는 다른 문제를 완벽하게 모방 할 수없는 시뮬레이터 사용의 장점은 의문의 여지가 있습니다.

Arduino의 비용이 우려되는 경우 몇 가지 옵션이 열려 있습니다.


Virtronics Simulator와의 링크를 공유해 주셔서 감사합니다!
powtac

예, 디버깅 및 재 플래시가 훨씬 쉽습니다. ATMega328 플래시는 10000 다시 쓰기 주기로 평가되므로 하루에 10 번 다시 쓰기하더라도 2 년 이상의 재미가 있습니다. :-) 애호가에게는 꽤나 재미 있습니다. 좀 더 자세히 알고 있다면 최신 보드를 사용하여 디버깅을 수행 할 수 있으며웨어가 마모되기 시작하면 (예 : 5000주기 후) 디버깅을 위해 새로운 보드를 구입할 수 있습니다.
Lorenzo Donati는 Monica

8

Arduino가 연결된 상태에서 프로그램을 수동으로 단계별로 실행하고 디버그 할 수있는 경우 ( 코드를 Arduino에 다운로드 한 후) 런타임 오류를 찾을 수 있습니다 . Visual Studio가 필요하지만 Visual Micro 에서 사용할 수 있습니다 . 중단 점을 설정하고 변수를 평가하며 변수 값을 변경할 수 있습니다. 시간이 지남에 따라 메모리를 시각화 할 수도 있습니다.

여기에 이미지 설명을 입력하십시오


매우 깔끔합니다. 이 프로젝트는 얼마나 성숙합니까? 아니면 경험 에서이 IDE가 원활하게 실행됩니까?
boardbite

프로파일 링에 사용하지 않았으며 간단히 사용했지만 꽤 잘 통합되어 나에게 잘 작동합니다.

4

이를 수행하는 한 가지 방법은 실제 환경에 따라 모든 입력을 시뮬레이트하고 출력을 수용 (따라서 피드백 루프 작성)하는 실제 코드에 대한 랩퍼 프로그램을 작성하는 것입니다. 프로그램 유형, 테스트 정도 및 입력 수에 따라 다양한 노력이 필요합니다.

랩퍼 프로그램을 작성하는 동안 블랙 박스 방식을 따라야합니다 .

여기에 이미지 설명을 입력하십시오

그렇지 않으면 외부 코드가 프로그램을 테스트하지 않을 수 있으며 테스트 코드를 작성하는 동안 실제 코드를 염두에두면 경계 사례 또는 문제 영역을 무시하도록 바이어스 될 수 있습니다 (이것은 화이트 박스 테스트 를 수행하는 동안 발생하는 것으로 관찰되었습니다 대안입니다).


당신은 어떤 예를 알고 있습니까? 내가 본 대부분의 Arduino 코드에는 입력 / 출력이 필요하지 않은 부품에 대한 적절한 단위 테스트가 없습니다.
Jakob

@Jakob 나는 보통 테스트를 위해 나만의 코드를 작성한다. 소규모 프로젝트에는 실용적입니다.
asheeshr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.