目录
1.环境配置
1.1下载芯片支持包
MSPM0G3507芯片支持CCS、IAR、KEIL等IDE,选择KEIL作为开发工具,首先安装芯片支持包。
前往 https://www.keil.arm.com/packs/mspm0g1x0x_g3x0x_dfp-texasinstruments/boards/,点击下载最新版本的dfp1.3.1。
打开keil,点击包管理器,点击file-import,选择刚刚下载的文件即可安装。
导入后如图所示。
1.2下载sdk
前往https://download.csdn.net/download/godmial/89638490?spm=1001.2014.3001.5503下载资源,是免费的,里面有sysconfig的安装包(TI提供的一种类似STM32CubeMX图形化配置工具),以及SDK(软件开发工具包)。
解压缩完如下所示:
如果需要使用sysconfig,可以安装一下资源包里面的sysconfig,如下图所示,这是TI提供的一种类似STM32CubeMX图形化配置工具。如果你自己基于DL库写库或者运用其他库,比如逐飞库,不需要使用sysconfig的话,这一节就不需要配置,直接选择一个keil工程打开,编译即可!!!。
安装完毕,运行如下:
安装完毕后,找到安装目录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,即可打开配置工具。
为了使得每次编译的时候,能够自动根据sysconfig的配置,实时更新ti_msp_dl_config.h和ti_msp_dl_config.c,我们需要点击魔法棒,找到user,在预编译部分打上勾,并替换为你自己的sysconfig.bat的路径。
这个是预编译功能,每次点击编译后,都会先在终端中执行这个命令,产生最新的ti_msp_dl_config.h和ti_msp_dl_config.c,在进行正常的编译。
比如我的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”
可以明显的看到预编译的过程,无报错。
这时我在sysconfig里面随便添加一些东西,再次点击编译。
显然,编译完成后,我们再次打开ti_msp_dl_config.h和ti_msp_dl_config.c后,已经自动更新了。当然,还有一种办法,就是直接把软件里面生成好的.c.h代码,ctrl+c、ctrl+v粘贴进来,效果也是一样的。
如果编译没有报错,我们就可以进入烧录部分了。
1.3烧录之串口烧录(烧录任选一种就行了!)
串口软件下载
UniFlash 是TI专门用于对 TI 微控制器和无线连接器件上的片上闪存以及 TI 处理器的板载闪存进行编程。
选择Windows,下载后双击exe安装即可
启动uniflash
打开软件后搜索3507,选第三个。
点击start即可
安装CH340驱动
如果之前安装过CH340的驱动,则可以不用理会。
解压后执行安装即可。
将开发板用usb线连接电脑后,能在设备管理器看见ch340就好了。
串口烧录
在Application image1 栏选择代码生成的二进制文件,支持.hex和.bin文件,手动输入设备的串口号,选择波特率9600
我们需要选择刚刚编译好的hex文件empty_driverlib_src_LP_MSPM0G3507_nortos_keil.hex,位于mspm0_sdk_2_04_00_06\examples\nortos\LP_MSPM0G3507\driverlib\empty_driverlib_src\keil\Objects\empty_driverlib_src_LP_MSPM0G3507_nortos_keil.hex
在settings&utilities栏的擦除设置选择擦除内存
开发板连接到电脑之后,按住BSL按键,也就是 PA18 按键,如果你的板子没有引出这个PA18引脚为按键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当前的端口号是多少,之后手动输入到\COM Port栏。
4.下载报错 Image loading failed: Flash Generic, Loading lmages… Error. -3
答:烧录的程序不能是在中文路径下的,需放在英文路径下。
5.下载报错 Image loading failed: Flash Generic, Loading lmages… Error. -1
答:偶然性事件,重新烧录一下即可。
1.4烧录之daplink烧录
dap烧录
没想到吧,去年打智能车的遗产还能在这里发光发热。
这个很简单,连接上后,在keil里面选择daplink
里面能发现就ok
之后选择Flash Download栏,勾选Reset and Run,同时选择正确的烧录算法。
上述配置完成后点击OK,就可以开始下载代码了。
成功!
常见问题:
1.报错:Error: Flash Download failed - “Cortex-M0+”
答:原因①:接线错误;原因②:未添加下载算法
2.报错 Cannot Load Flash Device Description!
答:未添加下载算法,可以按照这个方法来添加:
3.报错PDSC: Sequence Execution failed
答:芯片被锁了,详见最后一节——解锁芯片。
2.MSPM0G3507空工程迁移
在软件开发过程中,经常需要将项目从一台计算机或开发环境迁移到另一台计算机或环境。为了确保工程能够在新环境中顺利运行,需要进行适当的打包和移植。我将尝试移植一个空文件。
前往目录ti\mspm0_sdk_2_04_00_06\examples\nortos\LP_MSPM0G3507\driverlib\empty,直接将工程复制粘贴到你所需要移植的目的地,并改成你想要的名称,我这改为exsample,示例如下,位于E:\CODE_b\diansai\exsample。
删除没有用的iar、ticlang与gcc文件夹,删除后如下所示:
在ti\mspm0_sdk_2_04_00_06\source目录下有一个source文件夹,我们直接将其复制。
然后粘贴到我们移植的exsample文件夹里面
打开keil工程文件"E:\CODE_b\diansai\exsample\keil\empty_LP_MSPM0G3507_nortos_keil.uvprojx"
点击“魔法棒”,修改头文件路径为:…\source\third_party\CMSIS\Core\Include
…\source
修改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”。如果不需要使用sysconfig,就是那个类似stm32cubemx的软件,请跳过这一步!!!不要勾选
修改linker这边,为…\source\ti\driverlib\lib\keil\m0p\mspm0g1x0x_g3x0x\driverlib.a
至此,编译其实已经能无报错了,然而目前除了一个主函数empty.c,啥也没有。
下面根据你想要编写的程序,自己点文件管理,添加你所需要的文件就可以了,有点类似于cmake的编写。
我们以基本驱动为例子,可以新建一个分组driverlib,把文件夹E:\CODE_b\diansai\exsample\source\ti\driverlib里面的文件添加一下
点击编译。无报错
烧录。成功
3.将工程迁移到vscode(不用vscode可跳过这一节)
1.安装所需环境
前往vscode,在插件里面下载EIDE,可能会弹出安装net6,安装即可
下载Cortex-Debug,用于调试
2.配置EIDE
点击左侧工具栏,点击打开插件设置
前面两个分别填写,keil安装目录下的ARMCC文件夹路径、ARMCLANG文件路径,第三个可以不管。我们使用的是第二个编译器,ARMCC6
下拉找到 EIDE.ARM.Option: Axf To Elf,打勾
点击安装实用工具,会弹出窗口
安装图片中打钩的工具,直接点击就可以安装了。如果使用JLink还需要安装JLink(v6.90)
点击导入项目
选择MDK,ARM,然后选择我们刚刚移植的工程文件,点击import
右下角会弹出内容,选yes和继续
这边修改为pyocd
使用 pip 安装安装pyocd
pip install pyocd
然后安装包:
pyocd pack --install MSPM0G3507
点击这里,编译
成功
点击这里下载
成功
在工程处右键,选择生成调试器配置模板——pyocd
随便起个名字,目标选择mspm0g3507
点击刚刚新建的调试
成功
能监视变量,看堆栈调用,看各个寄存器的值。其他调试同keil。
4.点亮一颗led
看原理图,pb2和pb3有led,输出高电平可以点亮
打开sysconfig,和1.2结尾一样。
点击左边选项栏中的gpio,再点击右上的ADD,即可添加一个gpio。
然后上面的红框,name是这一组gpio的名称,即PB。下面具体配置PB2,名称为PIN_2,输出模式,默认输出高电平,下拉电阻。
配置好后点击save,可以看到empty.syscfg的更新
;,确保是高电平。编译,烧录。
#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
DL_GPIO_setPins(LED1_PORT, LED1_PIN_2_PIN);
while (1)
{
}
}
成功!
5.解锁芯片教程
很多时候会导致芯片锁死,典型的是使用stlink,或者硬件配置错误。
解锁方式如下:
前往https://link.csdn.net/?from_id=140281150&target=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fpan.baidu.com%2Fs%2F1w-e8gsjBnzUs7NcVrcBN3A%3Fpwd%3Du1ur下载软件。
将单片机PA18接高电平,然后准备一块USB、转ttl,PA11接TXD,PA10接RXD,3V3和GND正常接。
打开应用程序MSPM0_BSL_GUI.exe,上面的选择input文件夹中任意一个例程,下面选择解锁文件BSL_Password32_Default.txt
如图所示:
下面将usb转ttl插入电脑,10秒内按下reset按钮,然后迅速点击dowmload
看到如图所示,解锁成功!