`dc2018 发表于 2020-4-9 19:20:45

关于RTX5的提问:BOOT和APP都使用了最新封装的RTX5

BOOT和APP都使用了最新封装的RTX5,
在BOOT里面如果在创建了多任务, 在执行osKernelStart(); 前跳转APP,或者裸机跳转, APP可以正常执行.
如果BOOT里面一旦执行了osKernelStart();
跳转到APP, 在APP运行osKernelInitialize(); 就会触发硬件中断, 明显是两个RTX有冲突造成的.
跳转前已关闭了可能有影响的中断:
HAL_SuspendTick();
__set_PRIMASK(1);
SCB_DisableICache();      
SCB_DisableDCache();      
HAL_NVIC_DisableIRQ(PendSV_IRQn);
HAL_NVIC_DisableIRQ(SysTick_IRQn);

我想在跳转前把所有任务删除, 但是封装后的RTX5好像没有删除任务功能?
没找到删除任务的函数.
或者有什么办法把BOOT的RTX系统停止?

eric2013 发表于 2020-4-9 19:51:48

osThreadTerminate       

`dc2018 发表于 2020-4-9 20:08:38

eric2013 发表于 2020-4-9 19:51
osThreadTerminate

这个函数我试过, 还是硬件中断.

eric2013 发表于 2020-4-9 20:13:45

`dc2018 发表于 2020-4-9 20:08
这个函数我试过, 还是硬件中断.

我回复的是RTX5的任务关闭API是osThreadTerminate      。

而你程序问题的解决,参考此贴:

【解决】Bootloader使用RTX无法跳转应用
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93857&fromuid=58
(出处: 硬汉嵌入式论坛)

`dc2018 发表于 2020-4-9 20:16:17

eric2013 发表于 2020-4-9 20:13
我回复的是RTX5的任务关闭API是osThreadTerminate      。

而你程序问题的解决,参考此贴:


这贴我看过了, 也没有解决方法.
看来只能裸机了.
谢谢硬汉!

eric2013 发表于 2020-4-9 20:16:39

帮你改下了下题目,方便后期检索:handshake

`dc2018 发表于 2020-4-9 20:18:14

eric2013 发表于 2020-4-9 20:16
帮你改下了下题目,方便后期检索

好滴! :handshake

eric2013 发表于 2020-4-9 20:40:26

`dc2018 发表于 2020-4-9 20:18
好滴!
做了个APP和boot都使用RTX5的案例,明天我分享下。

eric2013 发表于 2020-4-10 01:35:57

分享个基于STM32H7的BOOT和APP代码都使用RTX5的案例,相互之间任意跳转
http://www.armbbs.cn/forum.php?mod=viewthread&tid=97247&fromuid=58
(出处: 硬汉嵌入式论坛)

morning_enr6U 发表于 2020-4-14 22:10:34

{:8:}
页: [1]
查看完整版本: 关于RTX5的提问:BOOT和APP都使用了最新封装的RTX5