📄 dma_image.c
字号:
TASK_FEC_TX_api->DRD[6] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_FEC_TX_api->DRD[7] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0030UL - vMemOffset);
TASK_FEC_TX_api->DRD[8] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0034UL - vMemOffset);
TASK_FEC_TX_api->DRD[9] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0038UL - vMemOffset);
TASK_FEC_TX_api->DRD[10] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0044UL - vMemOffset);
TASK_FEC_TX_api->DRD[11] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0048UL - vMemOffset);
TASK_FEC_TX_api->DRD[12] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x004cUL - vMemOffset);
TASK_FEC_TX_api->DRD[13] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0054UL - vMemOffset);
TASK_FEC_TX_api->DRD[14] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0060UL - vMemOffset);
TASK_FEC_TX_api->DRD[15] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0064UL - vMemOffset);
TASK_FEC_TX_api->DRD[16] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0068UL - vMemOffset);
TASK_FEC_TX_api->DRD[17] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x006cUL - vMemOffset);
TASK_FEC_TX_api->DRD[18] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0074UL - vMemOffset);
TASK_FEC_TX_api->DRD[19] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x007cUL - vMemOffset);
TASK_FEC_TX_api->DRD[20] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0084UL - vMemOffset);
TASK_FEC_TX_api->DRD[21] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0088UL - vMemOffset);
TASK_FEC_TX_api->NumVar = 20;
TASK_FEC_TX_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrVarTab) - vMemOffset);
TASK_FEC_TX_api->NumInc = 7;
TASK_FEC_TX_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_FEC_TX_api->AddrDRD = &(TASK_FEC_TX_api->var[0]);
TASK_FEC_TX_api->AddrDRDIdx = 19;
*TASK_FEC_TX_api->AddrDRD = (volatile uint32)(TASK_FEC_TX_api->DRD[19]);
TASK_FEC_TX_api->IncrBytes = (volatile sint16 *)&(TASK_FEC_TX_api->inc[0])+1;
TASK_FEC_TX_api->AddrDstFIFO = &(TASK_FEC_TX_api->var[1]);
TASK_FEC_TX_api->IncrSrc = (volatile sint16 *)&(TASK_FEC_TX_api->inc[1])+1;
TASK_FEC_TX_api->AddrEnable = &(TASK_FEC_TX_api->var[2]);
TASK_FEC_TX_api->IncrSrcMA = (volatile sint16 *)&(TASK_FEC_TX_api->inc[2])+1;
TASK_FEC_TX_api->BDTableBase = &(TASK_FEC_TX_api->var[3]);
TASK_FEC_TX_api->BDTableLast = &(TASK_FEC_TX_api->var[4]);
TASK_FEC_TX_api->BDTableStart = &(TASK_FEC_TX_api->var[5]);
TASK_FEC_TX_api->Bytes = &(TASK_FEC_TX_api->var[6]);
}
void init_dma_image_TASK_FEC_RX(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_FEC_RX_api->TaskNum = 3;
TASK_FEC_RX_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0060UL);
TASK_FEC_RX_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0064UL);
TASK_FEC_RX_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0068UL);
TASK_FEC_RX_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x006cUL);
TASK_FEC_RX_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0078UL);
TASK_FEC_RX_api->TaskPragma = (volatile uint8 *)(TASK_FEC_RX_api->PtrFDT)+3;
TASK_FEC_RX_api->NumDRD = 13;
TASK_FEC_RX_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0004UL - vMemOffset);
TASK_FEC_RX_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_FEC_RX_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
TASK_FEC_RX_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0014UL - vMemOffset);
TASK_FEC_RX_api->DRD[4] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0020UL - vMemOffset);
TASK_FEC_RX_api->DRD[5] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_FEC_RX_api->DRD[6] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_FEC_RX_api->DRD[7] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0038UL - vMemOffset);
TASK_FEC_RX_api->DRD[8] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x003cUL - vMemOffset);
TASK_FEC_RX_api->DRD[9] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0040UL - vMemOffset);
TASK_FEC_RX_api->DRD[10] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0048UL - vMemOffset);
TASK_FEC_RX_api->DRD[11] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0050UL - vMemOffset);
TASK_FEC_RX_api->DRD[12] = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0058UL - vMemOffset);
TASK_FEC_RX_api->NumVar = 15;
TASK_FEC_RX_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrVarTab) - vMemOffset);
TASK_FEC_RX_api->NumInc = 7;
TASK_FEC_RX_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_FEC_RX_api->AddrEnable = &(TASK_FEC_RX_api->var[0]);
TASK_FEC_RX_api->IncrBytes = (volatile sint16 *)&(TASK_FEC_RX_api->inc[0])+1;
TASK_FEC_RX_api->AddrSrcFIFO = &(TASK_FEC_RX_api->var[1]);
TASK_FEC_RX_api->IncrDst = (volatile sint16 *)&(TASK_FEC_RX_api->inc[1])+1;
TASK_FEC_RX_api->BDTableBase = &(TASK_FEC_RX_api->var[2]);
TASK_FEC_RX_api->IncrDstMA = (volatile sint16 *)&(TASK_FEC_RX_api->inc[2])+1;
TASK_FEC_RX_api->BDTableLast = &(TASK_FEC_RX_api->var[3]);
TASK_FEC_RX_api->BDTableStart = &(TASK_FEC_RX_api->var[4]);
TASK_FEC_RX_api->Bytes = &(TASK_FEC_RX_api->var[5]);
}
void init_dma_image_TASK_LPC(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_LPC_api->TaskNum = 4;
TASK_LPC_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x0080UL);
TASK_LPC_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x0084UL);
TASK_LPC_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x0088UL);
TASK_LPC_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x008cUL);
TASK_LPC_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x0098UL);
TASK_LPC_api->TaskPragma = (volatile uint8 *)(TASK_LPC_api->PtrFDT)+3;
TASK_LPC_api->NumDRD = 4;
TASK_LPC_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_LPC_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x0018UL - vMemOffset);
TASK_LPC_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_LPC_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_LPC_api->NumVar = 9;
TASK_LPC_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrVarTab) - vMemOffset);
TASK_LPC_api->NumInc = 8;
TASK_LPC_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_LPC_api->Bytes = &(TASK_LPC_api->var[0]);
TASK_LPC_api->IncrBytes = (volatile sint16 *)&(TASK_LPC_api->inc[0])+1;
TASK_LPC_api->IterExtra = &(TASK_LPC_api->var[1]);
TASK_LPC_api->IncrDst = (volatile sint16 *)&(TASK_LPC_api->inc[1])+1;
TASK_LPC_api->IncrDstMA = (volatile sint16 *)&(TASK_LPC_api->inc[2])+1;
TASK_LPC_api->IncrSrc = (volatile sint16 *)&(TASK_LPC_api->inc[3])+1;
TASK_LPC_api->StartAddrDst = &(TASK_LPC_api->var[4]);
TASK_LPC_api->IncrSrcMA = (volatile sint16 *)&(TASK_LPC_api->inc[4])+1;
TASK_LPC_api->StartAddrSrc = &(TASK_LPC_api->var[5]);
}
void init_dma_image_TASK_ATA(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_ATA_api->TaskNum = 5;
TASK_ATA_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x00a0UL);
TASK_ATA_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x00a4UL);
TASK_ATA_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x00a8UL);
TASK_ATA_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x00acUL);
TASK_ATA_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x00b8UL);
TASK_ATA_api->TaskPragma = (volatile uint8 *)(TASK_ATA_api->PtrFDT)+3;
TASK_ATA_api->NumDRD = 7;
TASK_ATA_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0004UL - vMemOffset);
TASK_ATA_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x000cUL - vMemOffset);
TASK_ATA_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0010UL - vMemOffset);
TASK_ATA_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0014UL - vMemOffset);
TASK_ATA_api->DRD[4] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_ATA_api->DRD[5] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x002cUL - vMemOffset);
TASK_ATA_api->DRD[6] = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0030UL - vMemOffset);
TASK_ATA_api->NumVar = 12;
TASK_ATA_api->var = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrVarTab) - vMemOffset);
TASK_ATA_api->NumInc = 6;
TASK_ATA_api->inc = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrVarTab) + (4*24) - vMemOffset);
TASK_ATA_api->AddrEnable = &(TASK_ATA_api->var[0]);
TASK_ATA_api->IncrBytes = (volatile sint16 *)&(TASK_ATA_api->inc[0])+1;
TASK_ATA_api->BDTableBase = &(TASK_ATA_api->var[1]);
TASK_ATA_api->IncrDst = (volatile sint16 *)&(TASK_ATA_api->inc[1])+1;
TASK_ATA_api->BDTableLast = &(TASK_ATA_api->var[2]);
TASK_ATA_api->IncrSrc = (volatile sint16 *)&(TASK_ATA_api->inc[2])+1;
TASK_ATA_api->BDTableStart = &(TASK_ATA_api->var[3]);
TASK_ATA_api->Bytes = &(TASK_ATA_api->var[4]);
}
void init_dma_image_TASK_CRC16_DP(uint8 *taskBar, sint64 vMemOffset)
{
uint8 *vMem_taskBar = (taskBar - vMemOffset);
TASK_CRC16_DP_api->TaskNum = 6;
TASK_CRC16_DP_api->PtrStartTDT = (volatile uint32 *)(vMem_taskBar + 0x00c0UL);
TASK_CRC16_DP_api->PtrEndTDT = (volatile uint32 *)(vMem_taskBar + 0x00c4UL);
TASK_CRC16_DP_api->PtrVarTab = (volatile uint32 *)(vMem_taskBar + 0x00c8UL);
TASK_CRC16_DP_api->PtrFDT = (volatile uint32 *)(vMem_taskBar + 0x00ccUL);
TASK_CRC16_DP_api->PtrCSave = (volatile uint32 *)(vMem_taskBar + 0x00d8UL);
TASK_CRC16_DP_api->TaskPragma = (volatile uint8 *)(TASK_CRC16_DP_api->PtrFDT)+3;
TASK_CRC16_DP_api->NumDRD = 9;
TASK_CRC16_DP_api->DRD[0] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0004UL - vMemOffset);
TASK_CRC16_DP_api->DRD[1] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0008UL - vMemOffset);
TASK_CRC16_DP_api->DRD[2] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0014UL - vMemOffset);
TASK_CRC16_DP_api->DRD[3] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0018UL - vMemOffset);
TASK_CRC16_DP_api->DRD[4] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0024UL - vMemOffset);
TASK_CRC16_DP_api->DRD[5] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0028UL - vMemOffset);
TASK_CRC16_DP_api->DRD[6] = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_api->PtrStartTDT) + 0x0034UL - vMemOffset);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -