我这边使用28035芯片调试一个电源项目 遇到了芯片在特定工况下跑飞死机的情况(通过设置GPIO口,观察到其不进ADC中断或者是CLA中断)
目前是排查了很久都没有找到原因 由于使用了芯片的CLA 所以麻烦帮忙看下我的程序中 CLA配置是否正确 想排除下CLA配置问题的影响 谢谢
user5997033:
@Susan Yang 由于Ti工程师中您可以直接私信 我就直接私信您了哈麻烦帮我看一下 谢谢
,
Susan Yang:
您是直接私信了工程?我看了一下,没有收到工程
,
user5997033:
不好意思 刚才私信了哈 有问题我们可以讨论 谢谢
,
user5997033:
Susan YANG 请问您收到工程了吗?
,
Susan Yang:
收到了。我是用controlcard测试了一下,是可以进入CLA中断的,但是一直卡在下面的语句。
请问您该句代码是实现什么功能呢?为何要这样设置?
,
user5997033:
为何会卡在那句话呢?我这边测试来看是没有卡住的。 另外 这是想作一个主CPU给出的标志位 ,当时想的是CPU来控制 我的CLA中算法是否执行。所以定义将这两个标志位定义为如下图的格式样子。就是需要CLA读取 CPU发出的条件 所以这样配置的。这种用法有问题吗
,
user5997033:
顺便再问一下其他我的CLA相关的配置有没有问题呢?还有就是如果是配置错误可能会导致我的芯片在某些工况下进不去中断吗?因为根据我的实验波形来看当芯片跑飞时CLA中断和ADC中断都停止了的
,
user5997033:
(function(id)
{var v = document.getElementById(id);var op = v.style.position, ol = v.style.left, or = v.style.right, fe = [];var nodeLimit = 50;checkVideo = function() {if (!v.canPlayType || v.error) {var bound = 0;while (v.childNodes.length > 0 && bound < nodeLimit) {bound++;if (v.childNodes[0].nodeName != 'SOURCE') {v.parentNode.insertBefore(v.childNodes[0], v);}}v.parentNode.removeChild(v);} else if (v.readyState == 0) {window.setTimeout(checkVideo, 249);}},checkVideoRendered = function() {if (v.networkState == 1 && v.readyState == 4) {v.style.position = op;v.style.left = ol;v.style.right = or;for (var i = 0; i < fe.length; i++) {fe[i].parentNode.removeChild(fe[i]);}} else {window.setTimeout(checkVideoRendered, 249);}}if (navigator.userAgent.indexOf('iPad') == -1 && navigator.userAgent.indexOf('iPhone') == -1 && navigator.userAgent.indexOf('iPod') == -1) {window.setTimeout(checkVideo, 249);}
})('v_5ff0c65c3da34289870aef98d5c68352');您好 Susan 我这边又对我的程序进行了测试 发现我使用仿真器在线调试我的CLA程序时 我并没有设置在线调试CLA(没有设置单步运行) 但是看到的确实 CLA程序 每次停下来又开始自动运行 停下来的那一句代码点也不一样(我录制了一个视频给您看下)。 但是我在进ADC中断时拉高GPIO口 才CLA task2 ISR中置低GPIO口 波形上看其工作频率又是正确的 这是为什么呢??最后 ,感谢Susan您的支持 谢谢
,
user5997033:
Susan Yang 您有空的时候再帮我看下我的CLA配置相关的问题哈非常感谢
,
user5997033:
Susan YangSusan请问您为何一直不回复我呢?(我看您也在回复其他的帖子….)
,
Susan Yang:
我正在看您的帖子……
抱歉,回复可能有些晚了。
1 请问您之前所说的“遇到了芯片在特定工况下跑飞死机的情况”
特定工况指的是什么呢?
2 关于cla debug,您可以看一下 software-dl.ti.com/…/debugging.html
3 目前暂时没有发现您的CLA配置有问题
,
user5997033:
我说的特定工况 之前也发过帖子询问过连接如下: e2echina.ti.com/…/202747
,
user5997033:
另外 我没有目前的实验现象来看 就是 如果使用CLA发送固定PWM波芯片会偶然出现不进中断的情况 但是如果关闭CLA初始化 只在ADC中断中配置 试了很多次 就没有出现不进中断 跑飞的现象了。。。。。那还有就是昨天您说的我的CLA程序会停在特定的一句话哪里回复是因为用了主CPU发一个标志位给CLA就是我的那个标志位用法有没有问题呢?、
,
Susan Yang:
我看了下您的工程,编译出了2个out文件:
0005_Digital_Control_PFC_20210512 以及 0005_Digital_Control_PFC_20210513
我现在烧录的是0005_Digital_Control_PFC_20210513,在C28调试时,不能单步或者全速,会有提示
Break at address "0x3ff599" with no debug information available, or outside of program code.您现在也是这样吗?
“主CPU发一个标志位给CLA ” 我没有这样用过,但是在cla内使用CCS的watch窗口观察, CLA_System_ON_Flag 和CPU_System_ON_Flag两者一直不相同,所以会卡在这里
,
user5997033:
1.两个out文件随便烧录一个都可以基本都是一样的。。
2.我的C28调试 可以单步调试但是点击全速调试后不能再次停在那个断点
3.CLA_System_ON_Flag 和CPU_System_ON_Flag这个两个值应该是一样的啊、我才CLA程序里面将 CPU_System_ON_Flag的值赋值给了 CLA_System_ON_Flag了得。
,
user5997033:
另外还有一个问题: 4. 为何我的CAL调试 我没有添加 __mdebugstop();语句但是在调试界面能够看到CLA一会自动启动 然后又自动运行呢就像我昨天发的视频那样?
,
Susan Yang:
“3. CLA_System_ON_Flag 和CPU_System_ON_Flag 这个两个值应该是一样的啊、 我才CLA程序里面将 CPU_System_ON_Flag的值赋值给了 CLA_System_ON_Flag了得。”
理论上是这样,但是在CCS内查看变量,一直卡在这一句,这一句不能执行,所以两者是不同的值
,
user5997033:
我这边调试来看这两个是一样的值呢这句话是执行了的还有就是我前面提问的2和4这个是什么原因导致的呢
,
Susan Yang:
您现在使用的是外部晶振?我在调试C28时,会卡在//// Select Internal Oscillator 1 as Clock Source (default), and turn off// all unused clocks to conserve power.//
//IntOsc1Sel();ExtOscSel();“但是在调试界面能够看到CLA一会自动启动 然后又自动运行呢 ”
应该是某些标志或中断会不停触发CLA,导致这样的现象
抱歉,基于开发板和您的例程,我无法复现您的现象
,
user5997033:
是的 我现在使用的是外部晶振但是我刚刚验证了我改为内部晶振 实验现象也是一样的还是会出现芯片跑飞的现象。。。
,
user5997033:
并且 您那边如果改为内部时钟的话能够进行全速调试吗?我这边改为内部时钟后仍然是点击全速后 就不能再停在我的那个断点了
,
user467873:
CLA使用中,运行一段时间后,就触发不了了,是不是CLA有什么问题啊?
,
user5997033:
CLA配置出发源选择的是什么?
,
Susan Yang:
我明天使用内部时钟测试后给您回复
,
user467873:
触发源选择的TIMR0的周期中断触发,出问题时,TIMR0的中断正常,浮点数每次加0.1f,大概加到600000.0f次左右就不累加了。