pdk中只提供了tcp_A和tcp_B的例程。
根据例程修改的emulator初始化函数为:
FUNC_STATE enable_tcp3d (Tcp3d_Region_Sel region_num)
{
#ifndef SIMULATOR_SUPPORT
/* TCP3D power domain is turned OFF by default.
* It needs to be turned on before doing any TCP3D device register access.
* This is not required for the simulator. */
UINT CSL_PSC_PD_TCP3D,CSL_PSC_LPSC_TCP3D;
if ((int)region_num == 0)
{
CSL_PSC_PD_TCP3D = CSL_PSC_PD_TCP3D_A;
CSL_PSC_LPSC_TCP3D = CSL_PSC_LPSC_TCP3D_A;
}
else if((int)region_num == 1)
{
CSL_PSC_PD_TCP3D = CSL_PSC_PD_TCP3D_B;
CSL_PSC_LPSC_TCP3D = CSL_PSC_LPSC_TCP3D_B;
}
else if(((int)region_num == 2)) //这里有问题
{
CSL_PSC_PD_TCP3D = CSL_PSC_PD_BCP_FFTC_C_TCP3D_C;
CSL_PSC_LPSC_TCP3D = CSL_PSC_LPSC_BCP_FFTC_C_TCP3D_C;
}
/* Set TCP3D Power domain to ON */
CSL_PSC_enablePowerDomain (CSL_PSC_PD_TCP3D);
/* Enable the clocks too for TCP3D */
CSL_PSC_setModuleNextState (CSL_PSC_LPSC_TCP3D, PSC_MODSTATE_ENABLE);
/* Start the state transition */
CSL_PSC_startStateTransition (CSL_PSC_PD_TCP3D);
/* Wait until the state transition process is completed. */
while (!CSL_PSC_isStateTransitionDone (CSL_PSC_PD_TCP3D));
..............
}
对于tcp_A,我们可以使用CSL_PSC_PD_TCP3D_A和CSL_PSC_LPSC_TCP3D_A;对于tcp_B,同样有对应的Definitions。
可是对于TCP3D_C, 却没有对应CSL_PSC_PD_TCP3D 、CSL_PSC_LPSC_TCP3D的Definitions,导致tcp3d_C对应的区域0x35020000 和0x35600000无法访问。
请教专家:
tcp3d_C是这么用的吗?如果是的,那该如何进行初始化呢?