Raisonance Ride7 & ARM Tools (17) LPC2xxx の Startup (1)2012年09月20日 20時23分53秒

以前から気になっていた 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 から

 



次にリンカースクリプト LPC23_512K_64K.ld 、これは Ride7 が自動的に作成した物をひとつにまとめた。(スクリプトファイル(GNUtools.js) の一部変更が必要)

 



スクリプトファイルにも一部不具合があるのでこの際修正しておこう。
C:\Program Files\Raisonance\Ride\Scripts\GNUtools.js

 



前置きがずいぶん長くなってしまった。
今日の所はこの辺にしておこう。

環境:CQ-FRK-NXP-ARM
    + Ride7 version 7.30.10.0169
    + RKit-ARM version 1.30.10.0356
    + GCC Sourcery CodeBench Lite 2012.03-56