TI中文支持网
TI专业的中文技术问题搜集分享网站

求助:sysbios中, Hwi_create函数一直阻塞不返回

求助:

     我最近在编写TMS320DM8148的DSP代码时遇到了个问题。想通过中断获取EDMA传输结束状态,可是在使用Hwi_create函数后,Hwi_create函数阻塞在哪里不继续运行,代码如下

#define EDMA_COMPLETION_HWI_ID     20

void hwi_init(Error_Block *err)

 Hwi_Params hwiParams;  

 DEBUG("—> hwi init !\r\n");

 Hwi_Params_init(&hwiParams);  

 hwiParams.arg = EDMA_COMPLETION_HWI_ID;  

 hwiParams.eventId = EDMA_COMPLETION_HWI_ID;  

 hwiParams.enableInt = FALSE;

 DEBUG("—> hwi_create ! !\r\n");  

 hwi0 = Hwi_create(EDMA_COMPLETION_HWI_ID, completion_hwi_handle, &hwiParams, err);  

 if (hwi0 == NULL) {   

     DEBUG("Hwi create failed");

 }

 DEBUG("hwi create ok !\r\n");

}

DEBUG是我通过串口实现的printf功能,在串口中只能看到 —> hwi init ! 和 —> hwi_create的打印,然后程序就不继续执行了,在.cfg 文件中使用的xdc.useModule("ti.sysbios.family.c64p.Hwi");  头文件包含的是#include <ti/sysbios/family/c64p/Hwi.h>。

我使用的EZSDK5.05.2.00,代码是通过修改syslink的example编译和运行的。

因为刚接触TMS320DM8148,所以对这个问题毫无头绪,望大家多多帮忙解决这个问题,谢谢!

Chris Meng:

Liu Han,

han liu2

 hwiParams.arg = EDMA_COMPLETION_HWI_ID;  

 hwiParams.eventId = EDMA_COMPLETION_HWI_ID;  

 hwiParams.enableInt = FALSE;

去掉这部分配置,是否有改善?

另,能否在CCS下静态创建hwi(配置cfg文件)?

han liu2:

回复 Chris Meng:

Chris Meng 您好:

    十分感谢您的回复,我按照您的提示做了如下尝试。

1、去掉hwiParams没有改善

2、我在.cfg 文件总增加如下代码

var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi');

var hwiParams = new Hwi.Params;

Program.global.hwi0 = Hwi.create(20, '&completion_hwi_handle', hwiParams);

但是产生这个错误:

configuring isp.xe674 from package/cfg/isp_pe674.cfg … js: "/home/lsh/share/ti-ezsdk_dm814x-evm_5_05_02_00/dsp-devkit/packages/ti/sysbios/family/c64p/Hwi.xs", line 253: XDC runtime error: ti.sysbios.family.c64p.Hwi/interrupt: index out of range (20)

id = 20 是我在 DM8148 Table 1-97. C674x INTC Default Interrupt Mapping 找到的EDMA3CC的中断号,难道是我理解错误吗?

3、我是刚接触TI的XDCtools的,为了快速上手我选择直接在EZSDK的syslink 例程修改代码用来测试硬件功能,我现在比较担心的是,我的一些编译参数错误而导致的这个问题,所以请您看一下下列编译参数配置是否正确。

SYSLINK_INSTALL_DIR = /ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/syslink_2_20_02_20/packages;

BIOS_INSTALL_DIR = /ti-ezsdk_dm814x-evm_5_05_02_00/dsp-devkit/packages;

IPC_INSTALL_DIR = /ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/ipc_1_24_03_32/packages;

XDC_INSTALL_DIR = /ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/xdctools_3_23_03_53/packages

CGTOOLS = /ccs/ccs_install/ccsv6/tools/compiler/c6000_7.4.14

CC = $(CGTOOLS)/bin/cl6x -c

AR = $(CGTOOLS)/bin/ar6x rq

LD = $(CGTOOLS)/bin/lnk6x –abi=eabi

han liu2:

回复 Chris Meng:

Chris Meng,

问题以及解决,非常感谢。

chen wei53:

回复 han liu2:

你好,我现在在做c6748的UPP传输,在使用hwi中断时也出现了和你一样的问题,即hwi_create一直卡着这里。请问你最后是怎么解决的,谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » 求助:sysbios中, Hwi_create函数一直阻塞不返回
分享到: 更多 (0)