简短记录下遇到的问题, 在使用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”;