|

楼主 |
发表于 2024-12-2 17:38:20
|
显示全部楼层
你好!也就是说如果对cache了解的话开启dma使用也是能正常枚举及使用是吧,是需要什么操作呢?已尝试加入以下代码,修改sct文件并定义CONFIG_USB_DWC2_DMA_ENABLE,然后不能枚举,去掉两个Enable Cache就可以了,但是调试时发现GAHBCFG寄存器的DMAEN位开着,此时枚举失败。同一个代码不调试正常运行的时候就传输正常,然后我打印GAHBCFG寄存器的值发现是0x7217 54C3,很奇怪的值,手册中默认该寄存器31:9都是0才对。但感觉挺奇怪的,为什么就USB的DMA功能被官方ban掉,连个参考的例程都不出
/////////////////////////////////////
cpu_mpu_config(0, MPU_Normal_NonCache, 0x24070000, MPU_REGION_SIZE_64KB);
/* USER CODE END 1 */
/* Enable I-Cache---------------------------------------------------------*/
SCB_EnableICache();
/* Enable D-Cache---------------------------------------------------------*/
SCB_EnableDCache();
///////////////////////////////////// |
|