硬汉嵌入式论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: eric2013
收起左侧

[Cache] 言简意赅的介绍M7内核的Cache工作流程,摸爬滚打半年的经验总结

  [复制链接]

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-2 21:34:26 | 显示全部楼层
eric2013 发表于 2026-7-2 11:26
你的协议栈应该不是RL-USB吧,整个协议栈配合event recorder效果很好。

有必要使用USB抓包软件检测下 ...

1、协议栈就是RL-USB,记录的都是正常的信息,然后就不行了
2、今天把优化等级改了一下,从-O1改为-O0,可以正常运行了;然后我逐个修改测试发现,全局设置为-O1,把RTX源码使用-O0编译,就可以运行了

目前来说两种方式:
1、关闭全局DCache
2、打开DCache,全局优化-O1,RTX源码-O0
这两种方式都能正常运行,但是我有点理解不了,后面再更新
回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-3 22:18:53 | 显示全部楼层
eric2013 发表于 2026-7-2 11:26
你的协议栈应该不是RL-USB吧,整个协议栈配合event recorder效果很好。

有必要使用USB抓包软件检测下 ...


更新:
今天偶然测试发现把上图全部勾选取消,程序可运行,虽然原因肯定不是这个;后续再查找

回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-3 22:20:00 | 显示全部楼层
yelu 发表于 2026-7-3 22:18
更新:
今天偶然测试发现把上图全部勾选取消,程序可运行,虽然原因肯定不是这个;后续再查找

上面所说的图片
ed1d5e353cd83f64801bdeddec9da562.png
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124425
QQ
 楼主| 发表于 2026-7-6 15:13:15 | 显示全部楼层
yelu 发表于 2026-7-3 22:20
上面所说的图片

谢谢分享这个
如果是这个问题,确实建议关闭了,因为这个也要占用RAM带宽性能的。
回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-6 21:59:00 | 显示全部楼层
eric2013 发表于 2026-7-6 15:13
谢谢分享这个
如果是这个问题,确实建议关闭了,因为这个也要占用RAM带宽性能的。

不确定是不这个问题,但感觉不是这个问题,因为把DCache打开
1、generic wait勾上,-O0优化是能跑的,-O1就不行;
2、generic wait取消勾选,-O0和-O1都正常

后面继续查找该问题!!!
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124425
QQ
 楼主| 发表于 2026-7-7 17:42:05 | 显示全部楼层
yelu 发表于 2026-7-6 21:59
不确定是不这个问题,但感觉不是这个问题,因为把DCache打开
1、generic wait勾上,-O0优化是能跑的,-O ...

你的这个用的AC6还是AC5测试的。
回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-7 22:10:04 | 显示全部楼层
eric2013 发表于 2026-7-7 17:42
你的这个用的AC6还是AC5测试的。

AC6(V6.16)
eric,有个问题讨论下:
1、gd32h759的SPI有硬件FIFO,深度为16*32bit
2、用SPI来驱动8通道ADC,实现高采样率
3、配置SPI为32bit,FIFO访问宽度为32bit,FIFO阈值为8,在定时器中断连续写入8*32bit数据,在接收完成中断读取8*32bit数据,各个通道数据使用数据帧延迟来实现(200ns即可)

这个方案应该是可行的吧
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124425
QQ
 楼主| 发表于 2026-7-11 10:44:28 | 显示全部楼层
yelu 发表于 2026-7-7 22:10
AC6(V6.16)
eric,有个问题讨论下:
1、gd32h759的SPI有硬件FIFO,深度为16*32bit

配合DMA使用,注意这个问题

STM32H7的SPI DMA配置时,SPI硬件FIFO,DMA突发设置等几个重要注意事项
https://forum.anfulai.cn/forum.p ... 2944&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-20 21:20:40 | 显示全部楼层
yelu 发表于 2026-7-6 21:59
不确定是不这个问题,但感觉不是这个问题,因为把DCache打开
1、generic wait勾上,-O0优化是能跑的,-O ...

问题已解决,把未使用的地址使用MPU配置一下即可。
微信图片_20260720210715_10_2.jpg
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124425
QQ
 楼主| 发表于 2026-7-23 10:05:16 | 显示全部楼层
yelu 发表于 2026-7-20 21:20
问题已解决,把未使用的地址使用MPU配置一下即可。


如果是预测问题导致的,直接关闭预测访问即可,这个在STM32H7的FMC访问静态设置时会有这个问题,出错时会话多次访问。

不希望预测访问的区域直接配置Device或者Strongly order模式即可。我们V7开发板做的FMC扩展32路IO有这个问题,配置这个地址的这个属性可以解决。

STM32H7的M7内核关闭指令预测访问方法
https://forum.anfulai.cn/forum.p ... d=111955&fromuid=58
(出处: 硬汉嵌入式论坛)


而4GB全局的这个设置,是直接防止防止预测访问落到未初始化的外部存储器区域,然后再单独配置外地地址区,我们这边当前基本没用这种设置方法,都是单独设置的。


回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2026-7-23 22:27:07 | 显示全部楼层
eric2013 发表于 2026-7-23 10:05
如果是预测问题导致的,直接关闭预测访问即可,这个在STM32H7的FMC访问静态设置时会有这个问题,出错时 ...

明白了,感觉全局配置一下,然后使用到那块再配置哪块也挺好,全局掌握
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-10-24 06:36 , Processed in 0.405043 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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