MSPM0 SDK Known Issues and FAQ (Frequently Asked Questions)
引言
本页面列出了有关 MSPM0 SDK 的已知问题和常见问题解答。
目录
已知问题
器件
- 参阅相应产品页面上的勘误表文档。
- 早期实验样片的已知器件问题和解决方法参见“MSPM0G 和 MSPM0L 系列:与早期样片之间的功能差异”文档。请向 TI 销售办公室申请访问此文档。
编程器/调试器
- 在某些情况下,编程器和调试器可能会遇到连接问题。
- 有关在 STOP/STANDBY 模式下调试的更详细说明,请查看附录 A - 在低功耗模式下调试。
- 有关器件连接失败时的解决方法的更详细说明,请查看附录 B - 编程问题预防和恢复。
中间件
SMBus
- ARP 或 SMBAlert 等某些 SMBus 特性没有实现。
- 解决方法:SMBus 文档中列出了当前支持的特性和待定特性。 后续版本中将添加更多特性。
BIM
- 就地执行 (XIP) 是当前启动映像管理器唯一支持的 映像管理方法。这意味着,必须针对执行映像的槽位 编译映像。在现实情况中,这可能 意味着为每个版本维护两个映像或配置。
- 解决方法:MSPM0 SDK 包括使用 XIP 的示例。未来版本中 计划推出映像交换
电机控制
- 电机控制演示 GUI 的离线版本可能会遇到连接问题。
- 解决方法:使用 TI Gallery 中的在线 GUI 进行评估。
SysConfig
- 使用 SysConfig 和选择的板时,如果用户尝试切换到另一个板会出错。
- 解决方法:切换时,清除“Board”字段,先切换到不同的器件,然后再切换到需要的板。
- 选择能够同时在同一引脚上工作的模拟外设输入/输出时,SysConfig 将显示资源冲突错误。
- 解决方法:选择需要的特定引脚(不要保留为“Any”),然后选择忽略错误的选项。这会再次启用代码生成,也会将错误降级为可以抑制的警告。
Keil
- Keil 无法使用 LaunchPad 的集成 XDS-110 连接到器件。
- 解决方法:在 CMSIS-DAP 模式下使用 XDS-110 或者另一种工具,例如 Keil ULINK 或 Segger j-Link。
- 使用 CMSIS-DAP 模式时,Keil 可能会遇到连接问题。
- 解决方法:某些问题是在使用 USB 集线器时出现的。直接将调试器连接到 PC。
FAQ(常见问题解答)
SDK
问:我如何配合使用 SDK 与 CCS Theia、CCS、IAR、GCC 或 Keil?
答: 请参考 SDK 文档中包含的快速入门指南。
问:我如何提交 SDK 错误(驱动程序、示例、SysConfig、文档)或申请新特性?
答: 要申请新特性或提交头文件和支持文件、SDK DriverLib、代码示例、SysConfig 或 TI-Driver 的错误,请联系您当地的销售代表或 TI 支持团队。
驱动程序
问:支持哪些类型的驱动程序?
答: DriverLib 是低级高效的驱动程序,完全涵盖了寄存器和功能。它更加“精细”,掌握更多的硬件情况,但可以提高代码效率和减小占用空间,而且 SysConfig 的使用可以简化和加速 代码开发。
TI-Driver 是更高级的驱动程序。它们的代码量更大,因为它们已经实现了较多的功能,但不太要求了解要使用的硬件。SDK 当前包含对某些 No-RTOS 和 RTOS 驱动程序的初级支持。更多的 TI-Driver 正在开发中。
SysConfig
问:什么是时钟树及其如何使用?
答: 时钟树是 SysConfig 中的一个模块,让用户能够以图形方式配置器件时钟,而非使用 SYSCTL 菜单。通过选择 SYSCTL 中可配置的 Use Clock Tree,可以使用它取代模块中的 SYSCTL 时钟配置选项。更多详细信息,请参考将 SysConfig 与 MSPM0 配合使用指南。
问:什么是模拟配置器及其如何使用?
答: TI 模拟配置器是一个独立的图形配置工具,旨在使用 MSPM0 器件简化和加快模拟信号链的设计和实现,而无需进行传统的编码开发。此工具旨在帮助 MSPM0 用户快速采用模拟信号链概念,并创建可以闪存到器件的可编译工程。更多详细信息,请参考模拟配置器概述。
RTOS
问:MSPM0 SDK 是否支持 FreeRTOS?
答: 是,当前 SDK 包含 FreeRTOS 内核、驱动程序移植 层 (DPL)、POSIX 支持和一个基础的 DriverLib FreeRTOS 示例(受 CCS Theia、CCS、IAR 和 Keil 的支持)。
问:MSPM0 SDK 是否支持 TI-RTOS?
答: 目前没有支持 TI-RTOS 的计划。
问:MSPM0 SDK 是否计划支持其他 RTOS?
答: 要申请 RTOS,请联系您当地的销售代表或 TI 支持团队。
中间件
问:当前支持什么中间件?
答: 有关 SDK 当前支持的完整中间件清单,请参考“文档概述”。
问:TI 是否计划增加 MSPM0 对第三方(例如 Vector、IHR、Simma Software 等)CAN/LIN 栈的支持?
答: 有些第三方已经为 MSPM0 提供支持,未来几天 将会公布。更多的第三方将增加对 MSPM0 的支持,但 请根据需要直接联系第三方、当地的销售代表或 TI 支持团队。
问:MSPM0 SDK 是否计划支持更多中间件?
答: 正在添加更多中间件,将包含到未来版本中。 要申请中间件,请联系您当地的销售代表或 TI 支持团队。
问:MSPM0 诊断库将支持哪种基于软件的诊断?
答: 下面列出了诊断库所含内容的概要说明:
- API 用于:
- 监视栈使用情况
- 使用 B 类测试方法检测 MCU 数据(内部数据路径)中的卡死故障
- 使用 B 类测试方法检测 MCU 寻址中的卡死故障
- 使用 B 类测试方法检测可变存储器中的直流故障
- 使用 B 类测试方法检测不可变存储器中的所有一位故障
- 使用 B 类测试方法检测时钟错误频率
- 使用 B 类测试方法检测程序计数器中的卡死故障
- 使用 B 类测试方法检测 MCU 内核寄存器中的卡死故障
- 配套资料:
- 诊断库安全手册
- 记录每个 API 使用编译器资质审核文档中记载的编译器设置所产生的代码大小
- 描述输入/输出外设的 B 类测试方法的一个章节
- 分发:
- 作为自包含的库安装程序(包括源代码)分发。要访问最新的 MSPM0 诊断库,请访问诊断库概述并按照说明申请访问诊断库。
通用
问:MSPM0 软件是否可以在生产中使用?预计针对MSPM0 软件产品提供哪种支持?
答: 大多数 SDK 代码按照 3-Clause BSD 许可证提供。
大多数 SDK 是按照 TI 的基线质量流程开发的, MSPM0 SDK 实施 MISRA-C 检查以确保高质量水平。不过, 客户有责任在终端应用程序上验证代码。
有些代码(例如在 TI 商业许可证下许可的诊断库)遵循更严格的开发和测试流程,因而可靠性水平更高。
TI 一直在半导体行业中提供卓越的客户支持。TI 致力于按照历年来的水准提供对 MSPM0 SDK 的支持。
问:如果我有早期实验样片,如何将我的应用程序迁移到生产样片?
答: 有关如何将应用程序迁移到支持生产样片的 MSPM0 SDK 版本的详细信息,请参考早期样片迁移文档。
工具
问:支持哪些 IDE 和编译器?
答: MSPM0 包括适合以下产品的示例:
- IDE:CCS、CCS Theia、Keil、IAR
- 编译器:TI-Clang、GCC、Keil 和 IAR。
但是,其他第三方的 IDE 和编译器也可能提供并搭配 MSPM0 使用。
问:MSPM0 是否支持“x”工具?
答: 有关 MSPM0 支持的 TI 和第三方的各种工具的信息,请参考工具指南。但是,其中并没有提供可用于 MSPM0 的工具的完整清单,请访问 TI.com 了解更多新讯息或申请第三方工具供应商的支持。
附录 A - 在低功耗模式下调试
问题描述:
器件在进入 STOP 或 STANDBY 模式时可能遇到 SWD 连接问题。
这种限制的影响取决于 IDE 和调试器的实现。
1.当器件进入 STOP/STANDBY 模式时,调试器显示警告错误。
此行为是调试器持续轮询 AP 接口但通信失败所导致的。 在这种情况下,调试器显示警告或提示用户尝试重新连接。 当器件处于低功耗模式时,警告通常定期出现。 下图显示了使用 IAR 与 Segger J-Link 时的警告:
- 解决方法:
- 忽略警告或再次尝试连接。一旦器件定期或使用断点恢复 RUN 或 SLEEP 模式,调试器将重新连接。
2 尝试刷新空白设备时,调试器显示错误
所有空白设备在开机超过~10秒后将进入低功耗模式。 取决于IDE和 使用调试器工具时,当设备处于低功耗模式时尝试访问设备时,可能会给出错误或警告。 当设备处于低功耗状态时尝试在设备上下载项目时,通常会出现警告。 下图显示了将IAR与-110一起使用时的一个错误:
解决方法: 首先使用Code Composer Studio对设备进行编程,然后使用以前的IDE继续开发。
3.调试器尝试暂停器件时突然结束。
调试器将无法按需暂停器件,它可能显示类似案例 #1 的警告,也可能突然结束。 下图显示了使用 IAR 与 XDS-110 暂停时的错误:
- 解决方法:
- 仅在器件处于 RUN 模式时暂停。
- 如果不可行,请使用硬件断点或 BKPT 指令重新连接调试器。
测试的 IDE 和调试器汇总
下表汇总了测试的某些 IDE 和调试器:
IDE | 调试器工具 | 进入 LPM | 暂停 |
---|---|---|---|
CCS/CCS Theia | XDS-110 | 确定(警告) | 确定(警告) |
CCS/CCS Theia | Segger J-Link | 确定(警告) | 确定(警告) |
IAR | XDS-110 | 确定 | 错误 |
IAR | Segger J-Link | 确定(警告提示) | 确定(警告提示) |
IAR | IAR I-Jet | 确定(警告) | 确定(警告提示) |
IAR | XDS-110 作为 CMSIS_DAP | 确定(警告) | 确定(警告提示) |
Keil | XDS-110 作为 CMSIS_DAP | 确定(警告) | 确定(警告) |
Keil | Segger J-Link | 确定(警告) | 确定(警告) |
Keil | Keil ULINK | 确定(警告) | 确定(警告) |
附录 B - 编程问题预防和恢复
问题描述:
在某些情况下,编程器和调试器在尝试连接到器件时 可能会遇到某些问题:
- 重新配置 SWD 引脚。
- 进入某些低功耗模式。
- NONMAIN 存储器配置不正确。
预防措施:
预防这些问题的一些推荐解决方法包括:
预防措施 #1. 在开发期间使用 RUN 或 SLEEP 模式。
预防措施 #2.延迟进入应用程序中的低功耗模式。
预防措施 #3.根据引脚配置实施恢复机制,例如停留在 RUN 模式。SDK 包括一个 driverlib 示例 sysctl_shutdown,显示一个根据外部引脚选择低功耗模式的实现。
预防措施 #4.确保不错误写入 NONMAIN 存储器。NONMAIN 可以完全锁定 SWD 和 BSL,因此只能特意写入。SysConfig 中的 NONMAIN 配置器可以辅助配置 NONMAIN。更多详细信息,请参阅适用于 MSPM0 的 SysConfig 指南。
预防措施 #5.确保可使用 RESET 和 BSL_INVOKE 引脚调用 BSL。
恢复措施:
如果锁定了器件,可遵循以下步骤:
恢复措施 #1.在连接前尝试强制复位:
- 请注意,IDE 可能已经默认这样做,它可能提示进行强制复位,也可能有启用物理复位的设置。
恢复措施 2.通过调试器复位强制 BSL:
- 长按“BSL_Invoke”按钮,同时尝试进行编程。此方法比下面的方法更方便,但是 IDE 必须有强制物理复位的能力。
恢复措施 3.通过物理复位强制 BSL:
- 长按“BSL_Invoke”按钮,同时按下和松开“Reset”按钮。
- 器件应该进入 BSL,并在工作模式中停留大约 10 秒。
- 松开“Reset”按钮后立即尝试编程。
恢复措施 4.通过下电上电强制 BSL:
- 断开电路板连接。
- 长按“BSL_Invoke”按钮,同时重新连接电路板。
- 器件应该进入 BSL,并在工作模式中停留大约 10 秒。
- 插上电路板后立即尝试编程。
恢复措施 5.强制 DSSM 批量擦除: 在此版本中,对 DSSM 命令的支持是使用 CCS 和 MSPM0 Factory Reset GUI 工具实现的。
遵循 CCS IDE 指南中的说明,并参考工具指南了解更多信息。
恢复措施 6.强制 DSSM 恢复出厂设置: 在此版本中,对 DSSM 命令的支持是使用 CCS 和 MSPM0 Factory Reset GUI 工具实现的。
遵循 CCS IDE 指南中的说明,并参考工具指南了解更多信息。
恢复操作7 强制DSSM等待Debug: 在此版本中,对DSSM命令的支持是使用CCS实现的。
遵循 CCS IDE 指南
恢复操作8 强制DSSM设置重置模式:
遵循 CCS IDE 指南
技术支持与产品更新
- 要申请新特性或提交错误,请联系 E2E 或您当地的销售代表。