以前から気になっていた LPC2xxx 用の Startup。RAISONANCE forums でも時々問題になっていた。この際少し調べてみることにする。
RAISONANCE オリジナルの Startup をそのまま使うと、どうやってもうまく動かない。
これは crt0_LPC23x.s の割り込みエントリー部分に不具合があるためで、その部分を使わなければ
__attribute__ ((interrupt("IRQ"))) void IRQHandler(void)
{
if((T0IR &1) ==1){
FIO1PIN2 ^= 0x04;
T0IR=1;
}
}
上記のように普通に書いて問題ない。
ここではせっかくなので、問題の割り込みエントリー部分をそのまま使う方法を考える。
もちろん一部修正は必要だ。
それでは修正の必要な crt0_LPC23x.s から
セコメントをする