2014-02-14 6 views
1

ATMEGA 프로젝트의 makefile 스타일 컴파일을 사용하고 있습니다. Arduino IDE의 유산으로서, develepment toolchain은 대부분 gcc 4.3.2를 대상으로합니다. Avrstudio 4.19 + Jtagice MKII CN + gcc 4.3.2 + make 어떻게 든 작동합니다. 하지만 제 문제는 gcc 4.3.2가 다소 버그가 있다는 것입니다. 예 : 비 휘발성 변수의 최적화와 관련된 임의의 버그, 레지스터 캐시 된 값이 항상 메모리에 다시 기록되는 것은 아니며 잘못된 경고도 성가시다. 따라서 gcc 4.7.0을 사용하면 문제가 해결되지만 Avrstudio 4.19에 이러한 프로그램을로드 할 수 없습니다. 16 진수을로드 할 때 Avrstudio가 항상 충돌합니다. 아무도이 툴체인을 시도하고 성공 했습니까?Avrstudio 4.19 gcc를 사용하는 도구 모음 4.7.x

참고 : 크기가 커지고 새로운 문제가 발생할 수 있으므로 Avrstudio 버전을 원하지 않습니다.

감사

답변

1

A Erasmus 대답은 avr-gcc 4.7.x에서 작동했을 수 있습니다. 그러나 Avr-gcc 4.8.1에서 AvrStudio4가 디버깅 기호를로드하지 않았다는 Atmel AVR Toolchain의 최신 버전에서 발견되었습니다.

은 내가 .debug-pubnames 섹션은 AVR-GCC 4.8.1로하고 -gdwarf-2 -gstrict-dwarf -gpubnames 디버그 옵션을 사용하면 다음 AvrStudio4 디버깅 기호를 표시 할 수 누락 된 부분을 복원한다는 생성 된 ELF 파일에서 누락 된 것으로 나타났습니다.

+0

예! 이 솔루션은 최신 avr-gcc 6.1.x와 호환됩니다. – TMa

1

하나는 아트멜에서 제공하는 최신 avr-gcc 툴체인을 사용하는 경우, 다음 AVR 스튜디오 4가 충돌 .elf 파일을로드하려고합니다. 이 변경 사항을 수정하려면 디버그 플래그를 avr-gcc에서 -gdwarf-2 -gstrict-dwarf으로 변경하십시오. 그런 다음 AVR Studio 4에서 정상적으로 프로그램을로드하고 디버깅 할 수 있습니다.

+0

흠, gdwarf 플래그는 전혀 도움이되지 않습니다. 디버깅 시작이 실행될 때 AvrStudio는 계속 충돌합니다. JTAG 프로그래머 (chineese clone JTAGICE mkII-CN)를 사용하고있을 수 있습니까? 연결이 끊어진 대화 상자가 나타나면 즉, 특정 단계에서 충돌이 발생했는지 알 수 없기 때문에이를 증명할 수 없습니다. 나는 JTAGICE에 어떤 데이터가 전달되는지도 모른다. – TMa