|
|
Information
| 说明: |
建议参照本版块置顶帖内容输入必要信息 |
| 芯片型号: |
tl3228 |
| 驱动SDK版本: |
tl_platform_sdk 3.11.0 |
基于 tl_platform_sdk 3.11.0 使用两个例程:
- MULTI_CORE_Demo
- N22_Test_Demo
在 MULTI_CORE_Demo 中使用 SPI 主从机、SPI 主从机+ DMA 都正常。
把 SPI 移植到 N22_Test_Demo 中的时候,发现了问题。
1、不是用 DMA 的情况下,使用 spi_master_write(GSPI_MODULE,buf,16) ,会卡在 SPI_WAIT。注释掉这个判断,可以发送成功。
但是发送更长的数据,例如 32 字节或者更长的数据,又会卡在 spi_write 里。
2、使用 DMA spi_master_write_dma ,通过 IO 可以发现,代码会挂在: reg_dma_src_addr(chn) = (unsigned int)src_addr; 这一行。
static inline void dma_set_address(dma_chn_e chn, unsigned int src_addr, unsigned int dst_addr)
{
reg_dma_src_addr(chn) = (unsigned int)src_addr;
reg_dma_dst_addr(chn) = (unsigned int)dst_addr;
}
src_addr 肯定是 4 字节对齐,且地址也是在 RAM里。
我看了 N22 的例程,没有可以参考的 DMA 配置。
请问这个驱动适配了 N22 核吗?
N22 使用 SPI 有什么要注意的吗?
是不是还有什么配置没有开启?
|
|