2012-05-10 3 views
2

저는 최근 Arduino Uno를 구입했습니다. 이것은 기본적으로 I/O 및 컴퓨터 연결에 대한 모든 세부 정보가 포함 된 atMega328 AVR 프로세서입니다.avr-gcc를 사용하여 어셈블리 코드 작성하기

저는 Arduino IDE와 avr-gcc 콜렉션을 사용하여 코드를 작성했습니다. 그러나 순수한 어셈블리 코드를 작성하고 싶습니다. 아무데도 가까이있는 것처럼 보이기 때문에 막 다른 골목에 닿았습니다. 그것에 대한 문서입니다. 즉, '순수한'어셈블리, 인라인 C 어셈블리 등을 쓰고 싶습니다. 그렇게하고 가능한 경우 예제 프로그램 (어셈블리 출력 gcc-avr이 아니 었습니다. 도움이된다면, 이해하기 어려운 및 모두). 특히
:

  • 어떻게 하나 AVR-으로 예에서 그 코드를 삽입 할 수있는 인터럽트 벡터를 지시 할 수있다?
  • 어떤 지시문을 사용할 수 있습니까?
  • .data 및 .bss 섹션은 어디에 있습니까?

적절한 예제를 가리킨다.

+0

답변이 없지만 http://avr-asm.tripod.com/이 도움이 될 수 있습니다. – Justin808

+0

@ Justin808 감사합니다.하지만이 사이트는 가스 관련 구문, 규칙 등에 대해 언급하지 않습니다. avr 기능이 Atmel에 의해 잘 문서화되어 있기 때문에 요청하십시오. – byrondrossos

+1

http://github.com/dwelch67/avr_samples, 불행히도 내 avr 샘플 gnu 어셈블러 아니라 avra 나타납니다. 비록 당신이 찾을 수있는 것처럼 간단한 링커 스크립트와 함께 많은 많은 gas/gcc 예제를 볼 것입니다. 동일한 주제가 임의의 대상에 적용됩니다. ram 또는 rom 및 ram에 적절한 주소가있는 링커 스크립트, _start : 기호가 시작점으로 사용되며, 부팅 asm 코드 개체가 -ld 명령 줄에 먼저 놓여 있어야합니다. 바이너리 등. 만약 그것이 나던을 avr 샘플로 만들 수 있다면 도움이된다면 –

답변

3

:

  • 하나를 사용하여 인터럽트 벡터를 사용할 수 있습니다 avr- libc. Brett Hale이 제안했듯이 외부 라이브러리없이이 작업을 수행하려면 소스를 참조 할 수 있습니다.

  • avr 특정 지시어가 언급되어 있습니다.

또한 간단한 예제가 포함되어 있습니다.

2

avr-libc 라이브러리를 찾으십시오. 이름이 당신을 오도하게하지 마십시오. 그것의 대부분은 매우 링커 스크립트, 낮은 수준의 HW 액세스 등으로, AVR 어셈블러를 최적화 된

내가 찾을 수있는 가장 좋은 문서는 .This가 있다고 설명 the avr-gcc assembler tutorial입니다
0

Arduino 위키에서 http://www.cs.nmsu.edu/~jcook/arduino/index.php 그냥 그렇게 할 수있는 방법을 제공합니다. 어셈블리 코드 (.s 파일)를 사용할 수 있도록 Arduino IDE를 수정하고 다시 빌드해야합니다.