[TI板]MSPM0G3507学习笔记(一) 超详细keil环境配置+烧录配置+空工程迁移+vscode配置+点灯
目录
- 目录
- 1.环境配置
- 1.1下载芯片支持包
- 1.2下载sdk
- 1.3烧录之串口烧录
- 串口软件下载
- 启动uniflash
- 安装CH340驱动
- 烧录
- 常见错误:
- 1.4烧录之daplink烧录
- 烧录
- 常见问题:
- 2.MSPM0G3507空工程迁移
- 3.把keil转移到vscode里面
- 4.点亮一颗led
电赛备赛中,我打算系统过一遍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
setlocalREM 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=MSPM0G3507echo 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.jsonexit /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 foundexit /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){ }
}
成功!