CQ-FRK-NXP-ARM (12) Cで書くスタートアップ (3)2015年03月19日 22時20分43秒

スタートアップ、リンカースクリプト、その他とそろった所で実際にコンパイルしてみよう。
リストの 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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログのタイトルは?(syslab と記入してください)

コメント:

トラックバック

このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2015/03/19/7594212/tb