工具/软件: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 函数中都看不到这种情况…
谢谢!