This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:SYS/BIOS 退出帮助

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/572409/rtos-sys-bios-exit-help

工具/软件:TI-RTOS

您好!

我们正在尝试从 SYS/BIOS 中"正常"退出-确保所有线程以及 SYS/BIOS 设置的其他系统资源(包括硬件中断)都应终止。

我们在 main()中调用 BIOS_start()来启动 SYS/BIOS,在某些情况下,我们希望终止 SYS/BIOS 及其设置的所有内容,并且我们希望在调用 BIOS_start()后立即返回 main,并执行更多操作 。

我们已经尝试调用 BIOS_exit(),希望在所有线程和资源都被终止后,我们可以返回主函数,但它似乎不起作用(查看 ROV,所有资源看起来都可以正常运行)-我们没有返回主函数()。

然后、我们尝试使用 System_atexit (func)注册回调函数。 在调用之后 ,BIOS_exit()函数确实被调用,但资源和线程似乎没有终止,我们永远不会返回到 main()。

您能不能帮助我们正确配置它,以便我们能够正确地终止 SYS/BIOS 并返回到 main()

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    您无法返回到 main()。 您不能这样做的各种原因包括:main 的栈被重新用于 Hwi 栈、因此所有局部变量都消失了。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、谢谢。
    如果我不能返回到 main(),那么剩下的唯一选择就是为 BIOS_exit 注册回调函数,但是在到达该函数后,似乎仍然没有终止所有线程和资源。
    我需要能够分支到一个新程序、该程序会启动其自身的 SYS/BIOS、包括网络堆栈、并且可能会发生冲突(特别是与硬件资源-即) 在 BIOS 退出并重新启动 SYS/BIOS 后,NDK 未正确启动),如果在启动新的 SYS/BIOS 之前,未终止之前的 SYS/BIOS 及其资源的调用。

    我将提供有关如何正确关闭(和重新启动)的建议。

    谢谢