查看: 141|回复: 2

[求助] RT1052在开启Dcache运行U盘失败

[复制链接]

该用户从未签到

2

主题

3

帖子

0

注册会员

Rank: 2

积分
83
最后登录
2025-12-20
发表于 2025-12-15 20:24:12 | 显示全部楼层 |阅读模式
项目中使用到了U盘,需要将数据在U盘中存取,之前使用使用到U盘的UI界面使用SCB_DisableDcache来关闭Dcache,其他界面则使用SCB_EnableDcache对UI进行加速处理,但是频繁开关Dcache偶尔会导致程序卡死,所以尝试通过MPU来进行对USB部分内存进行处理,但是在开启Dcache时U盘读取数据失败,这可能是我的MPU配置失败了,我想知道我的配置是否正确,USB的MPU配置如下。 擷取.PNG
回复

使用道具 举报

  • TA的每日心情
    开心
    2025-7-10 13:07
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    66

    主题

    567

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1630

    热心会员

    最后登录
    2026-1-27
    发表于 2025-12-16 09:49:20 | 显示全部楼层
    如果你希望保留 D-Cache 的加速效果,同时保证 USB 数据传输的一致性,建议将 USB 内存区域配置为 Non-cacheable 或 Write-Through。
    以下是两种常用的配置方式:
    方案一:配置为 Non-cacheable(推荐用于 DMA 频繁访问的区域)[size=12.573px]c



    MPU->RBAR = ARM_MPU_RBAR(9, 0x80E00000);MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 0, 1, 0, ARM_MPU_REGION_SIZE_8MB);

    参数说明:
    ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 0, 1, 0, ...)
    • TEX=0, S=0, C=0, B=0 → Non-cacheable
    • 适合 USB DMA 访问,保证数据一致性。

    方案二:配置为 Write-Through(可缓存但立即写回)[size=12.573px]c



    MPU->RBAR = ARM_MPU_RBAR(9, 0x80E00000);MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_8MB);

    参数说明:
    TEX=0, S=1, C=0, B=0 → Write-Through
    • 写入时立即写回内存,读取时使用缓存(但可能仍存在缓存一致性风险,适合 CPU 频繁读取的场景)。

    签到签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    3

    帖子

    0

    注册会员

    Rank: 2

    积分
    83
    最后登录
    2025-12-20
     楼主| 发表于 2025-12-16 11:02:23 | 显示全部楼层
    y369369 发表于 2025-12-16 09:49
    如果你希望保留 D-Cache 的加速效果,同时保证 USB 数据传输的一致性,建议将 USB 内存区域配置为 Non-cach ...

    谢谢你的解答,我按你的配置后设备数据能导入u盘,但是设备却无法枚举u盘的设备,我把ARM_MPU_REGION_SIZE_8MB改成16MB后导致设备启动异常,改成4MB后设备正常运行但是无法挂载U盘
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2026-2-4 03:39 , Processed in 0.090348 second(s), 24 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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