|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本文源码基于dvsdk_omapl138-evm_04_03_00_06_setuplinux程序包里的linux3.3.0版本的内核。实现EDMA支持UART功能主要修改dma和8250的源码。 |
首先为OMAPL138的arm和DSP分配dma通道资源,此处理器有三个UART,UART1占用EDMA0cc0的channel8(RX)、channel9(TX)通道以及slot8(RX)和slot9(TX); |
UART2占用EDMA0cc0的channel12(RX)、channel13(TX)通道以及slot12(RX)和slot13(TX);UART2占用EDMA0cc0的channel30(RX)、channel31(TX)通道以及slot30(RX)和slot31(TX)。我的板子其余的EDMA资源全部分给DSP。因此可以设置dma的通道资源分配结构体为: |
static const s16 da850_dma0_rsv_chans[][2] = { |
{ 0, 32},//表示所有的endm0cc0通道都已经使用,其中通道8、9、12、13、30、31是后边8250中通过直接获取通道时使用。 |
static const s16 da850_dma0_rsv_slots[][2] = { |
{0, 8},//表示slot0~slot7分配给DSP,如何实现在下边分析 |
{10, 2},//表示slot10、slot11分配给DSP |
{14, 16},//表示slot14~slot30分配给DSP |
{32, 96},//剩余的slot全部分给DSP |
{-1, -1}//此结构体表示slot8、9、12、13、30、31预留给arm |
static const s16 da850_dma1_rsv_chans[][2] = { |
{0 , 32},//endm1cc0的32个通道全留给DSP |
static const s16 da850_dma1_rsv_slots[][2] = { |
{0 ,128},//endm1cc0所有的slot全部留给DSP |
https://blog.csdn.net/a6228/article/details/77949346 |
|