LM3S9b92 uDMA 读取外部flash应该如何设置,这样设置有什么问题?总是读取不成功
SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA); /* 使能DMA时钟 */
uDMAEnable(); /* 使能DMA模块 */
uDMAControlBaseSet(&ucDMAControlTable[0]); /* 对DMA的控制表进行设置 */
uDMAChannelAttributeDisable(UDMA_CHANNEL_SSI0RX , /* 清除通道属性 */
UDMA_ATTR_HIGH_PRIORITY |
UDMA_ATTR_ALTSELECT |
UDMA_ATTR_REQMASK |UDMA_ATTR_ALL);
uDMAChannelAttributeEnable(UDMA_CHANNEL_SSI0RX ,
UDMA_ATTR_HIGH_PRIORITY); /* 通道为高优先级 */
/*DMA 通道控制器参数设置*/
uDMAChannelControlSet(UDMA_CHANNEL_SSI0RX | /* 通道为SSI0TX */
UDMA_PRI_SELECT, /* 主控制结构 */
UDMA_SIZE_8 | /* 数据类型8 位 */
UDMA_SRC_INC_NONE | /* 源地址累加 */
UDMA_SRC_INC_8 | /* 目的地址不累加 */
UDMA_ARB_8); /* 仲裁大小为8 */
/* DMA 通道传递参数设置*/
uDMAChannelTransferSet(UDMA_CHANNEL_SSI0RX | /* 通道为SSI0TX */
UDMA_PRI_SELECT , /* 主控制结构 */
UDMA_MODE_BASIC , /* 基本DMA模式 */
(void*)0x40008008, /* 源地址 */
(void*)(test), /* 目的地址为SSI0 的数据寄存器*/
256); /* 一次传输为8 个数据 */
uDMAChannelEnable(UDMA_CHANNEL_SSI0RX); /*使能UDMA_CHANNEL_SSI0TX通道*/
uDMAChannelIsEnabled(UDMA_CHANNEL_SSI0RX); |