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