LPC1768 の SRAM に割り込みルーチンが必要です。Yagarto に似た GCC ツールチェーンを使用しています。現在、Cから次のことができます:
NVIC_SetVector(TIMER0_IRQn, interruptTest);
...それから私のアセンブリファイルで:
.text
/* .section .fastcode */
.global interruptTest
.func interruptTest
.thumb_func
interruptTest:
ldr r0,=(LPC_TIM0 + IR) /* point to Timer 0's Interrupt Register */
mov r1,#(1 << 0) /* Interrupt Pending bit for MR0 int */
str r1,[r0] /* Clear it */
bx lr
.size interruptTest, . - interruptTest
.endfunc
これで問題なく動作します。「interruptTest」関数へのポインタは奇数です。ただし、「.section .fastcode」ビットを有効にすると、割り込みへのポインターが奇数ではなく偶数になります。
私の質問は、割り込みルーチンを親指関数として正しく認識させるにはどうすればよいですか?