原创 IAR的ICF文件中宏给程序使用

2009-7-31 00:22 7194 7 7 分类: MCU/ 嵌入式

如果想定在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(该资料全但不细。要是哪里有更详细的推荐一下啊)


 

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条