ThreadX 一直卡在调度器里循环 __tx_ts_wait
使用的是threadx-6.1.6_rel、stm32f103rct6,ThreadX的启动汇编文件用硬汉的.c文件进行代替了,任务中没有调用tx_thread_sleep(1)就没有问题,可以一直运行。但是只要调用了tx_thread_sleep(1)就会卡死在图片中的汇编代码里面,硬汉可有帮看看怎么回事吗?:hug:把那个汇编的启动初始化文件改成我这个来做试试。
说干就干,修改ThreadX内核移植的tx_initialize_low_level.s汇编文件为C文件
https://www.armbbs.cn/forum.php?mod=viewthread&tid=100053&fromuid=58
(出处: 硬汉嵌入式论坛)
本帖最后由 惟若晨星 于 2022-10-11 16:27 编辑
eric2013 发表于 2022-10-11 15:59
把那个汇编的启动初始化文件改成我这个来做试试。
说干就干,修改ThreadX内核移植的tx_initialize_low_l ...
我拿GD32f4的改成.c文件试了,也是会卡在等待任务的汇编里面 本帖最后由 惟若晨星 于 2022-10-11 16:28 编辑
eric2013 发表于 2022-10-11 15:59
把那个汇编的启动初始化文件改成我这个来做试试。
说干就干,修改ThreadX内核移植的tx_initialize_low_l ...
汇编和C文件,使用那个汇编的调用tx_thread_sleep就没事,C文件的调用tx_thread_sleep最后会跑到等待任务的汇编代码段里面。 惟若晨星 发表于 2022-10-11 16:25
汇编和C文件,使用那个汇编的调用tx_thread_sleep就没事,C文件的调用tx_thread_sleep最后会跑到等待任务 ...
是不是二楼帖子里面的23和24楼问题。 本帖最后由 惟若晨星 于 2022-10-12 09:22 编辑
eric2013 发表于 2022-10-12 00:41
是不是二楼帖子里面的23和24楼问题。
这个算是吗? 我有遇到过,当时加大任务堆栈解决 庄永 发表于 2022-10-12 21:43
我有遇到过,当时加大任务堆栈解决
后面没试了,我还是用汇编文件了。:handshake 可能是优先级的问题,systick要高于家居pendsv 这个就是idle,threadx不用添加idle task就是因为有这个汇编,当所有其他线程都不ready的时候,就会在这个汇编等待其他线程变为ready,这里面有个开中断的操作,就是为了让中断(比如tick)来激活线程 1997AURORA 发表于 2024-4-7 22:15
这个就是idle,threadx不用添加idle task就是因为有这个汇编,当所有其他线程都不ready的时候,就会在这个 ...
楼主这个问题还有点区别,他这个是卡在这个地方,其他任务不执行了。
页:
[1]