谷动谷力

 找回密码
 立即注册
查看: 1639|回复: 0
打印 上一主题 下一主题
收起左侧

i.MX RT1050 USB CDC 例程使用外部 SDRAM

[复制链接]
跳转到指定楼层
楼主
发表于 2022-12-28 17:42:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
i.MX RT1050 USB CDC 例程使用外部 SDRAM
本文使用的硬件平台:IMXRT1050-EVKB ,软件版本:SDK2.11.1
首先我们导出 USB CDC 例程:



编译,下载,



接上 USB 口(板上编号 J9),打开串口助手可以看到弹出对应 COM 端口:


发送数据也能正常回数据:


在工程设置中,我们可以看到例程默认使用的是 DTCM 存储变量:





现在来将其改为外部 SDRAM 来存储,一般修改我们就直接将全部变量存储的地方选择 BOARD_SDRAM ,

添加两个宏定义,用于初始化 SDRAM


编译


下载后你会发现并未像之前一样弹出 USB 端口,原因在于例程中已经使能了 Cache :







为什么使能 Cache 之后就会出错呢?我们先看看 i.MX RT1050 的内存结构:

可以看到,对于 DTCM ,CPU 是可以直接访问的,而当我们使用外部的 SDRAM 又或者是内部 OCRAM 来作存储变量需要经过Cache , 由于数据一致性问题会导致很多的中间件出错,就比如现在使用的 USB ,解决这个问题比较简单的办法就是使用 Non-Cache 区域。
在工程设置中,照以下修改即可:

重新编译下载可以看到 USB 端口重新出现了,也能正常收发数据:


参考资料:
《IMXRT1050RM》
https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1050-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1050

《AN12042》


+10
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-5-17 18:58 , Processed in 0.073431 second(s), 41 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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