シリアル ブート (LINFLEX0 の自動ボー モードを使用) を介して、MPC5604E コントローラーのSRAMにRAM.binイメージをロードしようとしています。サンプルの LED トグル プログラムを使用して RAM.binイメージ ファイルを生成し、シリアル ブートでロードしようとしましたが、正常にロードされ、LED トグルは正常に動作しています (ウォッチドッグが有効になっている場合) が、ウォッチドッグを無効にしてからロードして実行すると、それは、LED トグルが機能していません。そのため、シリアル ブート用にコード ウォリアーを使用してRAM.binファイルを生成する前に、 .lcf (リンカー ファイル) およびその他のファイルの初期化に関連する問題があると思われます。
何をすべきかわからないので、これらの初期化を手伝ってくれる人はいますか? 私のRAM.binイメージファイルが正常に実行できるように。
MPC5604E.lcf :::
/* lcf file for MPC5604E processors */
/* */
/* 512KB Flash, 96KB SRAM */
MEMORY
{
resetvector: org = 0x00000000, len = 0x00000008
init: org = 0x00000020, len = 0x00000FE0
exception_handlers: org = 0x00001000, len = 0x00001000
internal_flash: org = 0x00002000, len = 0x000FE000
internal_ram: org = 0x40000000, len = 0x00016000
heap : org = 0x40016000, len = 0x00001000
stack : org = 0x40017000, len = 0x00001000
}
/* This will ensure the rchw and reset vector are not stripped by the linker*/
FORCEACTIVE { "bam_rchw" "bam_resetvector" }
SECTIONS
{
.__bam_bootarea LOAD (0x00000000): {} > resetvector
GROUP : {
.init LOAD (0x00000020) : {}
.init_vle (VLECODE) LOAD (_e_init) : {
*(.init)
*(.init_vle)
}
} > init
GROUP : {
.ivor_branch_table (VLECODE) LOAD (0x00001000) : {}
.__exception_handlers (VLECODE) LOAD (_e_ivor_branch_table) : {}
} > exception_handlers
GROUP : {
.text : {}
.text_vle (VLECODE) ALIGN(0x08): {
*(.text)
*(.text_vle)
}
.rodata (CONST) : {
*(.rdata)
*(.rodata)
}
.ctors : {}
.dtors : {}
extab : {}
extabindex : {}
} > internal_flash
GROUP : {
.__uninitialized_intc_handlertable ALIGN(2048) : {}
.data : {}
.sdata : {}
.sbss : {}
.sdata2 : {}
.sbss2 : {}
.bss : {}
} > internal_ram
}
/* Freescale CodeWarrior compiler address designations */
_stack_addr = ADDR(stack)+SIZEOF(stack);
_stack_end = ADDR(stack);
_heap_addr = ADDR(heap);
_heap_end = ADDR(heap)+SIZEOF(heap);
/* Exceptions Handlers Location (used in Exceptions.c IVPR initialization)*/
EXCEPTION_HANDLERS = ADDR(exception_handlers);
/* L2 SRAM Location (used for L2 SRAM initialization) */
L2SRAM_LOCATION = 0x40000000;