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/TMS320F28379D:性能评测

Guru**** 2595770 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/670171/rtos-tms320f28379d-performance-profiling

器件型号:TMS320F28379D

工具/软件:TI-RTOS

早上好、

我的任务是评估从本地操作系统迁移到 RTOS 实施的成本。 与本机(while 循环)实现相比,是否有方法计算调度程序的处理“占用空间”? 在我看来、根据系统的大小和函数/中断的性质、这可能会有很大的差异、但我对这种类型的开发(以及一般的开发)不熟悉、可能会忽略一些简单的东西。 我使用的是 CCS 版本7.4,并使用 TMS320F28379D controlCARD R1.3,如果您能提供任何帮助,我们将不胜感激。

 

谢谢、

 

Eric

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

    尊敬的 Eric:

    这是一个很难回答的问题、因为它实际上取决于您对 RTOS 功能的期望。 我为 F28379D controlCARD 构建了一个"标准"SYS/BIOS 示例(注:SYS/BIOS 是 TI-RTOS 中的内核)。 整个应用的闪存大小(包括.econst、.text、.cinit 等)为~16K。 该示例非常简单:1个任务在 Semaphore_pend 上阻止、1个计时器布置信标。

    不过、让我们更仔细地看看内核中包含的内容。
    -硬件中断支持(Hwi)
    软件中断支持(一个 Swi 与一个 Hwi 基本一样、但不像高优先级和软件启动的那样。 它使用系统堆栈、如 Hwi 模块)。
    -任务处理支持(以及信标、门(如互斥量)、队列(链接列表)等相关项目)
    -可变大小的堆实现(类似于 malloc 的实现)
    -用于配置一个计时器并使用它在内核中驱动计时的代码(例如 Task_sleep)。 应用程序可以插入定期调用的函数或一次性调用的函数(但必须处于计时器周期的间隔...这是可配置的、但我们默认为1ms)。
    -内核将 TI RTS 插入一个锁以管理 RTS 函数中的线程安全
    -"系统"类型支持:system_printf (leaner 和更灵活的 printf)和 System_exit 等其他内容
    -引导代码:设置 CPU 和时钟速率
    -各种挂钩:允许应用程序在多个位置插入自己的回调(例如重置挂钩、主函数前面的挂钩、错误挂钩、异常挂钩等)
    -错误管理代码
    -在内核中启用了断言检查: 在开发过程中、最好保持这种状态来捕获一些愚蠢的事情、例如传递一个无效参数(例如 Task_setPriority (taskHandle、453)...453不是有效的优先级)、但一旦您接近发布产品、就可以关闭以节省空间。

    内核大小可以增大(例如添加调试功能、FatFS 或邮箱)或减小(例如、没有堆或提供内核的节拍、而不是内核占用计时器)。 请注意、内核代码占用量是固定的成本。 如果你添加更多任务、堆等。。 占用空间不会增加。

    有关 RTOS 的另一个常见问题是中断延迟。 SYS/BIOS 会增加一些延迟(请参阅 SYS/BIOS 版本说明以查看基准测试)。 但是、内核也允许不受管理的中断。 对于这些应用、内核会增加零延迟、并且永远不会干扰其执行(对于许多 C28x 应用很重要)。 需要注意的是、未管理的中断无法调用到内核中。 但是、它可以发布由内核管理的另一个中断。

    希望我能从较高层次回答您的问题。 这是一个很好的页面、可获得一些与 SYS/BIOS 相关的 C28特定详细信息: processors.wiki.ti.com/.../BIOS_for_the_28x

    Todd

    P.S. 我建议查看 SYS/BIOS 产品、而不是 TI-RTOS 产品。 我们不提供用于 C28器件的高级驱动程序、因此用于 C2000的 TI-RTOS 实际上只是用于 F28379D 用户的内核... SYS/BIOS 产品中针对该器件的示例更好。 下面是另一个页面、它稍微介绍了这一点:
    processors.wiki.ti.com/.../TI-RTOS