hello
我测试了\Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程,均可以正确执行。
根据自己项目的设计,修改了dma_chain_test.c。要求实现3个通道的chain,对前两个通道使用EDMA3_DRV_requestChannel这个函数的时候,可以正常分配,但是对自己新加的第三个通道使用这个函数的时候,返回了错误码-132(0xFFFFFF7C)无法分配。
使用的实现代码和用例的一致:
tcc3 = EDMA3_DRV_TCC_ANY;
ch3Id = EDMA3_DRV_DMA_CHANNEL_ANY;
if (result == EDMA3_DRV_SOK)
{
result = EDMA3_DRV_requestChannel (hEdma, &ch3Id, &tcc3,
(EDMA3_RM_EventQueue)0,
&callback1, NULL);
}
请大侠指教!谢谢!
Andy Yin:
您好,
建议单步跟踪到函数内部分析到底什么原因导致的出错
Thomas Yang1:
回复 Andy Yin:
Hi hanzhi zhou
可以在pdk/mcsdk的source code中找到 EDMA3_DRV_requestChannel 函数,进而代步跟踪,具体分析
hanzhi zhou:
回复 Thomas Yang1:
Hi Andy & Thomas:
我单步进去以后,执行到调用EDMA3_rm_allocResource函数后返回了错误值-162“all resources of this type not availavble error”。
此外,ccs5自带的用例工程无法编译通过,路径是edma3_lld_02_11_02_04\examples\edma3_driver\evm6670\sample_app,我把引用头文件的路径添加进去以后编译提示:std.h line76 #error xdc_target_types__ must be defined to name a target-specific header containing definitions of xdc_Int8, xdc_Int16, …(这个错误信息就是这一行的代码)
我是将此工程里的dma_chain.c文件放在已经编译成功tcp3e/d工程中才能进行测试的,同时产生了最开始的问题。
请指教。谢谢!
chen lisa:
您好:我现在也在看EDMA部分的内容,想问下,Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程怎么建立的,是在EVM板上运行的还是使用CCS仿真的呢?由于是头一次接触DSP,所以好多不懂呀,望指教,谢谢!
Armstrong:
hanzhi zhou
hello
我测试了\Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程,均可以正确执行。
根据自己项目的设计,修改了dma_chain_test.c。要求实现3个通道的chain,对前两个通道使用EDMA3_DRV_requestChannel这个函数的时候,可以正常分配,但是对自己新加的第三个通道使用这个函数的时候,返回了错误码-132(0xFFFFFF7C)无法分配。
使用的实现代码和用例的一致:
tcc3 = EDMA3_DRV_TCC_ANY; ch3Id = EDMA3_DRV_DMA_CHANNEL_ANY;
if (result == EDMA3_DRV_SOK) { result = EDMA3_DRV_requestChannel (hEdma, &ch3Id, &tcc3, (EDMA3_RM_EventQueue)0, &callback1, NULL); }
请大侠指教!谢谢!
Xiao Han:
回复 hanzhi zhou:
您是怎么单步跟进去的,我找到源代码,怎么没法跟踪进去?
Yusheng Chen:
回复 Xiao Han:
请检查工程属性里优化选项设置
单步跟踪看发生了什么情况,
另要明白edma的工作机制
Xiao Han:
回复 Yusheng Chen:
我把EDMA driver 库的源代码加进来,可以跟踪了。但我不知道这是不是最简单的方法。谢谢你