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.

[参考译文] TMS320F28384S:有关不带仅任务 SWI 和 HWI 的 SYSBIOS 项目的问题

Guru**** 2393725 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/986080/tms320f28384s-questions-about-sysbios-project-without-tasks-only-swis-and-hwis

器件型号:TMS320F28384S
Thread 中讨论的其他器件:SYSBIOS

大家好、

我希望在定义消除任务以及在 SYSBIOS 项目中仅使用 SWI 和 HWI 的优缺点方面获得一些帮助。

到目前为止、我了解到:

HWI 和 SWI 必须运行至完成、因此不会永远循环、也不会挂起。 函数或全局变量中可能有许多静态变量来跟踪状态。

HWI 和 SWI 位于系统堆栈上、因此不像任务允许.taskStack 存储器部分那样进行分离。 因此、静态分析/代码跟踪可能会更加困难。

一些问题:

在我可以放置系统堆栈的位置有什么限制、或者它可以达到多大? 让系统堆栈包含多个 RAM 是否存在任何问题?

SysBIOS 中是否有可以通过删除任务来基本消除的模块?

如何影响代码的调试? 我了解单步执行代码将到达 SWI/HWI 上下文的末尾。

感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="213304" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/986080/tms320f28384s-questions-about-sysbios-project-without-tasks-only-swis-and-hwis ]在哪里可以放置系统堆栈或它可以达到多大的容量方面有任何限制吗? 让系统堆栈包含多个 RAM 是否存在任何问题?

    仅限堆栈的常见限制、如堆栈指针的大小。 例如、在 C28x 上、它是16位、因此一些较高的 GSxRAM 无法访问。 可以将其跨越多个连续 RAM 块。

    Unknown 说:
    SysBIOS 中是否有任何模块可以通过删除任务来基本消除?

    我唯一能想到的是创建一个任务的东西是空闲、但是当 BIOS.taskEnabled = false 时、它将在 BIOS_start 函数中创建一个无限循环。

    [引用 userid="213304" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/986080/tms320f28384s-questions-about-sysbios-project-without-tasks-only-swis-and-hwis ]\n 代码调试将受到怎样的影响? 我了解单步执行代码将到达 SWI/HWI 上下文的末尾。

    没有其他事情会想到。 正如您所指出的、由于上下文切换、单步执行可能会有点困难、但您仍然能够使用断点和 ROV。

    惠特尼

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

    尊敬的惠特尼:

    您能否回答或提供一些链接/方向、说明何时是使用 SWI 与任务的最佳时机? 是否有任何与频率或开销相关 的东西、 最好使用其中一个而不是另一个?

    谢谢、

    -Wes

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

    尊敬的惠特尼:

    另一个与 SWI 与任务相关的问题。 如何在此处实施计划? 时钟 SWI 是最低优先级 SWI、对吧? 因此、我希望任何使用时钟的调度都将成为最低优先级(空闲任务除外)。 是否有另一种方法可以创建比 SWI 更高的时钟类功能? 可能是基于计时器的 HWI、我想吗?

    再次感谢、

    -Wes

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

    Swi 和任务的 SYS/BIOS 用户指南章节提供了一些培训视频的链接、这些视频讨论了每个视频的属性、我认为这些视频可能会有所帮助。 您看到了这些吗?

    时钟模块 Swi 优先级是可配置的、所以不一定是最低的。 如果你有一个特定的函数想要定期运行、但是其优先级高于时钟 Swi、一个定时器(或者一个从定时器 tickFxn 中布置的更高优先级的 Swi)可以工作。

    惠特尼

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

    感谢 Whitney! 我将深入了解这些信息。