[TI板]MSPM0G3507学习笔记(一) 超详细keil环境配置+烧录配置+空工程迁移+vscode配置+点灯

目录

电赛备赛中,我打算系统过一遍MSPM0G3507的各个部分,同时把过程记录下来。本系列以代码全部能用+复用性、可移植性高为目的,且所有资料会全部开源至百度网盘,之后的代码也会开源至github。

链接: https://pan.baidu.com/s/1wnwq0ECzdoVk-_gwduCZ5w?pwd=1234 提取码: 1234

1.环境配置

我在网上买了MSPM03507最小核心板

1.1下载芯片支持包

MSPM0G3507芯片支持CCS、IAR、KEIL等IDE,选择KEIL作为开发工具,首先安装芯片支持包。

前往https://www.keil.arm.com/packs/mspm0g_dfp-texasinstruments/boards/,点击下载

打开keil,点击包管理器,点击file-import,选择刚刚下载的文件即可安装。

确保如图所示即可

1.2下载sdk

https://download.csdn.net/download/godmial/89638490?spm=1001.2014.3001.5503下载资源,里面有ccs和sysconfig的安装包,ccs是一个类似vscode的ide,sysconfig是TI提供的一种类似STM32CubeMX图形化配置工具。安装完成后,安装目录下会有sdk文件夹mspm0_sdk_2_04_00_06。

同时我也把资源放到了百度网盘通过网盘分享的文件:ti.rar

链接: https://pan.baidu.com/s/1wnwq0ECzdoVk-_gwduCZ5w?pwd=1234 提取码: 1234

–来自百度网盘超级会员v5的分享

安装一下解压缩的资源。

下载完,运行如图所示:

安装完ccs后,安装目录会出现sdk,即mspm0_sdk_2_04_00_06。

同理安装一下资源包里面的sysconfig,这是TI提供的一种类似STM32CubeMX图形化配置工具。

运行如下:

安装完毕后,找到安装目录ti\mspm0_sdk_2_04_00_06\tools\keil下的MSPM0_SDK_syscfg_menu_import.cfg,确保sysconfig和SDK安装路径和版本正确

打开同目录下的“syscfg.bat”,检查以下路径是否正确。

在examples文件下,随意打开一个KEIL工程,例如"E:\office2\ti\mspm0_sdk_2_04_00_06\examples\nortos\LP_MSPM0G3507\driverlib\empty_driverlib_src\keil\empty_driverlib_src_LP_MSPM0G3507_nortos_keil.uvprojx",在Tools栏中打开“Customize Tools Menu”。

单击“import”按钮,选择E:\office2\ti\mspm0_sdk_2_04_00_06\tools\keil文件下的“MSPM0_SDK_syscfg_menu_import.cfg”。

在左侧找到“empty.syscfg”文件并打开,保持该打开的文件显示在当前页面,单击Tool工具栏内的Sysconfig,即可打开配置工具。

关闭后,点击编译,无报错

1.3烧录之串口烧录

串口软件下载

UniFlash 是TI专门用于对 TI 微控制器和无线连接器件上的片上闪存以及 TI 处理器的板载闪存进行编程。

前往官网https://www.ti.com.cn/tool/cn/UNIFLASH?keyMatch=uniflash,点击下载选项

选择Windows,下载后双击exe安装即可

启动uniflash

打开软件后搜索3507,选第三个。

点击start即可

安装CH340驱动

如果之前安装过CH340的驱动,则可以不用理会。

链接:https://pan.baidu.com/s/1UGJTCHH6uRVpHUgfhYyWwQ?pwd=LCKF 提取码:LCKF

解压后执行安装即可。

将开发板用usb线连接电脑后,能在设备管理器看见ch340就好了。

烧录

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Program</font> 栏选择代码生成的二进制文件,支持.hex和.bin文件,手动输入设备的串口号,选择波特率 9600

我们需要下载刚刚编译好的hex文件,位于"E:\office2\ti\mspm0_sdk_2_04_00_06\examples\nortos\LP_MSPM0G3507\driverlib\empty_driverlib_src\keil\Objects\empty_driverlib_src_LP_MSPM0G3507_nortos_keil.hex"

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Settings & Utilities</font> 栏的擦除设置选择擦除内存 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Erase main memory only</font>

开发板连接到电脑之后,按住BSL按键,也就是 PA18 按键,然后再按一下 RST 按键,大约1S左右松开 RST 按键,之后松开 BSL按键,此时就进入了烧录模式。

进入烧录模式后,点击 Load image 即可下载。

注意:必须在开发板进入烧录模式后的 10秒 内进行下载,否则将会下载失败。

出现如下图同样的报错 Image loading falled: Try manual Bootloader invocation… 时,其实已经下载成功了,这是下载软件的bug。

常见错误:

1.下载报错 Image loading falled: Try manual Bootloader invocation…

答:这是下载软件的bug,实际已经下载进去了。

2.下载报错 Image loading failed: Flash Generic, Loading lmages… Error: -9

答:芯片没有进入烧录模式,需一直按住BSL(PA18)按键,然后按下RST按键约1s之后松开,最后松开BSL(PA18)按键,就可以进入烧录模式了。

3.下载报错 Image loading failed: Flash Generic, Loading lmages… Error: -6

答:没有选择正确的下载端口或端口被占用,可以在设备管理器查看MSPM0当前的端口号是多少,之后手动输入到 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">COM Port</font> 栏。

4.下载报错 Image loading failed: Flash Generic, Loading lmages… Error. -3

答:烧录的程序不能是在中文路径下的,需放在英文路径下。

5.下载报错 Image loading failed: Flash Generic, Loading lmages… Error. -1

答:偶然性事件,重新烧录一下即可。

1.4烧录之daplink烧录

烧录

没想到吧,去年打智能车的遗产还能在这里发光发热ovo

这个很简单,连接上后,在keil里面选择daplink

里面能发现就ok

之后选择 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Flash Download</font> 栏,勾选 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Reset and Run</font>,选择正确的芯片。

上述配置完成后点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">OK</font> ,就可以开始下载代码了。

成功!

常见问题:

1.报错:Error: Flash Download failed - “Cortex-M0+”

答:原因①:接线错误;原因②:未添加下载算法

2.报错 Cannot Load Flash Device Description!

答:未添加下载算法,可以按照这个方法来添加:

2.MSPM0G3507空工程迁移

在软件开发过程中,经常需要将项目从一台计算机或开发环境迁移到另一台计算机或环境。为了确保工程能够在新环境中顺利运行,需要进行适当的打包和移植。我将尝试移植一个空文件。


前往目录ti\mspm0_sdk_2_04_00_06\examples\nortos\LP_MSPM0G3507\driverlib\empty,复制粘贴到你所需要移植的目的地。

在empty下新建一个 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">ti</font> 文件夹,将E:\office2\ti\mspm0_sdk_2_04_00_06\source\ti目录下的这两个文件夹复制过去。

删除工程中不需要的多余文件夹,最终完整的工程结构:

打开keil工程文件"E:\CODE_b\diansai\code\empty\keil\empty_LP_MSPM0G3507_nortos_keil.uvprojx"。

点击“魔法棒”,加入头文件路径E:\office2\ti\mspm0_sdk_2_04_00_06\source\third_party\CMSIS\Core\Include,具体请转换为你的路径,以及相对路径…\empty …\ti\driverlib …\ti\devices

修改User-> Before Build/Rebuild 中的路径,改为你的syscfg.bat实际路径,比如在"E:\office2\ti\mspm0_sdk_2_04_00_06\tools\keil\syscfg.bat",可以写为cmd.exe /C “E:\office2\ti\mspm0_sdk_2_04_00_06\tools\keil\syscfg.bat ‘$P’ empty.syscfg”

删除Linker -> Misc controls中的文件路径

编译。成功!

烧录。成功!

3.把keil转移到vscode里面

果然还是喜欢vscode。关于keil转移vscode可以参考我之前的文章https://blog.csdn.net/qq_23220445/article/details/146552484?spm=1001.2014.3001.5501

import一下

发现E:\office2\ti\mspm0_sdk_2_04_00_06\tools\keil\syscfg.bat的路径处理有点问题,会陷入死循环,给启动器优化了一下。

@echo off
setlocal

REM Set path variables
set SYSCFG_PATH=E:\office2\ti\sysconfig_1.22.0\sysconfig_cli.bat
set SDK_PATH=E:\office2\ti\mspm0_sdk_2_04_00_06
set PROJ_DIR=%~1
set SYSCFG_FILE=%~2
set DEVICE=MSPM0G3507

echo Starting SysConfig...
echo PROJ_DIR: %PROJ_DIR%
echo SYSCFG_FILE: %SYSCFG_FILE%
echo DEVICE: %DEVICE%

REM Check if SysConfig tool exists
if not exist "%SYSCFG_PATH%" (
    echo ERROR: SysConfig tool not found at: %SYSCFG_PATH%
    exit /b 1
)

REM Check if SDK metadata exists
if not exist "%SDK_PATH%\.metadata\product.json" (
    echo ERROR: SDK metadata not found at: %SDK_PATH%\.metadata\product.json
    exit /b 1
)

REM Find syscfg file
set SYSCFG_FULL_PATH=%PROJ_DIR%\%SYSCFG_FILE%
echo Checking: %SYSCFG_FULL_PATH%

if not exist "%SYSCFG_FULL_PATH%" (
    set SYSCFG_FULL_PATH=%PROJ_DIR%\keil\%SYSCFG_FILE%
    echo Trying: %SYSCFG_FULL_PATH%
)

if not exist "%SYSCFG_FULL_PATH%" (
    echo ERROR: Syscfg file not found
    exit /b 1
)

echo Found syscfg file at: %SYSCFG_FULL_PATH%
echo Running SysConfig tool with device: %DEVICE%...

REM Run SysConfig tool and automatically handle pause commands
echo. | call "%SYSCFG_PATH%" -o "%PROJ_DIR%" -s "%SDK_PATH%\.metadata\product.json" --compiler keil --device %DEVICE% "%SYSCFG_FULL_PATH%"
set EXIT_CODE=%ERRORLEVEL%

REM Check execution result
if %EXIT_CODE% neq 0 (
    echo SysConfig execution failed with exit code %EXIT_CODE%
    echo NOTE: If device type is incorrect, please edit the script to update the DEVICE variable.
    exit /b %EXIT_CODE%
)

echo SysConfig completed successfully
exit /b 0

编译成功!

使用pyocd下载

先使用 pip 安装安装pyocd

pip install pyocd

然后安装包:

pyocd pack --install MSPM0G3507

烧录成功!

4.点亮一颗led

看原理图,pb2和pb3有led,输出高电平可以点亮

打开sysconfig,和1.2结尾一样。

点击左边选项栏中的gpio,再点击右上的ADD,即可添加一个gpio。

然后上面的红框,name是这一组gpio的名称,即PB。下面具体配置PB2,名称为PIN_2,输出模式,默认输出高电平,下拉电阻。

配置好后点击save,可以看到empty.syscfg的更新

在empty.c里面再加一句DL_GPIO_setPins(LED1_PORT, LED1_PIN_2_PIN);,确保是高电平。编译,烧录。

#include "ti_msp_dl_config.h"

int main(void)
{
    SYSCFG_DL_init();
    DL_GPIO_setPins(LED1_PORT, LED1_PIN_2_PIN);
    while (1)
    {   
    }
}

成功!

### 配置 VSCode 支持 MSPM0G3507 开发环境的方法 在 Visual Studio Code (VSCode)配置 MSPM0G3507 的开发环境,需综合考虑硬件调试、编译工具链以及 IDE 插件的支持情况。以下是详细的配置指南: --- #### 1. **安装必要的软件和工具** - **TI CCS(Code Composer Studio)**:尽管 TI 提供了专用的集成开发环境(IDE),但其核心组件如编译器和调试工具仍可独立使用[^3]。 - **GNU Toolchain for MSP430/MSPM0**:如果倾向于开源解决方案,可以选择 GNU 工具链作为替代方案[^1]。 - **OpenOCD 或 MSPDebug**:用于与目标设备通信并支持在线调试功能。 确保所有工具均已正确安装,并将其二进制路径添加到系统的全局 PATH 环境变量中。 --- #### 2. **安装 VSCode 插件** 为了提升开发效率,建议安装以下插件: - **C/C++ Extension Pack**:提供 C/C++ 语言的基础支持,包括 IntelliSense 和调试能力。 - **PlatformIO**:个强大的 IoT 开发平台,内置对多种嵌入式芯片的支持,简化项目管理过程[^3]。 - **EditorConfig for VS Code**:帮助维护致的代码风格,尤其适用于团队协作场景[^2]。 通过 Extensions Marketplace 搜索上述插件名称即可快速完成安装。 --- #### 3. **创建项目结构** 建立清晰合理的目录布局有助于后续工作的展开。推荐遵循以下模组织文件夹: ``` msp430_project/ │ ├── src/ # 存放源码 (.c, .h) ├── include/ # 头文件集中存储区 ├── lib/ # 第三方库或静态链接库 └── build/ # 构建产物存放处 ``` 这种分层方式便于管理和扩展项目规模的同时也利于版本控制系统运作正常。 --- #### 4. **配置 `tasks.json` 文件** 定义自动化任务流以加速日常编码活动。例如编写段脚本来自动执行编译命令: ```json { "version": "2.0.0", "tasks": [ { "label": "Build Project", "type": "shell", "command": "msp430-gcc", "args": [ "-mmcu=msp430g3507", // 根据实际使用的 MCU 型号调整此处参数 "-o", "${workspaceFolder}/build/${fileBasenameNoExtension}.elf", "${file}" ], "group": "build", "problemMatcher": ["$gcc"] } ] } ``` 此片段指定当触发 Build Task 时将调用对应交叉编译器生成最终的目标镜像文件。 --- #### 5. **设置 `launch.json` 文件** 启用远程调试模式允许开发者实时观察程序运行状态并对异常情况进行分析诊断。下面给出了种典型配置实例: ```json { "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.elf", "miDebuggerPath": "/usr/local/bin/mspdebug", // 替换为本地安装的实际 gdbproxy 路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb" } ] } ``` 务必确认所填写的各项字段均指向有效的实体对象;否则可能导致无法启动调试会话的情况发生[^1]。 --- #### 6. **调整 Include Path 和 Compiler Options** 最后步是对 c_cpp_properties.json 进行适当编辑从而让 IntelliSense 准确识别各类符号定义及其关联关系。示例数据如下所示: ```json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/opt/ti/ccs1010/utils/include" // 更新为此值代表您个人电脑上的头文件所在位置 ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu11", "cppStandard": "gnu++14", "intelliSenseMode": "linux-gcc-arm" } ], "version": 4 } ``` 特别提醒需要依据实际情况修正相关绝对地址信息以免引起不必要的麻烦[^3]。 --- ### 总结 综上所述,借助恰当的选择组合第三方工具和服务端口映射技术可以在 VSCode 上顺利完成围绕 MSPM0G3507 展开的系列软硬件协同作业需求。整个过程中既包含了传统意义上的文本编辑又融入了许多现代化特性使得整体体验更加流畅高效。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值