stm32f7+hal操作内部flash遇到这样的问题

2019-07-20 11:32发布

_void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
{
  uint32_t tmp_psize = 0;

  assert_param(IS_FLASH_SECTOR(Sector));
  assert_param(IS_VOLTAGERANGE(VoltageRange));
..............._
省略
...............
  __DSB();
}_
运行到__DSB()指令后,jlink调试会停止run,报错如下:

_**JLink Warning: CPU could not be halted
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 0 (R0) while CPU is running
...
省略
...
***JLink E_rror: Can not read register 64 (FPS31) while CPU is running__**

但是如果点击几下run后,调试恢复正常,代码开始全速run。
有没有人用stm32f7+hal操作内部flash遇到这样的问题,求分享

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
a510550964
1楼-- · 2019-07-20 15:56
 精彩回答 2  元偷偷看……
a510550964
2楼-- · 2019-07-20 17:11
查了下__DSB指令的含义:
摘要: DSB 指令(数据同步指令):数据同步隔离。比 DMB 严格: 仅当所有在它前面的存储器访问操作
都执行完毕后,才执行在它后面的指令(亦即任何指令都要等待存储器访 问操作——译者注)
http://blog.csdn.net/guojing3625/article/details/16877639
正点原子
3楼-- · 2019-07-20 19:14
帮顶
a510550964
4楼-- · 2019-07-20 22:11
 精彩回答 2  元偷偷看……

一周热门 更多>