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/TM4C1294NCPDT:计时器

Guru**** 2481465 points
Other Parts Discussed in Thread: SYSBIOS, TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/699571/rtos-tm4c1294ncpdt-timer

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

工具/软件:TI-RTOS

你(们)好

我在 tirtos_tivac_2_16_00_08中查看了非常困难的文档、很难确定  它实际用于该模块的计时器或 NVIC SysTick。  

文件://C:/ti/tirtos_tivac_2_16_00_08/products/bios_6_45_01_29/docs/cdoc/ti/sysbios/hal/Timer.html  

另外 、krn/clock.h 的情况如何、它指的是什么?  

在计时器中、如何针对每个事件动态更改周期。

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

    您好 Richard、

    默认情况下、TM4C (实际上是所有 M4F 器件)上的计时器模块使用 ti.sysbios.family.arm.lm4.计时 器模块。 该模块管理器件上的通用计时器(而不是 SysTick 计时器)。 SysTick 计时器由 ti.sysbios.family.arm.m3/Timer 模块管理。

    我不确定什么是 krn/clock.h 文件? 有一个 ti/sysBIOS/KNL/Clock.h 文件。 这是 TI-RTOS 时钟模块的头文件。 默认情况下、它管理一个驱动内核中计时机制的计时器。 它也可由应用程序用于运行周期或单次触发函数。 有关  更多详细信息,请参阅 ti.sysbios.KNL.Clock 文档(例如)。

    在同一文档中、您还可以找到用于管理计时器的 API。 例如

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉我不是很明智… 我已经对来自各种 MCU 器件的非 RTOS 使用了许多内部外设。 我在 RTOS 平台上。

    我在 TMC4C 中有多个计时器外设、我将大量使用它来实现 PWM 目的、它将由信标管理以重新配置计时器、暂停或运行计时器。 我的问题是、我不知道 RTOS 保留了什么和哪个计时器。

    Cortex M4文档清楚地表明、Cortex M4内只有一个计时器、称为计时器或更常用的 SysTick 或 NVIC SysTick。 RTOS 实际上是否使用此功能?

    infocenter.arm.com/.../index.jsp

    如果 RTOS 不使用上述任何一种、那么请祈祷它如何保持准确的计时器、我已经查看了很多文档以及 CDOC 和氧气等、并且没有清晰的黑白答案来解释它实际使用的计时器。

    为什么我要询问这个查询、因为如果我访问 SysTick 模块或其他计时器(如更改编号或重置)、我担心 RTOS 崩溃。 我们有来自 RTOS 的用于基于 Tiva 的器件的时钟和计时器。

    "它管理一个驱动内核中计时机制的计时器"过于模糊、因为它没有指向它使用的内部硬件(或软)计时器。

    我为这个基本查询获得了更硬的答案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在对 XCONG 进行进一步实验并发现这一点后、我无法编辑该设置、因为它全部屏蔽掉。

    请告诉我如何使用它、是否有示例代码。 我喜欢安排在我的代码中的某个函数中连续发生100mSec 事件、它会一直运行。 它链接到 SysTick

     顺便说一下、什么是 PIOSC?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先、让我们进入同一页面...

    默认情况下、内核不使用 SysTick。 它使用通用计时器。

    您可以根据自己的计时需求执行此操作

    1.使用 ti.sysbios.KNL.Clock 模块创建为您调用的时钟函数。 这些函数可以是周期性的(也可以更改)或一次性的。 虽然粒度限制为时钟周期、但时钟周期默认为1ms (因此100ms 的周期可以、但不能执行2.5ms)。 时钟上可能会发生一些抖动、因为它可能会在每个节拍上执行许多操作。 因此、它可能不是精确的100ms、而是100.12ms。

    2.使用 ti.sysbios.hal.计时 器模块创建专用计时器。 您需要提供一个被调用的函数、所有中断管理都由内核处理。

    3.使用 ti.sysbios.family。 计时器模块。 "hal"计时器是满足大多数客户需求的通用接口。 "特定于器件"允许您选择特定的计时器(例如 SysTick)、并可能使用一些在通用"hal"接口中未公开的功能。

    4.使用 driverlib 调用来设置计时器。 不过、不要使用 driverlib 的中断模块来插入矢量表。 这与内核不兼容。 您需要使用 ti.sysbios.hal.hwi 模块来插入矢量表(例如 Hwi_create)。 您可以查看任何 TI-RTOS 驱动程序、以了解它们如何使用 Hwi 模块来管理中断。

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

    [引用用户="Richard Payne"> Cortex M4文档明确指出、Cortex M4内只有一个计时器、称为计时器或更常用的 SysTick 或 NVIC SysTick。 RTOS 实际上是否使用此功能?

    infocenter.arm.com/.../index.jsp [/报价]

    上述文档适用于 SysTick 计时器。  SYS/BIOS 对此提供支持、但默认情况下不使用。  用户可以自由地将其用于自己的目的。  SYS/BIOS 模块 ti.sysbios.family.arm.m3/Timer 提供了该模块的实现。  您可以在.cfg 中显式使用该模块:
       VAR SysTick = xdc.useModule('ti.sysbios.family.arm.m3.Timer');

    "通用"SYS/BIOS 模块 ti.sysbios.hal.计时 器映射到 特定于所用器件的计时器模块。  对于 TM4C1294NCPDT、它映射到 ti.sysbios.family.arm.lm4.Timer、后者管理器件上的 GP 定时器。  有8个 GP 定时器可用。  为了消除任何可能的术语混淆、我将讨论定时器#0的基址为0x40030000 (SYS/BIOS 为 Timer0)、定时器#1的基址为0x40031000 (SYS/BIOS 为 Timer1)等的定时器  SYS/BIOS 定时器 Timer6跳至基地址0x400E0000、Timer7为0x400E1000。

    SYS/BIOS 模块 ti.sysbios.KNL.Clock 使用其中一个 GP 定时器。  默认情况下、它将使用 Timer_any 并允许 ti.sysbios.family.arm.lm4.timer 决定哪一个。  您可以通过设置让时钟使用显式计时器
       clock.timerId = N;
    其中 N=0-7。

    我将在另一篇文章中提供更多详细信息。

    此致、

    - Rob

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

    [引用用户="Richard Payne"]

    在对 XCONG 进行进一步实验并发现这一点后、我无法编辑该设置、因为它全部屏蔽掉。

    请告诉我如何使用它、是否有示例代码。 我喜欢安排在我的代码中的某个函数中连续发生100mSec 事件、它会一直运行。 它链接到 SysTick

    [/报价]

    什么版本的 CCS 以及什么主机平台?  我从未见过这样的黑色 GUI。

    对于我的 CCS v7.4、我获得了这个计时器-实例设置窗口:

    它起初都是灰色的。  然后单击“添加...” "Timers"框中的"Timers"按钮、然后得到:

    [引用 user="Richard Payne"] 顺便说一下、什么是 PIOSC?

    典型值为16MHz 的精密振荡器。

    请参阅的第69页

    此致、

    - Rob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有包括 RTOS 等的最新版本 CCS 8.0、并使用添加到其中的深色主题(深达维尔)下的 DelStyle 扩展、这有助于我的眼睛读取和处理代码。 当我单击时钟源列表框时,它不会出现,并且我确信 DelStyle 与此无关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Richard Payne"]当我单击时钟源列表框时,它不会出现,我确信 DelStyle 与此无关。

    您可以检查 Timer.xml 文件吗?

    此文件位于 tirtos_tivac_2_16_00_08/products/BIOS_6_45_01_29/packages/ti/sysBIOS/系列/arm/lm4中。  它是生成的文件。  您有以下内容吗?:






         

    计时器


         



             
             
           
                       
       

         

    必需的设置

    如果不是、则文件必须已严重生成。

    如果您确实有(我希望您有)、则您的 GUI 中似乎存在渲染问题。

    此 CCS 适用于 Windows 还是 Linux?

    您的操作系统是什么版本?

    此致、

    - Rob

           

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

    [引用 user="Richard Payne"]我有最新版本的 CCS 8.0、包括 RTOS etc

    我刚刚被告知 XGCONF 和 CCS 8.x 的 GUI 问题  请参阅此论坛主题:

    它建议最大化您的窗口以解决问题。

    此致、

    - Rob

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

    我使用的是最新版本的 Window 10 (包含所有更新)。

    您能否通过 XCONF 编辑器建议哪些附加项目来暂时绕过 GUI 问题 ? 我相信他们会在下一个 CCS 版本中修复它。

    是否有计划进行下一个版本 tirtos_tivac_2_16_00_08、 TivaWare_C_Series-2.1.4.178和 BIOS_6_70_01_03、TM4C 器件的上下文有何显著变化? (我希望他们包括 ADC 模块:-))。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的意思是 var SysTick = xdc.useModule('ti.sysbios.family.arm.lm4.Timer'); 不是 arm.m3.Timer...?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最大化无法解决问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Richard Payne"]您是否是指 var SysTick = xdc.useModule('ti.sysbios.family.arm.lm4.Timer');而不是 arm.m3/Timer....?

    不、ti.sysbios.family.arm.lm4.timer 支持 GP 计时器。  TI.SYSBIOS.ARM.m3/Timer 支持 SysTick 计时器。

    此致、

    - Rob

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

    [报价用户="Richard Payne"]最大程度不能解决问题。

    这很不幸。

    XGCONF 最终只将 XS 代码(本质上是 Javascipt)写入.cfg 文件。  因此、权变措施是将 XS 语句自己写入.cfg 文件中。  如果您让我知道您的 lm4计时器实例需要哪些参数、我可以为您提供帮助。

    另一个您自己可以执行的选项- 如果您有更早的7.x CCS、则可以在此处使用 XGCONF 来创建您喜欢的 lm4计时器实例(假设窗口呈现正确) 并从生成的针对计时器实例的.cfg 脚本代码 中获取该脚本代码、然后将其粘贴到您的 CCS 8.0项目中。  很可能它会顺利地向前移植。

    此致、

    - Rob

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

    [报价用户="Richard Payne"]我在最新版本的窗口10中(包含所有更新)。

    我认为它与 Windows 版本无关、它可能也会影响最新的 Windows 10。

    [引用 user="Richard Payne">您能否通过 XCONF 编辑 器建议哪些其他项目来暂时避免 GUI 问题。 我确信他们会在下一个 CCS 版本中修复它。

    就是我在上一篇文章中提到的手动.cfg 脚本编辑。

    您可能会认为它将在下一个 CCS 版本中修复、但它仅在上周才找到、因此过早被分解到发布计划中。

    [引用用户="Richard Payne">是否有下一个版本 tirtos_tivac_2_16_00_08、 TivaWare_C_Series-2.1.4.178和 BIOS_6_70_01_03的计划、TM4C 器件的上下文有何显著变化? (我希望他们包括 ADC 模块:-))。

    我认为 未来不会有任何 TI-RTOS 2.x 修订版本。  TM4C 支持已在 TI-RTOS 2.x 中结束  如果您想使用更高版本的 CoreSDK (TI-RTOS 重命名) 3.x、则必须更改为使用 MSP432E4器件。

    此致、

    - Rob

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

    [引用 user="Robert Tivy">我认为未来不会有任何 TI-RTOS 2.x 修订版。  TM4C 支持已在 TI-RTOS 2.x 中结束  如果您想使用更高版本的 CoreSDK (TI-RTOS 重命名) 3.x、则必须更改为使用 MSP432E4器件。[/QUERP]

    我们尚未正式声明将不会有用于 TivaC 版本的新 TI-RTOS。 我们每隔几个月重新评估一次需求、遗憾的是、我们的优先项目更高。 我们将继续重新评估发布情况。 如果我们执行新版本、它将更多地是修补程序版本(例如错误修复、新编译器工具等)。 如果有新版本、则很可能不会有新功能开发。 正如 Rob 所说、我们正在 SimpleLink 器件上进行新的软件开发。 CoreSDK 是所有 SimpleLink SDK 所基于的通用 SDK 的内部名称。 CoreSDK 具有自己的版本控制、不在外部提供。 它仅供内部使用。  

    MSP432E4是一款 SimpleLink 器件、其器件与 TM4C129类似。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、在未来的前景中、MSP432将终止/替换 TMC129系列、从而减少支持/更新等 我希望选择 MSP432的第一选择! MSP432和 TM4C 看起来非常相似、为什么要替换它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Richard、

    这不是真的。 无论 MSP432如何、TM4C129都将继续运行。 这里的区别在于 TM4C129有三个软件选项可供开发使用。

    1) 1)基于 TivaWare 库的应用程序、这些应用程序将在我们的 TM4C 团队的支持下继续运行。

    2) 2)基于 SimpleLink 的应用。 此处的软件开发不受 TM4C 应用的推动、重点是 SimpleLink 平台。 MSP432器件集成到 SimpleLink 中、而 TM4C129则不集成。 因此、对于 TI-RTOS 和 SimpleLink、开发路线图侧重于 MSP432和 SimpleLink 无线器件(CC13xx、CC26xx、CC31/32xx 等)。

    3) 3)具有 TivaWare 的 TI-RTOS。 这是您当前所在的位置、它的当前状态如 Todd 所述。

    总之、TM4C129不会被扼杀、唯一的"放置"情形是想要利用 SimpleLink。 针对 TM4C 的 TI-RTOS 更新的评估是一项开放式评估、而不是一个门关、因为我们不打算让 TM4C129 "关闭"、因为 MSP432只是 SimpleLink 应用的替代产品。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的感谢、感谢您的评价和满意。 快速浏览并发现 MPS432上的 RTOS 目前仍受 TM4C1294的限制。 当我从 CC2640R2 (99%完成项目、我期待稍后升级 CC2642R1)迁移到 TM4C 时、我只是觉得有一些缺点、但它展示了如何在使用似乎是一个扩展库的 Tivaware 时使用 HWI 和信标。 我还通过文档桩和出色的支持(这就是我选择 TI 的原因)在 RTOS 方面积累了更多经验。 也许对于集合 Tivaware 示例与 RTOS 配合使用(通过 HWI、SWI 和信标作为有用的演示)很有用、因为基本的外设支持可实现更快的操作。

    有一点、请务必认真对待此请求:我想请您从 EK_TM4C1294XL.c/.h 进行100%完整的外设库升级、而无需参考 EVAL 板、这使我们的生活变得更加轻松(正如在 CC2640R2上所做的那样)。 我们正在开发基于您的 TM4C 器件进行大规模生产的应用产品、但不这么做的原因对于评估板来说不太合理、使用此标准参考文件可以减少不确定性并使支持更简单。 我希望这一缺口能尽早得到倾听、解决和释放。

    我再次感谢大家的支持和耐心。

    R.