打印

求助:请教一下关于STM32的FLASH编程问题

[复制链接]
3648|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hiqrf3|  楼主 | 2011-2-25 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近做IAP程序,平台是uCOS/II + LwIP,当然会有几个中断的存在。问题就来了,在对FLASH进行操作时(擦除和编程),会进入usage fault,具体错误是INVPC错误!由于是擦除很多page,我试过如果F10单步运行擦除函数,到地4、5个page时就会fault了,如果F11进入擦除函数内部执行,那么就一直不会进fault,自己编写的擦除函数和固件库函数都是如此。另外,如果我关闭中断,全速运行,也是不会fault的。看来问题是处在中断上。但是具体是什么原因呢?翻了很错资料都找不到,查看堆栈难容找出fault之前的PC值 或者 在中断处理函数中BX LR也没有头绪。只有在《STM32F10x闪存编程》中找到一句:既在进行写或擦除操作时,不能进行代码或数据的读取操作。 不知道是否是这个原因,因为进中断需要读取代码?那么我在擦除函数中在写入查出命令中,也有while循环等待操作完成,执行这个语句就不需要读取代码了么?或者是已经缓存好了? 请高手指教!

另外
沙发
香水城| | 2011-2-25 10:11 | 只看该作者
一般OS都有定期的时钟中断,估计是它干扰了操作。

使用特权

评论回复
板凳
dfsa| | 2011-2-25 20:41 | 只看该作者
很有可能是时钟中断问题

使用特权

评论回复
地板
xuehui869| | 2011-12-21 08:58 | 只看该作者
擦除的时候会屏蔽中断

使用特权

评论回复
5
zchong| | 2014-6-13 13:43 | 只看该作者
手册上好像写了,对flash进行操作的时候是不响应中断的,按道理说应该没问题的

使用特权

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

本版积分规则

8

主题

28

帖子

0

粉丝