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

📄 dma_image.c

📁 MPC5200 BSP 支持ATA,USB, I2C,扩展网口
💻 C
📖 第 1 页 / 共 4 页
字号:
	TASK_GEN_DP_3_api->DRD[0]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x000cUL - vMemOffset);
	TASK_GEN_DP_3_api->DRD[1]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x0018UL - vMemOffset);
	TASK_GEN_DP_3_api->DRD[2]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x0024UL - vMemOffset);
	TASK_GEN_DP_3_api->DRD[3]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x002cUL - vMemOffset);
	TASK_GEN_DP_3_api->NumVar           = 9;
	TASK_GEN_DP_3_api->var              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrVarTab) - vMemOffset);
	TASK_GEN_DP_3_api->NumInc           = 8;
	TASK_GEN_DP_3_api->inc              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrVarTab) + (4*24) - vMemOffset);
	TASK_GEN_DP_3_api->Bytes            = &(TASK_GEN_DP_3_api->var[0]);
	TASK_GEN_DP_3_api->IncrBytes        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[0])+1;
	TASK_GEN_DP_3_api->IterExtra        = &(TASK_GEN_DP_3_api->var[1]);
	TASK_GEN_DP_3_api->IncrDst          = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[1])+1;
	TASK_GEN_DP_3_api->IncrDstMA        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[2])+1;
	TASK_GEN_DP_3_api->IncrSrc          = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[3])+1;
	TASK_GEN_DP_3_api->StartAddrDst     = &(TASK_GEN_DP_3_api->var[4]);
	TASK_GEN_DP_3_api->IncrSrcMA        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[4])+1;
	TASK_GEN_DP_3_api->StartAddrSrc     = &(TASK_GEN_DP_3_api->var[5]);
}


void init_dma_image_TASK_GEN_TX_BD_0(uint8 *taskBar, sint64 vMemOffset)
{
	uint8 *vMem_taskBar = (taskBar - vMemOffset);
	TASK_GEN_TX_BD_0_api->TaskNum       = 12;
	TASK_GEN_TX_BD_0_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x0180UL);
	TASK_GEN_TX_BD_0_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x0184UL);
	TASK_GEN_TX_BD_0_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x0188UL);
	TASK_GEN_TX_BD_0_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x018cUL);
	TASK_GEN_TX_BD_0_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x0198UL);
	TASK_GEN_TX_BD_0_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_TX_BD_0_api->PtrFDT)+3;
	TASK_GEN_TX_BD_0_api->NumDRD        = 8;
	TASK_GEN_TX_BD_0_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0004UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x000cUL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0010UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0014UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0020UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0028UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0030UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->DRD[7]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrStartTDT) + 0x0034UL - vMemOffset);
	TASK_GEN_TX_BD_0_api->NumVar        = 13;
	TASK_GEN_TX_BD_0_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrVarTab) - vMemOffset);
	TASK_GEN_TX_BD_0_api->NumInc        = 7;
	TASK_GEN_TX_BD_0_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_0_api->PtrVarTab) + (4*24) - vMemOffset);
	TASK_GEN_TX_BD_0_api->AddrDstFIFO   = &(TASK_GEN_TX_BD_0_api->var[0]);
	TASK_GEN_TX_BD_0_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_TX_BD_0_api->inc[0])+1;
	TASK_GEN_TX_BD_0_api->AddrEnable    = &(TASK_GEN_TX_BD_0_api->var[1]);
	TASK_GEN_TX_BD_0_api->IncrSrc       = (volatile sint16 *)&(TASK_GEN_TX_BD_0_api->inc[1])+1;
	TASK_GEN_TX_BD_0_api->BDTableBase   = &(TASK_GEN_TX_BD_0_api->var[2]);
	TASK_GEN_TX_BD_0_api->IncrSrcMA     = (volatile sint16 *)&(TASK_GEN_TX_BD_0_api->inc[2])+1;
	TASK_GEN_TX_BD_0_api->BDTableLast   = &(TASK_GEN_TX_BD_0_api->var[3]);
	TASK_GEN_TX_BD_0_api->BDTableStart  = &(TASK_GEN_TX_BD_0_api->var[4]);
	TASK_GEN_TX_BD_0_api->Bytes         = &(TASK_GEN_TX_BD_0_api->var[5]);
}


void init_dma_image_TASK_GEN_RX_BD_0(uint8 *taskBar, sint64 vMemOffset)
{
	uint8 *vMem_taskBar = (taskBar - vMemOffset);
	TASK_GEN_RX_BD_0_api->TaskNum       = 13;
	TASK_GEN_RX_BD_0_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x01a0UL);
	TASK_GEN_RX_BD_0_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x01a4UL);
	TASK_GEN_RX_BD_0_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x01a8UL);
	TASK_GEN_RX_BD_0_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x01acUL);
	TASK_GEN_RX_BD_0_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x01b8UL);
	TASK_GEN_RX_BD_0_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_RX_BD_0_api->PtrFDT)+3;
	TASK_GEN_RX_BD_0_api->NumDRD        = 7;
	TASK_GEN_RX_BD_0_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x0004UL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x000cUL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x0010UL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x0014UL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x0020UL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x0028UL - vMemOffset);
	TASK_GEN_RX_BD_0_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrStartTDT) + 0x002cUL - vMemOffset);
	TASK_GEN_RX_BD_0_api->NumVar        = 12;
	TASK_GEN_RX_BD_0_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrVarTab) - vMemOffset);
	TASK_GEN_RX_BD_0_api->NumInc        = 5;
	TASK_GEN_RX_BD_0_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_0_api->PtrVarTab) + (4*24) - vMemOffset);
	TASK_GEN_RX_BD_0_api->AddrEnable    = &(TASK_GEN_RX_BD_0_api->var[0]);
	TASK_GEN_RX_BD_0_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_RX_BD_0_api->inc[0])+1;
	TASK_GEN_RX_BD_0_api->AddrSrcFIFO   = &(TASK_GEN_RX_BD_0_api->var[1]);
	TASK_GEN_RX_BD_0_api->IncrDst       = (volatile sint16 *)&(TASK_GEN_RX_BD_0_api->inc[1])+1;
	TASK_GEN_RX_BD_0_api->BDTableBase   = &(TASK_GEN_RX_BD_0_api->var[2]);
	TASK_GEN_RX_BD_0_api->BDTableLast   = &(TASK_GEN_RX_BD_0_api->var[3]);
	TASK_GEN_RX_BD_0_api->BDTableStart  = &(TASK_GEN_RX_BD_0_api->var[4]);
	TASK_GEN_RX_BD_0_api->Bytes         = &(TASK_GEN_RX_BD_0_api->var[5]);
}


void init_dma_image_TASK_GEN_TX_BD_1(uint8 *taskBar, sint64 vMemOffset)
{
	uint8 *vMem_taskBar = (taskBar - vMemOffset);
	TASK_GEN_TX_BD_1_api->TaskNum       = 14;
	TASK_GEN_TX_BD_1_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x01c0UL);
	TASK_GEN_TX_BD_1_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x01c4UL);
	TASK_GEN_TX_BD_1_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x01c8UL);
	TASK_GEN_TX_BD_1_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x01ccUL);
	TASK_GEN_TX_BD_1_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x01d8UL);
	TASK_GEN_TX_BD_1_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_TX_BD_1_api->PtrFDT)+3;
	TASK_GEN_TX_BD_1_api->NumDRD        = 8;
	TASK_GEN_TX_BD_1_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0004UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x000cUL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0010UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0014UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0020UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0028UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0030UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->DRD[7]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrStartTDT) + 0x0034UL - vMemOffset);
	TASK_GEN_TX_BD_1_api->NumVar        = 13;
	TASK_GEN_TX_BD_1_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrVarTab) - vMemOffset);
	TASK_GEN_TX_BD_1_api->NumInc        = 7;
	TASK_GEN_TX_BD_1_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_1_api->PtrVarTab) + (4*24) - vMemOffset);
	TASK_GEN_TX_BD_1_api->AddrDstFIFO   = &(TASK_GEN_TX_BD_1_api->var[0]);
	TASK_GEN_TX_BD_1_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_TX_BD_1_api->inc[0])+1;
	TASK_GEN_TX_BD_1_api->AddrEnable    = &(TASK_GEN_TX_BD_1_api->var[1]);
	TASK_GEN_TX_BD_1_api->IncrSrc       = (volatile sint16 *)&(TASK_GEN_TX_BD_1_api->inc[1])+1;
	TASK_GEN_TX_BD_1_api->BDTableBase   = &(TASK_GEN_TX_BD_1_api->var[2]);
	TASK_GEN_TX_BD_1_api->IncrSrcMA     = (volatile sint16 *)&(TASK_GEN_TX_BD_1_api->inc[2])+1;
	TASK_GEN_TX_BD_1_api->BDTableLast   = &(TASK_GEN_TX_BD_1_api->var[3]);
	TASK_GEN_TX_BD_1_api->BDTableStart  = &(TASK_GEN_TX_BD_1_api->var[4]);
	TASK_GEN_TX_BD_1_api->Bytes         = &(TASK_GEN_TX_BD_1_api->var[5]);
}


void init_dma_image_TASK_GEN_RX_BD_1(uint8 *taskBar, sint64 vMemOffset)
{
	uint8 *vMem_taskBar = (taskBar - vMemOffset);
	TASK_GEN_RX_BD_1_api->TaskNum       = 15;
	TASK_GEN_RX_BD_1_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x01e0UL);
	TASK_GEN_RX_BD_1_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x01e4UL);
	TASK_GEN_RX_BD_1_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x01e8UL);
	TASK_GEN_RX_BD_1_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x01ecUL);
	TASK_GEN_RX_BD_1_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x01f8UL);
	TASK_GEN_RX_BD_1_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_RX_BD_1_api->PtrFDT)+3;
	TASK_GEN_RX_BD_1_api->NumDRD        = 7;
	TASK_GEN_RX_BD_1_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x0004UL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x000cUL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x0010UL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x0014UL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x0020UL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x0028UL - vMemOffset);
	TASK_GEN_RX_BD_1_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrStartTDT) + 0x002cUL - vMemOffset);
	TASK_GEN_RX_BD_1_api->NumVar        = 12;
	TASK_GEN_RX_BD_1_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrVarTab) - vMemOffset);
	TASK_GEN_RX_BD_1_api->NumInc        = 5;
	TASK_GEN_RX_BD_1_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_1_api->PtrVarTab) + (4*24) - vMemOffset);
	TASK_GEN_RX_BD_1_api->AddrEnable    = &(TASK_GEN_RX_BD_1_api->var[0]);
	TASK_GEN_RX_BD_1_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_RX_BD_1_api->inc[0])+1;
	TASK_GEN_RX_BD_1_api->AddrSrcFIFO   = &(TASK_GEN_RX_BD_1_api->var[1]);
	TASK_GEN_RX_BD_1_api->IncrDst       = (volatile sint16 *)&(TASK_GEN_RX_BD_1_api->inc[1])+1;
	TASK_GEN_RX_BD_1_api->BDTableBase   = &(TASK_GEN_RX_BD_1_api->var[2]);
	TASK_GEN_RX_BD_1_api->BDTableLast   = &(TASK_GEN_RX_BD_1_api->var[3]);
	TASK_GEN_RX_BD_1_api->BDTableStart  = &(TASK_GEN_RX_BD_1_api->var[4]);
	TASK_GEN_RX_BD_1_api->Bytes         = &(TASK_GEN_RX_BD_1_api->var[5]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -