[求助]PE生成FLASH操作函数擦除不了FLASH(已解决)

2020-02-20 20:56发布

本帖最后由 FSL_TICS_Robin 于 2014-11-27 11:01 编辑

前几天刚用KL25官方板子实现IAP,也是用PE生成的FLASH函数,FLASH所有扇区都能擦除。现在把程序移植到KL16的工程板子上,用JLINK调试。我的FLASH分成三部分,1部分正常程序,2部分IAP程序,3部分做EEPROM,1和2由链接文件分配,3由FLASH函数直接操作,结果FLASH擦除函数只能擦除3,不能擦除1和2。搞了一天了,2个工程的配置都一样啊。是KL25和KL16的区别么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
地主阿山
1楼-- · 2020-02-20 20:57
这个要移植吗?直接用PE新建一个KL16的工程不就好啦
fengyunyu
2楼-- · 2020-02-21 02:20
没看懂。IAP程序能擦除IAP程序所在扇区么?IAP程序拷贝到ram中运行么?
lbblsws
3楼-- · 2020-02-21 04:36
地主阿山 发表于 2014-10-16 18:58
这个要移植吗?直接用PE新建一个KL16的工程不就好啦

是啊,没什么修改的东西啊,就是不行啊
lbblsws
4楼-- · 2020-02-21 09:16
fengyunyu 发表于 2014-10-16 19:39
没看懂。IAP程序能擦除IAP程序所在扇区么?IAP程序拷贝到ram中运行么?

只要擦除的不是当前正在执行的那几条程序,有何不可?况且真正执行擦除的那几行代码就是在RAM里的。
jiang887786
5楼-- · 2020-02-21 13:05
 精彩回答 2  元偷偷看……
lbblsws
6楼-- · 2020-02-21 17:31
发现个很奇葩的现象,我把IAP程序区分配为0x4c00-0x5c00(实际程序生成的代码大概分配到0x5200多,也就是0x5400-0x5c00都是未使用的),在主程序里做了2件事(1,将2个数写到0x5400。2,擦除0x5000-0x5800)执行的代码全部在0x4c00以内,运行结果是0x5000-0x5400的内容擦不掉(这部分是JLINK烧写的),0x5400-0x5800的内容就擦掉了(这部分是程序操作的),由此得出的猜想:是不是JLINK对部分代码存储空间做了保护?

一周热门 更多>