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.

[参考译文] CCS/MSP432P401R:MSP432P4上使用 CCS/SDK、TI 驱动程序和 SysConfig 的 NoRTOS 应用

Guru**** 2524460 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/913970/ccs-msp432p401r-nortos-application-on-msp432p4-using-ccs-sdk-ti-drivers-and-sysconfig

器件型号:MSP432P401R

工具/软件:Code Composer Studio

你好!

我不熟悉 SimpleLink/SDK,没有 RTOS 或驱动程序经验,并且希望在 MSP432P4上使用 Launchpad 硬件上的 CCS/SDK (初始)和 使用 SysConfig 的 TI 驱动程序来实现简单的 NoRTOS 应用程序。 该应用程序是 当前在 MSP430F2274上运行的现有产品 (裸机:无 RTOS 或驱动程序),因此我希望将现有的 C 代码调整为 MSP432P4/SDK/驱动程序。  

应用程序的运行方式:

  • LFXT1时钟源( MSP430F2274上的4MHz 晶振/MCLK)-我计划在 MSP432P4上使用12或24MHz MCLK。
  • 持续运行(不休眠)以保持电源电流恒定,每次设置周期节拍标志时执行指令序列。 不存在睡眠唤醒周期、但功率电流将在该限制范围内最小化(对于选定的 MCLK 时钟频率)。

使用的 MCU 资源:

  • 勾选以加速执行。 当前在间隔模式下使用 WDT (启动时设置的时间间隔)、ISR 会设置一个标志。
  • 自由运行的16位递增计数器计时器、运行频率为4MHz。 持续计数0-FFFF、使用中断回滚到0。 当前使用 Timer_A 与 TAIFG 中断。
  • 16位输入捕捉锁存器自由运行16位递增计数器值、引脚输入下降沿由中断触发。 当前使用的是 TACR0
  • 主控模式下的 SPI。 当前使用 USCI_B0。
  • 5个具有上拉电阻器的逻辑输入、1个逻辑输出。
  • 信息存储器闪存(256字节)。 当前使用4个64字节段。

 问题:

如何继续?

我认为最好从现有的 NoRTOS TI 驱动程序项目(如 gpiointerrupt)开始、然后重命名并修改它?

  使用 SysConfig 时、我尝试了解 TI 驱动程序应用程序接口。

研究导入的示例 NoRTOS 项目(gpiointerrupt、nvsinternal、pwmled2)…其 main()函数看起来完全相同、其中包含 Board_init();NoRTOS_start();mainThread (NULL);while (1){}; 但是,从 TI 驱动程序文档中,我不能准确地确定我必须提供什么(以及在哪里)。 除了在 SysConfig 中添加驱动程序并选择它们的设置之外,驱动程序运行时 API 文档用法/示例(例如打开实例)的内容是否应该进入 mainthread()? 示例项目似乎都在那里。

我不能加快线程开发速度(我想在此项目结束后通过 TI RTOS 学习这些内容)… 我的应用程序是否应该在 mainthread()中运行? 而不是从 main()的 while (1)开始? mainthread()不应该返回? 我是否应该将 main()的 while (1)留空?

如上所述、我的应用一定不能进入睡眠模式、但 SimpleLink MCU SDK 驱动程序 API 参考中指出、所有 TI 驱动程序实施都利用电源驱动程序 API 来确保始终保持低功耗。 在 LFXT1时钟源(用于计时器精度)、所选 CPU 频率、上述 MCU 资源以及无睡眠/唤醒的限制范围内、我希望尽可能减小功率电流。 也就是说、我希望关闭/将所有未使用的 MCU 资源、时钟等设置为最低功耗、而不是上面提到的。 如何以及在何处进行这些设置?  SysConfig 中的电源驱动器

《SimpleLink MCU SDK 驱动程序 API 参考》提到了 NoRTOS 框架模块–我需要注意哪些事项? 是否有设置/调整?

关于 Capture 驱动程序,除了使用 SysConfig 添加它 并在 mainthread()中打开一个实例外,我的应用程序代码获取捕获的16位计时器值的方法是什么? 我在任何 API 函数中都看不到这种情况…

谢谢!

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

    您好、Kris、

    从 NoRtos 示例开始是一种很好的方法。 您的问题有几个答案:

    1. 为了使事情变得更简单,运行时 API/应用程序代码应该位于 mainthread()中,而不是主函数的 while (1)中。 技术上的代码可以进入 main(),您不需要使用任何线程,但这需要一些修改和额外的努力。
    2. 要确保您的应用程序不会进入休眠状态,您需要对电源驱动程序进行更改。 您可以参阅电源示例和相关文档。
    3. 您不应担心 NoRTOS 框架模块。 它不需要任何更改
    4. “驱动程序”下有一个“捕获”示例。 获取这些值的最常用方法是使用返回值的捕获回调函数。

    我希望这有助于您的发展。

    BR、
    Leo