📄 tsip_main.c
字号:
*(Uint32 *) (xbitmapa0 + j/16 + GEM_ID * 0x1000000/4 + 0x10000000/4) = bitmap;
*(Uint32 *) (rbitmapa0 + j/16 + GEM_ID * 0x1000000/4 + 0x10000000/4) = bitmap;
bitmap = 0;
}
}
bitmappos += bitmapcount;
// VAL_TRACE(bitmappos);
xchannela.bitmap = ((xbitmapa0 + GEM_ID * 0x1000000/4 + 0x10000000/4));
rchannela.bitmap = (rbitmapa0 + GEM_ID * 0x1000000/4 + 0x10000000/4);
#if 0
DataInc =0x04030201;
for (j = 0; j < 8 * 16; j++)
{
bitmap = (xbitmapa0 [j/16]);
bitmapcount = 0;
InputDataInc = 0;
VAL_TRACE(j);
VAL_TRACE(bitmap);
if(((bitmap >> ((j%16) * 2)) & 0x03) != 0)
{
InputDataInc |= (DataInc << ((j %4)* 8));
DataInc++;
VAL_TRACE(InputDataInc);
VAL_TRACE(DataInc);
VAL_TRACE(bitmapcount);
VAL_TRACE(((bitmap >> ((bitmapcount%16) * 2)) & 0x03));
}
bitmapcount++;
VAL_TRACE(InputDataInc);
VAL_TRACE(DataInc);
VAL_TRACE(bitmapcount);
VAL_TRACE(((bitmap >> ((j%16) * 2)) & 0x03));
if ((j % 4) == 3)
{
VAL_TRACE(0x1013);
VAL_TRACE(j);
VAL_TRACE(SrcDataIncPtr + (j/4) + 1 + GEM_ID * 0x1000000/4 + 0x10000000/4);
*(Uint32*)(SrcDataIncPtr + (j/4) + 1 + GEM_ID * 0x1000000/4 + 0x10000000/4) = InputDataInc;
}
}
#endif
xchannelb.baseaddr = (Uint32) (Xmt0bSrcAddr + GEM_ID * 0x1000000 + 0x10000000);
xchannelb.falloc = 0x10;
xchannelb.fsize = 0x10;
xchannelb.fcount = 0x4;
for (j = 0; j < CSL_TSIP_BITMAP_SIZE; j++) {
*(Uint32 *) (xbitmapb0 + j + GEM_ID * 0x1000000/4 + 0x10000000/4) = 0x0;
// *(Uint32 *) (xbitmapb0 + j ) = 0x0;
}
xchannelb.bitmap = ((xbitmapb0 + GEM_ID * 0x1000000/4 + 0x10000000/4));
// xchannelb.bitmap = ((xbitmapb0 ));
rchannelb.baseaddr = (Uint32) (Rcv1bDestAddr + GEM_ID * 0x1000000 + 0x10000000);
// rchannelb.baseaddr = (Uint32) (Rcv1bDestAddr);
rchannelb.falloc = 0x10;
rchannelb.fsize = 0x10;
rchannelb.fcount = 0x1;
for (j = 0; j < CSL_TSIP_BITMAP_SIZE; j++) {
*(Uint32 *) (rbitmapb0 + j + GEM_ID * 0x1000000/4 + 0x10000000/4) = 0x0;
// *(Uint32 *) (rbitmapb0 + j ) = 0x0;
}
rchannelb.bitmap = (rbitmapb0 + GEM_ID * 0x1000000/4 + 0x10000000/4);
// rchannelb.bitmap = (rbitmapb0 );
tsipSetup.xchana = (CSL_TsipChanSetup*) &(xchannela);
tsipSetup.xchanb = (CSL_TsipChanSetup*) &(xchannelb);
tsipSetup.rchana = (CSL_TsipChanSetup*) &(rchannela);
tsipSetup.rchanb = (CSL_TsipChanSetup*) &(rchannelb);
// VAL_TRACE(*(tsipSetup.ChannelNumber));
}
void CID_Init()
{
Uint32 i; //,j,k;
for (i = 0; i <= Test_List[0].xmt_frame_count ; i++) {
*(Uint32*)(Xmt0aSrcAddr +
i * (Test_List[0].xmt_frame_size + 9)/4 +
GEM_ID * 0x1000000/4 + 0x10000000/4) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
for (i = 0; i <= Test_List[1].xmt_frame_count ; i++) {
*(Uint32*)(Xmt1aSrcAddr + i * (Test_List[1].xmt_frame_size + 9)/4
+ GEM_ID * 0x1000000/4+ 0x10000000/4 ) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
for (i = 0; i <= Test_List[2].xmt_frame_count ; i++) {
*(Uint32*)(Xmt2aSrcAddr + i * (Test_List[2].xmt_frame_size + 9)/4
+ GEM_ID * 0x1000000/4 + 0x10000000/4) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
for (i = 0; i <= Test_List[3].xmt_frame_count ; i++) {
*(Uint32*)(Xmt3aSrcAddr + i * (Test_List[3].xmt_frame_size + 9)/4
+ GEM_ID * 0x1000000/4 + 0x10000000/4) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
for (i = 0; i <= Test_List[4].xmt_frame_count ; i++) {
*(Uint32*)(Xmt4aSrcAddr + i * (Test_List[4].xmt_frame_size + 9)/4
+ GEM_ID * 0x1000000/4 + 0x10000000/4) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
for (i = 0; i <= Test_List[5].xmt_frame_count ; i++) {
*(Uint32*)(Xmt5aSrcAddr + i * (Test_List[5].xmt_frame_size + 9)/4
+ GEM_ID * 0x1000000/4 + 0x10000000/4) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
CSL_FINST(hTsip0->regs->XCHEN[0].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[0].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->XCHEN[1].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[1].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->XCHEN[2].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[2].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->XCHEN[3].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[3].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->XCHEN[4].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[4].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->XCHEN[5].XCHEN, TSIP_XCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->XCHEN[5].XCHEN, TSIP_XCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[0].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[0].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[1].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[1].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[2].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[2].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[3].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[3].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[4].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[4].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
CSL_FINST(hTsip0->regs->RCHEN[5].RCHEN, TSIP_RCHEN_CHENB, ENB);
CSL_FINS(hTsip0->regs->RCHEN[5].RCHEN, TSIP_RCHEN_CID, ((TSIP_ID + GEM_ID << 24)));
}
#if 0
void ComputeExpDataInc()
{
Uint32* datainput0ptr;
Uint32* datainput1ptr;
Uint32* Expdata0ptr;
Uint32* Expdata1ptr;
Uint32 i,j,k;
datainput0ptr = (Uint32*) (Xmt0aSrcAddr + GEM_ID * 0x1000000/4 + 0x10000000/4);
datainput1ptr = (Uint32*) (Xmt1aSrcAddr + GEM_ID * 0x1000000/4 + 0x10000000/4);
Expdata0ptr = (Uint32*) (ExpectedBuffer0 + GEM_ID * 0x1000000/4 + 0x10000000/4);
Expdata1ptr = (Uint32*) (ExpectedBuffer1 + GEM_ID * 0x1000000/4 + 0x10000000/4);
for(i = 0; i < Test_List[0].xmt_frame_count ; i++)
{
*(Uint32*)(Expdata0ptr++) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
*(Uint32*)(Expdata1ptr++) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
for(j = 0; j < CSL_TSIP_BITMAP_SIZE; j++)
{
switch(xbitmapa0[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
switch(xbitmapa1[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
switch(xbitmapa2[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
switch(xbitmapa3[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
switch(xbitmapa4[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
switch(xbitmapa5[j])
{
case 1 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 2 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
case 3 :
{
*(Uint32*)(Expdata0ptr++) = *(Uint32*)(datainput0ptr++) ;
break;
}
default :
{
break;
}
}
}
*(Uint32*)(Expdata0ptr++) = (((TSIP_ID + GEM_ID << 24)) | (i+1));
}
}
#endif
void main(
void
)
{
Uint32 result = FALSE;
// psc_enable(PSC_TSIP0);
// wait_domain_enable(PSC_TSIP0);
result = DoTest();
if (result == FALSE)
printf("Functionality Test... Failed");
}
/********************NG NEW ***********/
CSL_GpioHandle hGpio;
void set_design_done () {// CSL_Status intStat;
// CSL_GpioPinConfig config;
// CSL_GpioPinNum pinNum;
CSL_Status status;
// CSL_GpioContext pContext;
CSL_GpioObj gpioObj;
// CSL_GpioHwSetup hwSetup;
// gpio_handle_t gpio_handle;// gpio_handle = gpio_open(gpio_instance); hGpio = CSL_gpioOpen(&gpioObj, CSL_GPIO, NULL, &status);
// gpio_dir_setup ( gpio_handle,// gpio_out_pin_num,// GPIO_DIR_OUT,// gpio_bnum );
#if 0
config.pinNum = (CSL_GpioPinNum)gpio_out_pin_num;
config.trigger = CSL_GPIO_TRIG_RISING_EDGE;
config.direction = CSL_GPIO_DIR_OUTPUT;
status = CSL_gpioHwControl(hGpio, CSL_GPIO_CMD_CONFIG_BIT, &config);
#endif
//CSL_FINS (hGpio->regs->DIR, GPIO_DIR_DIR12, GPIO_DIR_OUT);
CSL_FINS (hGpio->regs->DIR, GPIO_DIR_DIR12, 0x0);
// gpio_setclr_data ( gpio_handle,// gpio_bnum,// gpio_out_pin_num,// GPIO_SET_BIT );// status = CSL_gpioHwControl (hGpio, CSL_GPIO_CMD_SET_BIT, &gpio_out_pin_num);
CSL_FINS (hGpio->regs->SET_DATA, GPIO_SET_DATA_SET12, 1);
// while((gpio_handle->gpio_regs->BANK.IN_DATA & (1 << gpio_in_pin_num)) == 0){ while ((hGpio->regs->IN_DATA) == 0){
; }// gpio_setclr_data ( gpio_handle,// gpio_bnum,// gpio_out_pin_num,// GPIO_CLR_BIT );#if 0
status = CSL_gpioHwControl(hGpio, CSL_GPIO_CMD_CLEAR_BIT, &gpio_out_pin_num);
#endif
CSL_FINS (hGpio->regs->CLR_DATA, GPIO_CLR_DATA_CLR12, 1);
// while((gpio_handle->gpio_regs->BANK.IN_DATA & (1 << gpio_in_pin_num)) != 0){ while((hGpio->regs->IN_DATA ) != 0){ ; }// gpio_close(gpio_handle); CSL_gpioClose(hGpio); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -