CQ-FRK-NXP-ARM (12) Cで書くスタートアップ (3) ― 2015年03月19日 22時20分43秒
スタートアップ、リンカースクリプト、その他とそろった所で実際にコンパイルしてみよう。
リストの 0020 行が取り除くことができなかった return だ。実害は無いのでよしとしよう。
0040 から 01fc まで空いているのは CRP を入れたためこのようになっている。
以下にそのリストを示す。
まあ予定通りうまく行ったという所だろうか。
ジャンプテーブルの部分は以下のような方法(某誌で採用されていた)もある。
リストの 0020 行が取り除くことができなかった return だ。実害は無いのでよしとしよう。
0040 から 01fc まで空いているのは CRP を入れたためこのようになっている。
以下にそのリストを示す。
まあ予定通りうまく行ったという所だろうか。
ジャンプテーブルの部分は以下のような方法(某誌で採用されていた)もある。
void (* const g_pfnVectors[])(void)= { 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE1A00000, // nop 0xE59FF018, // ldr PC, [PC,#0x0018] 0xE59FF018, // ldr PC, [PC,#0x0018] Reset_Handler, Undef_Handler, SWI_Handler, PAbt_Handler, DAbt_Handler, 0, // Reserved IRQ_Handler, FIQ_Handler, };しかし、最初の8個を変更する場合ハンドアセンブルしなくてはならないのがいまいちなんだよね。
コメント
トラックバック
このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2015/03/19/7594212/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。