完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我们在 STM32F7 微控制器上使用 QUADSPI(内存映射)时遇到问题。控制器偶尔会遇到看门狗复位。调查表明,崩溃总是发生在来自内存映射闪存的LDM指令期间。禁用看门狗时,程序执行只能在中断中停止,主代码执行不再可能停止。大多数外围寄存器也无法再读取。 我们知道勘误表中所述的问题: 2.4.3 启用超时计数器时,内存映射读取操作可能会失败 建议的解决方法如下: 禁用超时计数器。要提升片选,请在每个内存映射读取操作结束时执行中止。 超时计数器(CR寄存器中的TCEN位)被禁用,但问题仍然存在。我们不知道如何实施解决方法的第二部分: “要提高片选,在每个内存映射读取操作结束时执行中止。” 有没有人知道如何实施此解决方法? 我们也知道这个线程,其中解释的行为与我们的发现一致。 已经非常感谢了! 更新 (20-01-15): 由于我们不关心功耗,因此在读取操作后不需要提升片选,因此禁用超时计数器应该足以作为一种解决方法。 尽管超时计数器已禁用,但您是否知道为什么问题仍然存在? 我们的设置:
|
|
相关推荐
1个回答
|
|
根据问题的描述,它似乎是 <7+QSPI+MPU 的著名组合。
M7 内核可以对内存进行推测性读取。 不幸的是,它也可以读取没有内存的 QSPI 区域。结果是无法完成对该区域的读取。可能中断例程在 FLASH 中,所以这部分工作。但是在主循环中读取不会完成。 所以基本需要在M7内核上配置MPU。 解决方案 对于未使用的区域,MPU 必须配置为不访问这些区域。 推荐的配置是这样设置一个 MPU 部分: 起始地址 0x0 大小 4GB Disable sub section: 0x87 (这将排除核心寄存器和外围寄存器和RAM+FLASH) 访问:不可访问 可缓存:不可缓存 Buffereble:不可缓冲 可共享:不可共享 然后配置一个你喜欢访问的QSPI区域。 “ |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2623 浏览 1 评论
3206 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1779 浏览 1 评论
3605 浏览 6 评论
5984 浏览 21 评论
936浏览 4评论
1311浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
579浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1299浏览 3评论
1354浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 06:18 , Processed in 1.105644 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号