查看: 9531|回复: 0
打印 上一主题 下一主题

[原创] 【经验分享】Kv31的pflash例程报错解决

[复制链接]

该用户从未签到

745

主题

6406

帖子

0

超级版主

Rank: 8Rank: 8

积分
27303
最后登录
2026-4-10
跳转到指定楼层
楼主
发表于 2020-5-7 14:00:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小恩GG 于 2020-5-11 09:20 编辑

                                          Kv31的pflash例程报错解决
跑kv31的pflash例程时候,发现程序卡住报错了。
我们发现错误出现在擦除操作之后,所以我们去查一下到底出了什么问题。
单步调试发现result返回值为104
正常应该是返回0的,那么查一下是谁返回的这个。单步调试之后发现是这里。通过这个变量名字,大概知道可能写了受保护的区域。查一下关于保护flash的寄存器值。
其中FPROT值都是0xff,按照文档描述,如果FPROT位为1说明是没有保护的。再FTFA的XACCH寄存器中发现有个数值是0x7f,而如果这个寄存器的位为1说明是被设置成只执行的。

而根据设置的位,我们可以判断受控制的段是最后的8kb(512/64),也就是XACHH0[XA63]
所以说(512-8)*1024=0x7e000,那么0x7e000到最后地址,这段flash被保护了。我们例程写入的地址是0x7f800,刚好在这个范围,所以最终报错了。如果改成不在范围即可。比如0xa000.


7.PNG (591.21 KB, 下载次数: 409)

7.PNG
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2026-4-12 00:31 , Processed in 0.079519 second(s), 19 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表