ch582的手册里说SPI0的DMA缓冲寄存器R16_SPI0_DMA_BEG 是15位的, 而demo程序里进行SPI dma收发的时候,spiBuff是个全局的数组地址,是位于sram的按地址映射体系 ram里地址都是0x20000000以上的, 这个地址直接赋值到R16_SPI0_DMA_BEG,必然会被截断到15位。 而15位地址都在user code的flash里的。 这样的话,难道ch582m只能DMA读写小于15位地址的缓冲区,换句话说,收发只能从flash前32k读,然后写到小于32k地址的(很多是TEXT段或者RODATA)flash的某处缓冲里? 这个要求有点过头,并且flash里读写的话速度不是更慢.
所以我的问题是,我理解是否正确,demo程序这里spi buff被截断为15位的地址是否还能正常DMA收发? 有什么模式能让DMA的写入地址变得更合理(比如大于32k地址,从RAM或者其他地方进行读写)