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

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

本帖最后由 Tiv 于 2019-4-24 14:29 编辑
0 f8 P: D7 F0 t2 v& F
( P8 y6 O2 C$ t$ W/ I  ^2 p/ `大家好:
/ n% Q  H6 C" H& W! r" ~6 p       请教一下对stm32内部flash操作,需要注意哪些东西?3 P2 D6 b' f$ x
  Y! ^$ k0 P0 i" [( d6 U, i! A9 R
       我现在遇到的问题是这样的:只要开启usart1的线程(非msh那个usart2),如果现在正在读写内部flash,程序就立刻卡住(debug调试显示在usart1的接收中断里面不断循环),usart2停止打印任何东西。如果关闭usart1线程,就能正常对内部flash进行读写。现在开了多个线程,usart1和对内部flash操作各是各的线程。
5 N1 A# C) p7 N; F- O; ?2 N: e- f
$ V" W$ k' D1 ~4 u5 ?. \% w4 \我目前这样调试过:
- ^) _, x; |9 H1 g/ R1、二者两个线程的优先级互换过,问题依旧。
3 H2 p3 D$ K& v* Q8 i2、在操作内部flash时,加了“level = rt_hw_interrupt_disable();”与“rt_hw_interrupt_enable(level);”,问题依旧。1 y4 t1 Y; p) |0 K1 J$ M5 d
3、如上描述,只要关闭usart1线程,对内部flash读写就能正常。) {4 r0 d& e& c4 r) s4 s4 j
4、关闭flash线程,usart1线程正常。
* p( g/ V  s7 L; K& S) ~+ x! |/ e7 O. g; `6 B% |( p+ b
我用的nano版,求大家指教!谢谢4 L% `: ]0 }- R: Q  ]0 }
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 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

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