IAR中通過ICF指定某變數的地址 或者 通過語句指定
阿新 • • 發佈:2019-02-17
如果想定在rom空間
icf中:
place at address mem:0x08090000 { readonlysection .test };
C:中:
#pragma location = ".test"
const u32 uiData[512];// const 切不可省略
如果想定在ram空間
icf中:
place at address mem:0x08090000 { readwritesection .test };
C:中:
#pragma location = ".test"
u32 uiData[512];
可發現uiData的值為0x08090000
該法可方便通過ICF指定某變數的地址。
程式也可以。寫法類似.vector
如果用block的方。類似
define block CSTACK with alignment = 8, size =__ICFEDIT_size_cstack__ { };
C中:
#pragma language="extended"
#pragma segment="CSTACK"
ptr = __sfe( "CSTACK" );可得到CSTACK的高階地址+1
__sfe: Returns last address of segment.
另一種方法是通過語句指定,在網上沒找到明確的答案,一本鄭愛鈞的書上面有。