installer (0904_1.1.2) | 2010-09-19 12:40 |
toppersjsp4lpc (Release 1.0.4) | 2010-03-27 17:10 |
FLASH ROM版のアプリケーションやサンプルをビルドすると、__bss_startシンボルが.bssセクションの先頭を正しく示さない。このため、start.Sで間違った領域をゼロフィルしてしまう。
jsp_study/config/armv4/cq_frk_nxp_arm/lpc2388_flash.ldの中の間違った位置で上記シンボルを宣言していたのが原因。
CVS tag = step_14_registers では、__bss_startの宣言は以下のように.bssセクション宣言の外で行っていた。この結果、__bss_startには直前のセクション、つまり.bss.fiommrのロケーション・カウンタの値が代入されていた。
/* 初期値なしの変数の配置 */ __bss_start = . ; .bss : { *(.bss) *(COMMON) } > MEM_SRAM . = ALIGN(4); __bss_end = __bss_start + SIZEOF(.bss);
当該箇所を以下のように変更して、__bss_startが.bssの先頭を示すように修正した。
/* 初期値なしの変数の配置 */ .bss : { __bss_start = . ; *(.bss) *(COMMON) . = ALIGN(4); __bss_end = __bss_start + SIZEOF(.bss); } > MEM_SRAM
CVSの対応タグは step_15_bugfix である。最新コードの取得方法を説明したページを参照のこと。