STM32F4系列DMA使用

在使用HAL库构建SPI+DMA工程时遇到发送错误,原因是DMA尝试访问位于0X1000,0000区域的CCMRAM,而该区域仅支持CPU数据总线访问。通过修改ICF文件,将DMA缓冲区放置到SRAM中解决了此问题。具体解决方案是声明buffer时将其置于SRAM区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简短记录下遇到的问题, 在使用HAL库创建SPI+DMA工程的时候,每次DMA发送都提示发送错误。
分析最终发现,DMA发送数据的内存地址IAR工程映射到了0X1000,0000区域的CCMRAM 中,该区域只能提供 CPU进行数据总线访,dma无权限。

通过修改ICF文件:
place at address mem:ICFEDIT_region_SRAM1_start { readonly section .dmabuffer};

声明buffer的时候将buffer放到SRMA中即可解决问题。
uint8_t i[] @".dmabuffer"=“hsldlsdl”;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值