工具/软件:TI C/C++编译器
我们正在为一位客户提供支持,该客户报告他们在设备上遇到重置问题,并且根据他们捕获的数据,这似乎与DSP SPLOOP指令有关。
我们想检查这是否是已知问题,以及避免此问题的正确方法是什么。 代码I问题是以前使用旧版CGT编译的旧版代码,未发现这一点。 目前还不清楚为什么会出现这种情况,如果与新的编译器(v.7.4 13)有任何关系, 我们想确认一下,因为以前有一个问题,在SPLOOP中报告了类似的内容:
以下是C674x DSP的症状和读数:
EFR = 0x4000万
NRP = 0xc7975fba
NTSR = 0x0.142万f
IERR = 0x0万
查看DSP内核674文档,它显示
1. EFR show exf flag =1,检测到异常。
2. IERR显示它不是内部异常。
3. NTSR位14:SPLOOP中断导致SPLX状态问题
问题:
1.编译器文档显示:
由于异常而终止的SPLOOP无法正确恢复。 NTSR中的SPLX位应在返回前验证为0。似乎客户正面临相同的问题,因为他们无法正确恢复。 那么,是否有办法避免这种情况? HW或编译器是否会在SPLOOP指令期间插入掩码中断?
2. 7.13 1部分 “中断循环缓冲区”指出 ,“在遇到SPLOOP(D/W)指令之前,中断自动被禁用2个周期。 这是否意味着HW在处理SPLOOP期间会实际屏蔽中断? 如果是,则为什么他们看到SPLOOP中断问题? 是否有允许SPLOOP不被中断或缺少任何其他配置的编译器设置?
3. 由于以前没有遇到过这种问题,使用这种传统代码库,他们怀疑这是 由于新的编译器(v 7.4 13)而引起的问题? 如果编译器champs 需要添加任何编译器选项以避免或防止此问题,那么最好从编译器中了解一下。 他们使用编译器选项-im100,这是否有助于避免此问题?
感谢你的帮助。
此致,
拉胡尔
