一 TCB编程
void SetTCB0(long DI_Source, long DX_Source, long DY_Source, long DP_Source, long DI_Destin, long DX_Destin, long DY_Destin, long DP_Destin)
{
volatile __builtin_quad TCB_Clear, TCB_Set;// 这个函数是合并两个64-bits的数,之所以<<32而非64,是因为long long是64-bits的.另外TCB_DISABLE宏为0x00000000
TCB_Clear = __builtin_compose_128((long long)TCB_DISABLE << 32, 0);//这个函数是按着4-words(128-bits)来写
__builtin_sysreg_write4(__DCS0, TCB_Clear);
__builtin_sysreg_write4(__DCD0, TCB_Clear);
TCB_Set = __builtin_compose_128(((long long)DX_Source << 32) | DI_Source, ((long long)DP_Source << 32) | DY_Source);
__builtin_sysreg_write4(__DCS0, TCB_Set);
TCB_Set = __builtin_compose_128(((long long)DX_Destin << 32) | DI_Destin, ((long long)DP_Destin << 32) | DY_Destin );
__builtin_sysreg_write4(__DCD0, TCB_Set);
}
二 Flyby transactions are used by the DMA for transferring data between an external I/O device and external SDRAM memory (for example, DMA may be programmed to transfer data from an A/D device to the SDRAM).
An access is requested when the external device pulls DMARx low.
三 对对对
四 对对对
时间: 2024-10-14 07:44:18