打印
[开发工具]

在MDK中如何将一函数固定存放于一个地址?

[复制链接]
1446|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KC_CEC|  楼主 | 2014-4-14 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在想实现将函数固定存放于一个地址,然后只需要运行一次就擦除。
比如:
void main(void)
{
   Init();
   Write();//固定存放在地址0x080f0000处
   Erase();//擦除Write函数
   while(1)
{
   Run();
}
}
现在 Write();作用于根据ID不用在FLASH内部写一串对应序列号。以后仅仅用于读取验证。

有两个疑问:
1、在MDK下如何实现?
2、擦除了 Write();函数后,程序每次重新运行完Init();后是自动跳转到 Erase();函数吗?还是我需要做修复?

对编译原理不懂,大家帮帮忙...
沙发
airwill| | 2014-4-14 16:20 | 只看该作者
MDK 需要加载连接命令.

擦除了 Write();函数后,程序每次重新运行完Init();后是自动跳转到 Erase();函数吗? 这就看你的处理了, 简单的办法就是调用函数前做个合法性检查, 检查不合法就不调用了

使用特权

评论回复
板凳
KC_CEC|  楼主 | 2014-4-14 16:54 | 只看该作者
airwill 发表于 2014-4-14 16:20
MDK 需要加载连接命令.

擦除了 Write();函数后,程序每次重新运行完Init();后是自动跳转到 Erase();函数吗 ...

不是太懂,有相关通俗文档可以推荐一下吗?
我想最简单就是麻烦一点,把程序下载两次。一次就运行Write() 再次就是正常的验证程序了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

169

帖子

1

粉丝