dma_image.c
来自「MPC5200 BSP 支持ATA,USB, I2C,扩展网口」· C语言 代码 · 共 620 行 · 第 1/4 页
C
620 行
TASK_PCI_SWAP_TX_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrStartTDT) + 0x001cUL - vMemOffset);
TASK_PCI_SWAP_TX_api->DRD[4] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_PCI_SWAP_TX_api->DRD[5] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrStartTDT) + 0x0028UL - vMemOffset);
TASK_PCI_SWAP_TX_api->DRD[6] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrStartTDT) + 0x0030UL - vMemOffset);
TASK_PCI_SWAP_TX_api->DRD[7] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrStartTDT) + 0x003cUL - vMemOffset);
TASK_PCI_SWAP_TX_api->NumVar = 12;
TASK_PCI_SWAP_TX_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrVarTab) - vMemOffset);
TASK_PCI_SWAP_TX_api->NumInc = 5;
TASK_PCI_SWAP_TX_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_TX_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_PCI_SWAP_TX_api->AddrDstFIFO = &(TASK_PCI_SWAP_TX_api->var[0]);
TASK_PCI_SWAP_TX_api->IncrBytes = (volatile sint16 *)&(TASK_PCI_SWAP_TX_api->inc[0])+1;
TASK_PCI_SWAP_TX_api->AddrPktSizeReg = &(TASK_PCI_SWAP_TX_api->var[1]);
TASK_PCI_SWAP_TX_api->IncrSrc = (volatile sint16 *)&(TASK_PCI_SWAP_TX_api->inc[1])+1;
TASK_PCI_SWAP_TX_api->AddrSCStatusReg = &(TASK_PCI_SWAP_TX_api->var[2]);
TASK_PCI_SWAP_TX_api->Bytes = &(TASK_PCI_SWAP_TX_api->var[3]);
TASK_PCI_SWAP_TX_api->IterExtra = &(TASK_PCI_SWAP_TX_api->var[4]);
TASK_PCI_SWAP_TX_api->StartAddrSrc = &(TASK_PCI_SWAP_TX_api->var[7]);
}
void init_dma_image_TASK_PCI_SWAP_RX(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_PCI_SWAP_RX_api->TaskNum = 7;
TASK_PCI_SWAP_RX_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x00e0UL);
TASK_PCI_SWAP_RX_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x00e4UL);
TASK_PCI_SWAP_RX_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x00e8UL);
TASK_PCI_SWAP_RX_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x00ecUL);
TASK_PCI_SWAP_RX_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x00f8UL);
TASK_PCI_SWAP_RX_api->TaskPragma = (volatile uint8 *)(TASK_PCI_SWAP_RX_api->PtrFDT)+3;
TASK_PCI_SWAP_RX_api->NumDRD = 6;
TASK_PCI_SWAP_RX_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x0008UL - vMemOffset);
TASK_PCI_SWAP_RX_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
TASK_PCI_SWAP_RX_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x0014UL - vMemOffset);
TASK_PCI_SWAP_RX_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x001cUL - vMemOffset);
TASK_PCI_SWAP_RX_api->DRD[4] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_PCI_SWAP_RX_api->DRD[5] = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrStartTDT) + 0x0030UL - vMemOffset);
TASK_PCI_SWAP_RX_api->NumVar = 9;
TASK_PCI_SWAP_RX_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrVarTab) - vMemOffset);
TASK_PCI_SWAP_RX_api->NumInc = 4;
TASK_PCI_SWAP_RX_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_SWAP_RX_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_PCI_SWAP_RX_api->AddrPktSizeReg = &(TASK_PCI_SWAP_RX_api->var[0]);
TASK_PCI_SWAP_RX_api->IncrBytes = (volatile sint16 *)&(TASK_PCI_SWAP_RX_api->inc[0])+1;
TASK_PCI_SWAP_RX_api->AddrSrcFIFO = &(TASK_PCI_SWAP_RX_api->var[1]);
TASK_PCI_SWAP_RX_api->IncrDst = (volatile sint16 *)&(TASK_PCI_SWAP_RX_api->inc[1])+1;
TASK_PCI_SWAP_RX_api->Bytes = &(TASK_PCI_SWAP_RX_api->var[2]);
TASK_PCI_SWAP_RX_api->IterExtra = &(TASK_PCI_SWAP_RX_api->var[3]);
TASK_PCI_SWAP_RX_api->StartAddrDst = &(TASK_PCI_SWAP_RX_api->var[6]);
}
void init_dma_image_TASK_GEN_DP_0(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_GEN_DP_0_api->TaskNum = 8;
TASK_GEN_DP_0_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0100UL);
TASK_GEN_DP_0_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0104UL);
TASK_GEN_DP_0_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0108UL);
TASK_GEN_DP_0_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x010cUL);
TASK_GEN_DP_0_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0118UL);
TASK_GEN_DP_0_api->TaskPragma = (volatile uint8 *)(TASK_GEN_DP_0_api->PtrFDT)+3;
TASK_GEN_DP_0_api->NumDRD = 4;
TASK_GEN_DP_0_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_GEN_DP_0_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x0018UL - vMemOffset);
TASK_GEN_DP_0_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_GEN_DP_0_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_GEN_DP_0_api->NumVar = 9;
TASK_GEN_DP_0_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrVarTab) - vMemOffset);
TASK_GEN_DP_0_api->NumInc = 8;
TASK_GEN_DP_0_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_GEN_DP_0_api->Bytes = &(TASK_GEN_DP_0_api->var[0]);
TASK_GEN_DP_0_api->IncrBytes = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[0])+1;
TASK_GEN_DP_0_api->IterExtra = &(TASK_GEN_DP_0_api->var[1]);
TASK_GEN_DP_0_api->IncrDst = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[1])+1;
TASK_GEN_DP_0_api->IncrDstMA = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[2])+1;
TASK_GEN_DP_0_api->IncrSrc = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[3])+1;
TASK_GEN_DP_0_api->StartAddrDst = &(TASK_GEN_DP_0_api->var[4]);
TASK_GEN_DP_0_api->IncrSrcMA = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[4])+1;
TASK_GEN_DP_0_api->StartAddrSrc = &(TASK_GEN_DP_0_api->var[5]);
}
void init_dma_image_TASK_GEN_DP_1(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_GEN_DP_1_api->TaskNum = 9;
TASK_GEN_DP_1_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0120UL);
TASK_GEN_DP_1_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0124UL);
TASK_GEN_DP_1_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0128UL);
TASK_GEN_DP_1_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x012cUL);
TASK_GEN_DP_1_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0138UL);
TASK_GEN_DP_1_api->TaskPragma = (volatile uint8 *)(TASK_GEN_DP_1_api->PtrFDT)+3;
TASK_GEN_DP_1_api->NumDRD = 4;
TASK_GEN_DP_1_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_GEN_DP_1_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x0018UL - vMemOffset);
TASK_GEN_DP_1_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_GEN_DP_1_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_GEN_DP_1_api->NumVar = 9;
TASK_GEN_DP_1_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrVarTab) - vMemOffset);
TASK_GEN_DP_1_api->NumInc = 8;
TASK_GEN_DP_1_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_GEN_DP_1_api->Bytes = &(TASK_GEN_DP_1_api->var[0]);
TASK_GEN_DP_1_api->IncrBytes = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[0])+1;
TASK_GEN_DP_1_api->IterExtra = &(TASK_GEN_DP_1_api->var[1]);
TASK_GEN_DP_1_api->IncrDst = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[1])+1;
TASK_GEN_DP_1_api->IncrDstMA = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[2])+1;
TASK_GEN_DP_1_api->IncrSrc = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[3])+1;
TASK_GEN_DP_1_api->StartAddrDst = &(TASK_GEN_DP_1_api->var[4]);
TASK_GEN_DP_1_api->IncrSrcMA = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[4])+1;
TASK_GEN_DP_1_api->StartAddrSrc = &(TASK_GEN_DP_1_api->var[5]);
}
void init_dma_image_TASK_GEN_DP_2(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_GEN_DP_2_api->TaskNum = 10;
TASK_GEN_DP_2_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0140UL);
TASK_GEN_DP_2_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0144UL);
TASK_GEN_DP_2_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0148UL);
TASK_GEN_DP_2_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x014cUL);
TASK_GEN_DP_2_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0158UL);
TASK_GEN_DP_2_api->TaskPragma = (volatile uint8 *)(TASK_GEN_DP_2_api->PtrFDT)+3;
TASK_GEN_DP_2_api->NumDRD = 4;
TASK_GEN_DP_2_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_GEN_DP_2_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x0018UL - vMemOffset);
TASK_GEN_DP_2_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_GEN_DP_2_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_GEN_DP_2_api->NumVar = 9;
TASK_GEN_DP_2_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrVarTab) - vMemOffset);
TASK_GEN_DP_2_api->NumInc = 8;
TASK_GEN_DP_2_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_GEN_DP_2_api->Bytes = &(TASK_GEN_DP_2_api->var[0]);
TASK_GEN_DP_2_api->IncrBytes = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[0])+1;
TASK_GEN_DP_2_api->IterExtra = &(TASK_GEN_DP_2_api->var[1]);
TASK_GEN_DP_2_api->IncrDst = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[1])+1;
TASK_GEN_DP_2_api->IncrDstMA = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[2])+1;
TASK_GEN_DP_2_api->IncrSrc = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[3])+1;
TASK_GEN_DP_2_api->StartAddrDst = &(TASK_GEN_DP_2_api->var[4]);
TASK_GEN_DP_2_api->IncrSrcMA = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[4])+1;
TASK_GEN_DP_2_api->StartAddrSrc = &(TASK_GEN_DP_2_api->var[5]);
}
void init_dma_image_TASK_GEN_DP_3(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_GEN_DP_3_api->TaskNum = 11;
TASK_GEN_DP_3_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0160UL);
TASK_GEN_DP_3_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0164UL);
TASK_GEN_DP_3_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0168UL);
TASK_GEN_DP_3_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x016cUL);
TASK_GEN_DP_3_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0178UL);
TASK_GEN_DP_3_api->TaskPragma = (volatile uint8 *)(TASK_GEN_DP_3_api->PtrFDT)+3;
TASK_GEN_DP_3_api->NumDRD = 4;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?