由于從F轉(zhuǎn)到V,keil變?yōu)镸ounRiver,用gcc編譯器。原先keil中的定位語句無法使用了。
1、keil在地址0x08005400位置定位一個變量用于存放程序版本號:
#define?FW_APPVERSION_BASE? ??0x08005400
const uint16_t FW_wAppVersion __attribute__((at(FW_APPVERSION_BASE))) = VERSION_APP;
改成MounRiver不能這么寫了,按照gcc方法改為:
const uint16_t FW_wAppVersion __attribute__((section (".myBufSection"))) = VERSION_APP;
然后在連接文件.ld的section段中增加下面紅色部分,這樣做對嗎?好像跑起來程序有問題:
SECTIONS
{
.init :
{
_sinit = .;
. = ALIGN(4);
KEEP(*(SORT_NONE(.init)))
. = ALIGN(4);
_einit = .;
} >FLASH AT>FLASH
/* placing my named section at given address: */
? .myBufBlock 0x00005400 :
? {
? ? KEEP(*(.myBufSection)) /* keep my variable even if not referenced */
? } >FLASH AT>FLASH