新闻  |   论坛  |   博客  |   在线研讨会
IAR的ICF文件中宏给程序使用
a181633697 | 2009-07-31 22:36:48    阅读:6977   发布文章

如果想定在rom空间

icf中:

place at address mem:0x08090000 { readonly section .test };

C:中:

#pragma location = ".test"
const u32 uiData[512];// const 切不可省略

如果想定在ram空间

icf中:

place at address mem:0x08090000 { readwrite section .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.

点击看大图

参考资料:stm32f10x_vector.c

 EWARM_DevelopmentGuide.ENU.PDF(该资料全但不细。要是哪里有更详细的推荐一下啊)

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客