完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电路板:Nucleo-144
芯片:STM32L4R5ZIT6P 大家好! 从 SRAM 执行代码时,我遇到了一个奇怪的问题。 我的固件位于闪存中,偶尔会跳转到 SRAM 中的外部加载二进制文件。由于这个二进制文件的周期计数非常重要,我使用 DWT 读取周期,在逐步执行代码时我意识到,当我在 SRAM 中执行代码时,一条简单指令(如 nop、add、it加载/存储操作需要更多周期)而不是 1,正如您所期望的那样。我发现这种行为很奇怪,我无法真正解释为什么在 SRAM 中执行需要更长的时间。 更多细节: 我在 SRAM1 中创建了一个部分(从 0x20000000 到 0x20030000)来保存动态二进制文件。这应该没问题,因为 SRAM1 连接到 I-Bus 和 D-Bus,唯一敲响警钟的是参考手册(rm0432,修订版 9)在第 107 页指出,物理重映射应该是启用以获得最佳性能。 我不想这样做,所以我将该部分移动到 SRAM2,在那里(根据参考手册,同一页)可以以最大性能执行。但是,这并没有解决我的问题。 此外,我认为这可能与我的时钟配置有关,但我在那里找不到任何问题。MCU 使用由 CubeMX 配置的 MSI 振荡器以 1 MHz 的频率运行。 关于尝试什么以及导致这种不一致的原因,我已经没有想法了。闪存中的循环行为是您所期望的。 有人知道什么可能导致这种循环行为吗? |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2365 浏览 1 评论
3107 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1674 浏览 1 评论
3492 浏览 6 评论
5842 浏览 21 评论
836浏览 4评论
1211浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
477浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1189浏览 3评论
1242浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-8 11:24 , Processed in 1.007099 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号