📄 gdma_omap32.c
字号:
//DMA_LCD_TOP_B2
//--------------
SetGroupBits( LCD_DMA_ACC(GDMA_LCD_TOP_B2_L ) ,DMA_LCD_TOP_F2_L_POS ,DMA_LCD_TOP_F2_L_NUMB ,((Chptr->LcdTopB2)&DMA_LCD_TOP_F2_L_MASK) );
SetGroupBits( LCD_DMA_ACC(GDMA_LCD_TOP_B2_U ) ,DMA_LCD_TOP_F2_L_POS ,DMA_LCD_TOP_F2_L_NUMB ,((Chptr->LcdTopB2)&DMA_LCD_TOP_F2_U_MASK)>>16 );
//DMA_LCD_BOT_B2
//--------------
SetGroupBits( LCD_DMA_ACC(GDMA_LCD_BOT_B2_L ) ,DMA_LCD_BOT_F2_L_POS ,DMA_LCD_BOT_F2_L_NUMB ,((Chptr->LcdBotB2)&DMA_LCD_BOT_F2_L_MASK) );
SetGroupBits( LCD_DMA_ACC(GDMA_LCD_BOT_B2_U ) ,DMA_LCD_BOT_F2_L_POS ,DMA_LCD_BOT_F2_L_NUMB ,((Chptr->LcdBotB2)&DMA_LCD_BOT_F2_U_MASK)>>16 );
//DMA_LCD_SRC_EI_B1
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_EI_B1),DMA_LCD_SRC_EI_B1_POS,DMA_LCD_SRC_EI_B1_NUMB,((Chptr->LcdSrcEI_B1)&DMA_LCD_SRC_EI_B1_MASK));
//DMA_LCD_SRC_EI_B2
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_EI_B2),DMA_LCD_SRC_EI_B2_POS,DMA_LCD_SRC_EI_B2_NUMB,((Chptr->LcdSrcEI_B2)&DMA_LCD_SRC_EI_B2_MASK));
//DMA_LCD_SRC_FI_B1
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_FI_B1),DMA_LCD_SRC_FI_B1_POS,DMA_LCD_SRC_FI_B1_NUMB,((Chptr->LcdSrcFI_B1)&DMA_LCD_SRC_FI_B1_MASK));
//DMA_LCD_SRC_FI_B2
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_FI_B2),DMA_LCD_SRC_FI_B2_POS,DMA_LCD_SRC_FI_B2_NUMB,((Chptr->LcdSrcFI_B2)&DMA_LCD_SRC_FI_B2_MASK));
//DMA_LCD_SRC_EN_B1
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_EN_B1),DMA_LCD_SRC_EN_B1_POS,DMA_LCD_SRC_EN_B1_NUMB,((Chptr->LcdSrcEN_B1)&DMA_LCD_SRC_EN_B1_MASK));
//DMA_LCD_SRC_EN_B2
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_EN_B2),DMA_LCD_SRC_EN_B2_POS,DMA_LCD_SRC_EN_B2_NUMB,((Chptr->LcdSrcEN_B2)&DMA_LCD_SRC_EN_B2_MASK));
//DMA_LCD_SRC_FN_B1
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_FN_B1),DMA_LCD_SRC_FN_B1_POS,DMA_LCD_SRC_FN_B1_NUMB,((Chptr->LcdSrcFN_B1)&DMA_LCD_SRC_FN_B1_MASK));
//DMA_LCD_SRC_FN_B2
//-----------------
SetGroupBits(LCD_DMA_ACC(GDMA_LCD_SRC_FN_B2),DMA_LCD_SRC_FN_B2_POS,DMA_LCD_SRC_FN_B2_NUMB,((Chptr->LcdSrcFN_B2)&DMA_LCD_SRC_FN_B2_MASK));
#else
//DMA_LCD_TOP_B1
//---------------
LCD_DMA_ACC(GDMA_LCD_TOP_B1_L) = ((Chptr->LcdTopB1)&DMA_LCD_TOP_F1_L_MASK) ;
LCD_DMA_ACC(GDMA_LCD_TOP_B1_U) = (((Chptr->LcdTopB1)&DMA_LCD_TOP_F1_U_MASK)>>16);
//DMA_LCD_BOT_B1
//---------------
LCD_DMA_ACC(GDMA_LCD_BOT_B1_L) = ((Chptr->LcdBotB1)&DMA_LCD_BOT_F1_L_MASK);
LCD_DMA_ACC(GDMA_LCD_BOT_B1_U) = (((Chptr->LcdBotB1)&DMA_LCD_BOT_F1_U_MASK)>>16);
//DMA_LCD_TOP_B2
//--------------
LCD_DMA_ACC(GDMA_LCD_TOP_B2_L) = ((Chptr->LcdTopB2)&DMA_LCD_TOP_F2_L_MASK);
LCD_DMA_ACC(GDMA_LCD_TOP_B2_U) = (((Chptr->LcdTopB2)&DMA_LCD_TOP_F2_U_MASK)>>16);
//DMA_LCD_BOT_B2
//--------------
LCD_DMA_ACC(GDMA_LCD_BOT_B2_L) = ((Chptr->LcdBotB2)&DMA_LCD_BOT_F2_L_MASK);
LCD_DMA_ACC(GDMA_LCD_BOT_B2_U) = (((Chptr->LcdBotB2)&DMA_LCD_BOT_F2_U_MASK)>>16);
//DMA_LCD_SRC_EI_B1
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_EI_B1) = (Chptr->LcdSrcEI_B1)&DMA_LCD_SRC_EI_B1_MASK;
//DMA_LCD_SRC_EI_B2
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_EI_B2) = (Chptr->LcdSrcEI_B2)&DMA_LCD_SRC_EI_B2_MASK;
//DMA_LCD_SRC_FI_B1
//-------------------
LCD_DMA_ACC(GDMA_LCD_SRC_FI_B1) = ((Chptr->LcdSrcFI_B1)&DMA_LCD_SRC_FI_B1_MASK);
//DMA_LCD_SRC_FI_B2
//-------------------
LCD_DMA_ACC(GDMA_LCD_SRC_FI_B2) = ((Chptr->LcdSrcFI_B2)&DMA_LCD_SRC_FI_B2_MASK);
//DMA_LCD_SRC_FI_HI_B1
//-------------------
LCD_DMA_ACC(GDMA_LCD_SRC_FI_HI_B1) = (((Chptr->LcdSrcFI_B1)&DMA_LCD_SRC_FI_HI_B1_MASK) >> 16);
//DMA_LCD_SRC_FI_HI_B2
//-------------------
LCD_DMA_ACC(GDMA_LCD_SRC_FI_HI_B2) = (((Chptr->LcdSrcFI_B2)&DMA_LCD_SRC_FI_HI_B2_MASK) >> 16);
//DMA_LCD_SRC_EN_B1
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_EN_B1) = (Chptr->LcdSrcEN_B1)&DMA_LCD_SRC_EN_B1_MASK;
//DMA_LCD_SRC_EN_B2
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_EN_B2) = (Chptr->LcdSrcEN_B2)&DMA_LCD_SRC_EN_B2_MASK;
//DMA_LCD_SRC_FN_B1
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_FN_B1) = (Chptr->LcdSrcFN_B1)&DMA_LCD_SRC_FN_B1_MASK;
//DMA_LCD_SRC_FN_B2
//-----------------
LCD_DMA_ACC(GDMA_LCD_SRC_FN_B2) = (Chptr->LcdSrcFN_B2)&DMA_LCD_SRC_FN_B2_MASK;
//DMA_LCH_CTRL
//-----------------
LCD_DMA_ACC(GDMA_LCD_LCH_CTRL) = DMA_LCH_TYP_D;
#endif
}
}
//-------------------------------------------------------------------------------
// NAME : DMA_Omap32EnableChannel
//
// DESCRIPTION : Enable the specified channel
//
// PARAMETERS : ChannelNumber DMA_CHANNEL_0
// DMA_CHANNEL_1
// DMA_CHANNEL_2
// DMA_CHANNEL_3
// DMA_CHANNEL_4
// DMA_CHANNEL_5
// DMA_CHANNEL_6
// DMA_CHANNEL_7
// DMA_CHANNEL_8
// DMA_CHANNEL_9
// DMA_CHANNEL_10
// DMA_CHANNEL_11
// DMA_CHANNEL_12
// DMA_CHANNEL_13
// DMA_CHANNEL_14
// DMA_CHANNEL_15
// DMA_CHANNEL_LCD_OMAP32
//
// RETURN VALUE : None
//
//--------------------------------------------------------------------------------
void DMA_Omap32EnableChannel(UWORD16 ChannelNumber)
{
CHANNEL_DESCRIPTOR_OMAP32* Chptr;
Chptr=&(SystemDma_omap32.DmaChannel[ChannelNumber]);
Chptr->Enable = ENABLE;
if (ChannelNumber == DMA_CHANNEL_LCD_OMAP32)
{
/* DMA_CCR */
SetGroupBits (LCD_DMA_ACC (GDMA_LCD_CCR),
DMA_LCD_ENABLE_POS,
DMA_LCD_ENABLE_NUMB,
ENABLE);
}
else
{
/* DMA_CCR */
SetGroupBits (DMA_ACC (NO_GLOB_REG,ChannelNumber,DMA_CCR),
DMA_ENABBLE_POS,
DMA_ENABLE_NUMB,
ENABLE);
}
return;
}
//-------------------------------------------------------------------------------
// NAME : DMA_Omap32ReadChannel
//
// DESCRIPTION : Copy the DMA registers in the structure
//
// PARAMETERS : ChannelNumber DMA_CHANNEL_0
// DMA_CHANNEL_1
// DMA_CHANNEL_2
// DMA_CHANNEL_3
// DMA_CHANNEL_4
// DMA_CHANNEL_5
// DMA_CHANNEL_6
// DMA_CHANNEL_7
// DMA_CHANNEL_8
// DMA_CHANNEL_9
// DMA_CHANNEL_10
// DMA_CHANNEL_11
// DMA_CHANNEL_12
// DMA_CHANNEL_13
// DMA_CHANNEL_14
// DMA_CHANNEL_15
// DMA_CHANNEL_LCD
//
// RETURN VALUE : None
//
//--------------------------------------------------------------------------------
void DMA_Omap32ReadChannel(UWORD16 ChannelNumber)
{
UWORD32 Temp;
if (ChannelNumber != DMA_CHANNEL_LCD_OMAP32)
{
CHANNEL_DESCRIPTOR_OMAP32* Chptr;
Chptr=&(SystemDma_omap32.DmaChannel[ChannelNumber]);
//DMA_CSDP
//----------
Temp=DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CSDP );
Chptr->TypeSize = GetGroupBits( Temp ,DMA_TYPE_SIZE_POS ,DMA_TYPE_SIZE_NUMB );
Chptr->SrcPort = GetGroupBits( Temp ,DMA_SRC_PORT_POS ,DMA_SRC_PORT_NUMB );
Chptr->DestPort = GetGroupBits( Temp ,DMA_DEST_PORT_POS ,DMA_DEST_PORT_NUMB );
Chptr->SrcPack = GetGroupBits( Temp ,DMA_SRC_PACK_POS ,DMA_SRC_PACK_NUMB );
Chptr->DestPack = GetGroupBits( Temp ,DMA_DEST_PACK_POS ,DMA_DEST_PACK_NUMB );
Chptr->SrcBurst = GetGroupBits( Temp ,DMA_SRC_BURST_POS ,DMA_SRC_BURST_NUMB );
Chptr->DestBurst = GetGroupBits( Temp ,DMA_DEST_BURST_POS ,DMA_DEST_BURST_NUMB );
//DMA_CCR
//----------
Temp=DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CCR );
Chptr->SyncNumb = GetGroupBits( Temp ,DMA_SYNCNUMB_POS ,DMA_SYNCNUMB_NUMB );
Chptr->EventSync = GetGroupBits( Temp ,DMA_FS_POS ,DMA_FS_NUMB );
Chptr->Priority = GetGroupBits( Temp ,DMA_PRIORITY_POS ,DMA_PRIORITY_NUMB );
Chptr->Enable = GetGroupBits( Temp ,DMA_ENABBLE_POS ,DMA_ENABLE_NUMB );
Chptr->Autoinit = GetGroupBits( Temp ,DMA_AUTOINIT_POS ,DMA_AUTOINIT_NUMB );
Chptr->OMAP31Disable = GetGroupBits( Temp ,DMA_COMPATIBLE_POS ,DMA_COMPATIBLE_NUMB );
Chptr->SrcAddressMode = GetGroupBits( Temp ,DMA_SRC_AMODE_POS ,DMA_SRC_AMODE_NUMB );
Chptr->DestAddressMode = GetGroupBits( Temp ,DMA_DEST_AMODE_POS ,DMA_DEST_AMODE_NUMB );
//DMA_CICR
//----------
Temp=DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CICR );
Chptr->TimeoutIntEnable = GetGroupBits( Temp ,DMA_TOUTIE_POS ,DMA_TOUTIE_NUMB );
Chptr->DropIntEnable = GetGroupBits( Temp ,DMA_DROPIE_POS ,DMA_DROPIE_NUMB );
Chptr->HalfFrameIntEnable = GetGroupBits( Temp ,DMA_HALFIE_POS ,DMA_HALFIE_NUMB );
Chptr->FrameIntEnable = GetGroupBits( Temp ,DMA_FRAMEIE_POS ,DMA_FRAMEIE_NUMB );
Chptr->LastFrameIntEnable = GetGroupBits( Temp ,DMA_LASTIE_POS ,DMA_LASTIE_NUMB );
Chptr->BlockIntEnable = GetGroupBits( Temp ,DMA_BLOCKIE_POS ,DMA_BLOCKIE_NUMB );
//DMA_CSR
//----------
Temp=DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb,DMA_CSR );
Chptr->TimeoutInt = GetGroupBits( Temp ,DMA_TOUT_POS ,DMA_TOUT_NUMB );
Chptr->DropInt = GetGroupBits( Temp ,DMA_DROP_POS ,DMA_DROP_NUMB );
Chptr->HalfFrameInt = GetGroupBits( Temp ,DMA_HALF_POS ,DMA_HALF_NUMB );
Chptr->FrameInt = GetGroupBits( Temp ,DMA_FRAME_POS ,DMA_FRAME_NUMB );
Chptr->LastFrameInt = GetGroupBits( Temp ,DMA_LASTFRAME_POS ,DMA_LASTFRAME_NUMB );
Chptr->BlockInt = GetGroupBits( Temp ,DMA_BLOCK_POS ,DMA_BLOCK_NUMB );
//DMA_CSSA_L and DMA_CSSA_U
//--------------------------
Chptr->SrcAdd = ( GetGroupBits(DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CSSA_L ) ,DMA_CSSA_L_POS ,DMA_CSSA_L_NUMB)) |
((GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CSSA_U ) ,DMA_CSSA_U_POS ,DMA_CSSA_U_NUMB ))<<15);
//DMA_CDSA_L and DMA_CDSA_U
//--------------------------
Chptr->DestAdd = ( GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CDSA_L ) ,DMA_CDSA_L_POS ,DMA_CDSA_L_NUMB )) |
((GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CDSA_U ) ,DMA_CDSA_U_POS ,DMA_CDSA_U_NUMB ))<< 16);
//DMA_CEN
//----------
Chptr->EltNumber = GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CEN ) ,DMA_CEN_POS ,DMA_CEN_NUMB );
//DMA_CFN
//----------
Chptr->FrameNumber = GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CFN ) ,DMA_CFN_POS ,DMA_CFN_NUMB );
//DMA_CFI
//----------
Chptr->FrameIndex = GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CFI ) ,DMA_CFI_POS ,DMA_CFI_NUMB );
//DMA_CEI
//----------
Chptr->EltIndex = GetGroupBits( DMA_ACC(NO_GLOB_REG,Chptr->ChannelNumb ,DMA_CEI ) ,DMA_CEI_POS ,DMA_CEI_NUMB );
}
else
{
LCD_CHANNEL_DESCRIPTOR_OMAP32* Chptr;
Chptr=&(SystemDma_omap32.LcdChannel);
//DMA_LCD_CSDP
//----------
Temp = LCD_DMA_ACC(GDMA_LCD_CSDP);
Chptr->TypeSize_B1 = GetGroupBits(Temp,DMA_LCD_TYPE_SIZE_B1_POS,DMA_LCD_TYPE_SIZE_B1_NUMB);
Chptr->B1_Pack = GetGroupBits(Temp,DMA_LCD_B1_PACK_POS,DMA_LCD_B1_PACK_NUMB);
Chptr->B1_Burst = GetGroupBits(Temp,DMA_LCD_B1_BURST_POS,DMA_LCD_B1_BURST_NUMB);
Chptr->TypeSize_B2 = GetGroupBits(Temp,DMA_LCD_TYPE_SIZE_B2_POS,DMA_LCD_TYPE_SIZE_B2_NUMB);
Chptr->B2_Pack = GetGroupBits(Temp,DMA_LCD_B2_PACK_POS,DMA_LCD_B2_PACK_NUMB);
Chptr->B2_Burst = GetGroupBits(Temp,DMA_LCD_B2_BURST_POS,DMA_LCD_B2_BURST_NUMB);
//DMA_LCD_CCR
//----------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -