【cw10.x使用分享】将函数定义在指定地址

2020-02-20 21:04发布

下面以codewarrior10.3调试KL05Z32为例说明,将函数放到0x1000这个地址上。
1,修改连接文件



我的连接文件名字为MKL05Z32_flash.ld
在该文件中添加如下内容

.myRomBlock_Fun 0x1000:
{
    KEEP(*(.myRomSection_Fun)) /* keep my variable even ifnot referenced */
} > m_text
2,  定义我们的变量
在main.c中添加如下代码:

void __attribute__((section (".myRomSection_Fun"))) FuncInRom(int flag)
{
    if(flag == 1)printf("Hello Worldn");
}

void __attribute__((section (".myRomSection_Fun"))) FuncInRom2(int flag)
{
    if(flag == 1)printf("Hello Worldn");
}

3,  编译工程
4,  查看map文件



从map文件看,函数被我们放到了指定的地址处。
例程下载地址:http://www.myhcs08.com/downloads.php?file_id=299


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
zndz410
1楼-- · 2020-02-20 21:42
第一次离版主这么近,好好学习一下。
fengyunyu
2楼-- · 2020-02-20 22:25
 精彩回答 2  元偷偷看……
kingqb
3楼-- · 2020-02-21 01:16
这个好像很多人都问,keil里面是修改分散加载文件?

一周热门 更多>