⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdma_omap32.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
📖 第 1 页 / 共 5 页
字号:
    
    	//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 + -