USB论坛
直播中

Slipping

7年用户 7经验值
擅长:嵌入式技术 处理器/DSP 接口/总线/驱动
私信 关注
[讨论]

TMS320C6748:USB CPPI DMA发送多组数据缓存长度为4M的数据,发送第2组数据时会出现死机的现象!!!!

大家好:
      我最近在做关于USB CPPI DMA,实现传输大容量的数据,根据TMS3320C6748的芯片手册了解到USB CPPI DMA可以实现单条数据长度最大可以达到4M的数据缓存,我现在可以实现第一条数据长度为4M数据缓存时,可以直接进行发送,当第二次在发送4M数据时就会出现死机的现象,主要是卡在USB控制状态寄存器中的位判断,在判断FIFO是否为空时没有判断通过导致代码死机。

问题:大家有遇到和我一样的或相似的问题吗?大家是如何解决的???

代码如下:
初始化CDC设备总线函数
void tpl_u***_cdc_init(void)
{
        CacheEnableMAR((unsigned int)0xC0001000, (unsigned int)0x08000000);
         CacheEnableMAR(L1DCFG_L1DMODE_32K | L1PCFG_L1PMODE_32K | L2CFG_L2MODE_256K);
         
         USBBufferInit((tUSBBuffer *)&g_sRxBuffer);
         USBDCDInit(USB_INSTANCE, (tUSBDCDCDevice *)*g_sCDCDevice);         
         Cppi41DmaInit(USB_INSTANCE, epInfo, NUMBER_OF_ENDPOINTS);
}
上面的函数时注册CDC设备总线的初始化函数,里面有DMA初始化操作,注册的DMA模式为Linux CDC,这里不贴出此部分配置。
下面的内容主要是在USB中断中处理的一些操作流程,只有部分代码内容:
for(j = 0; j < 16;j ++)
{
         dataBuf = (unsigned char *)cppiDmaAllocnBuffer(2048);//申请DMA缓存
          for(i = 0; i < 2048*1024; i++)
          {
                     dataBuf [i] = (i + 1)%256;
         }
         doDmaTxTransfer(USB_INSTANCE, dataBuf , 2048*1024, g_sCDCDevice.psPrivateCDCSerData->ucBulkINEndpoint);
          enableCoreTxDMA(USB_INSTANCE, g_sCDCDevice.psPrivateCDCSerData->ucBulkINEndpoint);//打开DMA通道
          delay(0xFFFFFFFF);//加入延时让DMA数据发送完成
          cppiDmaFreenBuffer((unsigned int *)dataBuf);//释放DMA缓存
          disableCoreTxDMA(USB_INSTANCE, g_sCDCDevice.psPrivateCDCSerData->ucBulkINEndpoint);//关闭DMA通道
          dmaTxCompletion(USB_INSTANCE, g_sCDCDevice.psPrivateCDCSerData->ucBulkINEndpoint);//队列发送完成,退出中断
}
上面的代码是实现的部分程序,主要是使用DMA发送超过4M的数据,目前在测试中发现使用DMA发送超过2M的数据就会出现崩溃的现象,如果使用循环的方式进行发送超过4M的数据,例如8M的数据缓存时,就会出现上述描述的死机现象!!!!


以上代码是基于TMS320C6748 DEMO源码STRATWARE中的USB_DEV_SERIAL!!!!

祝好!

回帖(3)

Slipping

2021-8-9 14:14:37
大家好:
      在之前调试USB驱动的过程有有遇到与之一样或相似的问题吗??

祝好!!!
举报

acdqacdq11

2021-12-29 09:18:57
您好,很抱歉没有遇到类似问题,而且还有个问题想请教您,请问 CacheEnableMAR函数是从哪个头文件调用的,头文件需要另外下载吗,为啥我直接使用会提示警告:  function declared implicitly
举报

1293440078

2022-6-29 11:20:48
好东西,谢谢楼主!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分