请教一下操作内部flash需要注意哪些问题

发表在 内核学习营2019-4-24 14:28 [复制链接] 1 89

本帖最后由 Tiv 于 2019-4-24 14:29 编辑 : b) Y! O$ n1 ]+ I6 {
0 P- U7 E4 y5 z; ]; |9 C
大家好:$ G: c, ^9 Y4 T) @
       请教一下对stm32内部flash操作,需要注意哪些东西?; A  f3 _& D) A5 W8 Y  w' _4 _! `
9 N$ Y8 H' s4 Y5 y& [5 s
       我现在遇到的问题是这样的:只要开启usart1的线程(非msh那个usart2),如果现在正在读写内部flash,程序就立刻卡住(debug调试显示在usart1的接收中断里面不断循环),usart2停止打印任何东西。如果关闭usart1线程,就能正常对内部flash进行读写。现在开了多个线程,usart1和对内部flash操作各是各的线程。. U% D: {2 q) F5 w6 q0 n
1 b( o8 g  i+ t" M$ Z- u" J
我目前这样调试过:1 L* }& p2 C; X* l3 L+ V3 d% A2 t8 P) }
1、二者两个线程的优先级互换过,问题依旧。2 z7 I1 k, s8 {) G: Q+ J
2、在操作内部flash时,加了“level = rt_hw_interrupt_disable();”与“rt_hw_interrupt_enable(level);”,问题依旧。
5 l& s% K3 a" G3 x) k3、如上描述,只要关闭usart1线程,对内部flash读写就能正常。1 c6 a, P  G2 |% G0 V! T
4、关闭flash线程,usart1线程正常。
, s6 G& W# \7 S5 C5 ^4 |' z# p& X- J7 c, P6 b
我用的nano版,求大家指教!谢谢
. b1 u9 v/ P& m8 g# c0 A
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-4-24 14:36:32 | 显示全部楼层
补充一个现象:当flash线程开始读写时,debug 的command 窗口提示:Cannot access Memory (@ 0x0801f800, Read, Acc Size: 4 Byte) 而这个0x0801f800地址也正是我要操作的地址
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

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