ch582的手冊里說SPI0的DMA緩沖寄存器R16_SPI0_DMA_BEG 是15位的, 而demo程序里進(jìn)行SPI dma收發(fā)的時(shí)候,spiBuff是個(gè)全局的數(shù)組地址,是位于sram的按地址映射體系 ram里地址都是0x20000000以上的, 這個(gè)地址直接賦值到R16_SPI0_DMA_BEG,必然會被截?cái)嗟?5位。?? ? ? ? 而15位地址都在user code的flash里的。? ?這樣的話,難道ch582m只能DMA讀寫小于15位地址的緩沖區(qū),換句話說,收發(fā)只能從flash前32k讀,然后寫到小于32k地址的(很多是TEXT段或者RODATA)flash的某處緩沖里?? 這個(gè)要求有點(diǎn)過頭,并且flash里讀寫的話速度不是更慢.??
所以我的問題是,我理解是否正確,demo程序這里spi buff被截?cái)酁?5位的地址是否還能正常DMA收發(fā)? 有什么模式能讓DMA的寫入地址變得更合理(比如大于32k地址,從RAM或者其他地方進(jìn)行讀寫)