|
cubeMX固件库版本STM32Cube FW_F4V1.26.2 STM32F4上跑了FreeRtos,Fatfs,USB_Device_Mass Storage这几个中间件 由于使用了FreeRtos,SD卡强制为DMA控制 芯片需要对SD卡中的文件进行读写修改,文件大小不确定,所以FSMC接了1M的外表SRAM,使用FreeRtos-heap4管理这部分内存. 一开始在挂载文件系统时报告磁盘错误,排查后发现是MX生成的DMA的中断服务函数中没有调用BSP的回调函数,添加后报没有找到文件系统错误,调用fatfs的格式化函数,返回无异常,但再次挂载后仍提示未找到文件系统 直接读取SD卡内容,发现确实文件系统的配置没有被写入,尝试直接写入SD数据,数据来源为内部RAM,写入后读取,返回的数据是写入的内容,把数据来源定位到外部SRAM,再次写入SD卡,读取后发现SD卡的数据没有被改变,但HAL库的DMA发送函数没有回报异常。 目前需要让外部SRAM的数据可以直接通过DMA传输到SD卡中需要如何配置? |
开箱转盘中奖礼物,跑个“代码❤️”先!
G474 HRTIM的6个Fault引脚能对应三个定时器的6个通道吗?
STM32H743 以太网 为什么需要设置在0x30040000才能使用
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
STM32F407 FLASH写入超过最大空间依旧能成功。
简单聊聊STM32的SPI外设
有没有好用的日志系统推荐
全球论坛无法登录
关于STM32WB09例子程序中,是否能够不使用串口的问题,引脚另有他用
关于使用STM32CubeIDE for vscode配置freertos的问题
微信公众号
手机版
SDIO 外设的 DMA 只能访问 AHB 总线上的“内部 SRAM1/2/3(0x2000 0000 起)”。 你通过 FSMC 挂在外部总线上的 1 M SRAM(典型地址 0x6000 0000 或 0x6800 0000 )属于 AHB 外部的存储器,SDIO DMA 无法直接访问。
[md]好的,我还使用在该芯片的全速USB2.0模拟了U盘,同样使用DMA对SD卡进行读取写入,在将电脑与芯片的USB2.0接口连接后(数据接口使用软件上拉,数据线长1m),电脑的资源管理器能识别到U盘设备,但读取时间很长才读取完毕可以打开,SD卡的容量为8GB(实际7.3GB),单次读取为512字节。不清楚造成这个传输速度慢的原因是否也与DMA传输有关,传输8MB文件的速度为355KB/s,但是传输过程是一卡一卡的。
芯片上运行了FREERTOS系统,系统掌管的中断优先级是5-15,SDIO中断优先级是5,SD的两个DMA中断优先级是6,USB_FS中断优先级是7