[Kinetis] 如何调用RAM中的函数(__ramfunc) cortex-M4 IAR

[复制链接]
5202|4
 楼主| m__dd 发表于 2013-12-16 19:47 | 显示全部楼层 |阅读模式
n = code_relocate_end - code_relocate;
                while (n--)
                        *code_relocate_ram++ = *code_relocate++;
上面是IAR中运行main()函数之前的一小段代码,将flash中的函数代码复制到RAM中。
问题来了:如何在RAM中寻址呢?(即如何在RAM中找到这段代码?)。编译器只知道这段代码存放在RAM中的大致区域(.icf中给的)。这里又不像中断向量表复制那样,最后有个重定向!
 楼主| m__dd 发表于 2013-12-17 09:52 | 显示全部楼层
大婶们你们还在等什么?
FSL_TICS_ZJJ 发表于 2013-12-17 10:41 | 显示全部楼层
你好,关于这个问题,您可以先参考这个帖子中文档:
https://bbs.21ic.com/forum.php?mod=viewthread&tid=646512
在第5页,有个kinteis的启动分析,讲的非常详细。
 楼主| m__dd 发表于 2013-12-17 19:22 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-12-17 10:41
你好,关于这个问题,您可以先参考这个帖子中文档:
https://bbs.21ic.com/forum.php?mod=viewthread&tid=64 ...

先谢了.不过,它没有讲当调用此函数时PC是如何取指令,跳转的。函数的入口地址编译器是给出的,但是函数块复制到RAM的地址,是程序运行后才确定。
 楼主| m__dd 发表于 2013-12-23 13:42 | 显示全部楼层
没人关心这个问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

79

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部