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

sysbios 任务切换时出现abort

这个abort出现在任务切换时,不是堆栈溢出,任务栈剩余空间还很充足,也没踩内存,调查了很久,不知道啥原因。

发现一些现象如下:

1、发现开O3优化就不会出现这个问题。不开就一定会出现。

2、发现跟信号量有关,只要在任务里使用了Semaphore相关的函数就会出现。当然开O3优化也不会出现。

求各位大佬指点迷津。

Nancy Wang:

应该跟任务中使用Semaphore没有关系,是可以使用的。
尝试简化代码看看,再逐步添加一些功能。
缩小优化范围看看,比如对某些文件进行优化,优化文档也可以看一下。
www.ti.com/…/sprui04b.pdf
另外建议结合RTOS下的几个工具看一下。
software-dl.ti.com/…/rov.html
www.ti.com/…/spruh43f.pdf

,

6490767:

现在有了新发现,就是任务中直接使用Semaphore_pend是没问题的(任务切换时不会出现abort);
但是将Semaphore_pend封装在另一个函数里(这个函数在本文件),再调用封装的函数就会abort,封装的函数很简单,单步调试对比Semaphore_pend的入参,也没什么问题,跟直接调用Semaphore_pend的入参是一样的。

赞(0)
未经允许不得转载:TI中文支持网 » sysbios 任务切换时出现abort
分享到: 更多 (0)