KEIL5进行MSPM0开发
KEIL5、MSPM0 SDK、Sysconfig组合进行MSPM0系列芯片开发。使用Sysconfig对引脚及外设进行图形化配置生成对应代码。MSPM0 SDK提供TI相关库KEIL5负责进行代码编辑工程编译。1.KEIL5配置老项目使用的是TI公司MSP430F2x系列芯片16位RISCV架构芯片Keil5只支持32位ARM芯片开发。而且Keil5开发需要有官方的芯片支持包MSP430F2x系列芯片ARM官方没有提供支持包所以不能用Keil5开发。后来改用MSPM0系列芯片32位ARM芯片ARM官方提供支持包Arm Keil | Texas Instruments MSPM0L2228。此外为了提高开发效率Keil5还需要安装对应的TI组件。用户选择Tools-Customize Tools Menu...选项卡点击Customize Tools Menu界面Import按钮添加MSPM0 相关配置文件添加成功后Customize Tools Menu界面Menu Content界面会出现新选项我的是Sysconfig v1.21.1 - MSPM0 SDK v2_05_00_05。原始文件对应的Sysconfig版本号应该是1.24.0。兼容性有问题我最后换成了1.21.1这个问题我会在后面说明。Keil MDK-ARM with uVision官方推荐5.38a或者更高版本我安装的是5.41.0.0版本。2.MSPM0 SDKMSPM0 SDK我使用的版本号是mspm0_sdk_2_05_00_05下载链接如下。SDK文件默认安装后会创建C:\ti\mspm0_sdk_2_05_00_05路径。MSPM0-SDK 软件开发套件 (SDK) | 德州仪器 TI.com.cndocs文件夹内是一些文字资料但不是pdf格式的文件而是离线网页。我在下面展示了一些。我尤其喜欢uart.h文件的引用关系我还没来的及细看离线网页的全部内容。我工作时最关心的是C:\ti\mspm0_sdk_2_05_00_05\examples\nortos\LP_MSPM0L2228\driverlib目录下的官方例程。我参考官方例程编写相应的驱动。虽然说是SDK但我编程的时候没有直接用SDK大多是参考官方例程后续估计还需要查看相关文档。TI官方其实也提供了在线的例程介绍资料具体链接如下。我最近比较关心串口功能所以我标记出来了。MSPM0 SDK Examples Guide — MSPM0 SDK User Guide 2.04.00.06 documentationMSPM0 SDK离线文档路径示例file:///C:/ti/mspm0_sdk_2_05_00_05/docs/chinese/early_samples_migration_guide/MSPM0_Early_Samples_Migration_Guide_CN.htmldrivers/mspm0l122x_l222x_api_guide/html/_u_a_r_t_8h.htmlSDK 离线文档部分截图3.Sysconfig我最开始下载的是Sysconfig版本是1.27.1但是MSPM0 SDK 的配置文件syscfg.batMSPM0_SDK_syscfg_menu_import.cfg对应的是1.24.0我按照AI的指导将脚本中的版本号修改为1.27.1sysconfig工具无法运行。然后下载sysconfig 1.24.0依然无法稳定启动。上网搜索后发现1.19.0是Syscofig最稳定的版本。下载安装1.19.0后双击Sysconfig图标可以稳定启动。修改MSPM0 SDK脚本后通过Keil5 tools选项卡插件启动1.19.0报错提示最低要求1.19.1版本Sysconfig具体版本号记不起来了随便写了一个于是我下载了1.20.0安装1.20.0后一切功能正常hex文件生成成功。配置引脚、外设功能成功。syscfg.bat echo off set SYSCFG_PATHC:\ti\sysconfig_1.21.1\sysconfig_cli.bat ... MSPM0_SDK_syscfg_menu_import.cfg [Sysconfig v1.21.1 - MSPM0 SDK v2_05_00_05] CommandC:\ti\sysconfig_1.21.1\nw\nw.exe C:\ti\sysconfig_1.21.1Sysconfig界面我读书的时候用过STM32CubeIDE并不是第一次接触图形化配置界面了。STM32CubeIDE是给出了芯片引脚封装图用户点击引脚就会出现可配置的选项。Sysconfig的逻辑与此不同它提供了SoftwareClock treeReserve Peripherals。Reserve Peripherals对应的模块代表已经提前与相应的外设连接不可再使用软件配置对此我有些不理解。Software则用来配置外设引脚功能配置外设时的做法与STM32CubeIDE类似。操控GPIO模块即可配置芯片外围引脚。Sysconfig有个Switch功能如果你用的是LQFP-64(PM)封装的芯片但你在LQFP-80(PN)封装的芯片上配置的外设那你一定会需要Switch功能将软件配置迁移到LQFP-64(PM)封装芯片上。最后奉上两张图形化配置界面的图片第一张是STM32CubeIDE图形化配置界面第二张是Sysconfig界面图片。