文章目录


前言

开发过TI芯片的大伙都知道,用Keil开发TI的体验真是让人一言难尽,一般我们从SDK目录下的官方例程入手,但当我们尝试移植或新建工程文件,或者打开别人发来的项目时,又会产生大量编译报错,其原因主要是因为官方的Keil例程配置了大量库文件的相关路径,导致无法随意变更项目路径。目前网上给出的方案并不完全,这里将我个人的方法分享给大家,实现项目路径与SDK库的完全隔离,放在哪里打开编译都不报错,发给其他用户就能用,大大提升了多用户开发体验,节省了不少时间与麻烦。


一、环境配置

开发TI芯片需要先下载并配置相关的环境,这里我参考是MSPM0L1306立创开发板的技术文档进行的环境配置,使用Keil开发主要是下载相应的MDK版本、MSP固件库,SDK包以及sysconfig软件,链接如下:地正星介绍 | 立创开发板技术文档中心,在离线资料下载处可以找到以上所需要的资源


我们下好SDK文件后,可以自定义选择安装的路径,这里我将其安装在D盘的 TI->SDK 文件夹里,大家可以自行选择安装的位置。

以MSPM0为例,安装好后,出现 mspm0_sdk_1_30_00_03 文件夹,待会我们需要用到的库文件与官方例程都在里面。

我们进入安装好的文件夹里看一下,其中的examples就是官方例程,source是库文件,tools是配置TI芯片用到的sysconfig软件,sysconfig可以简单理解为开发STM芯片时用的CubeMX,想在Keil中随时使用sysconfig,我们需要进行一些配置。

1.配置sysconfig

同样地,我将sysconfig自定义安装在D盘的 TI->sysconfig 文件夹内,找到 sysconfig_cli.bat 文件,复制它的地址,以我的为例,地址是:D:\TI\sysconfig\sysconfig_cli.bat

我们回到SDK文件夹内,进入刚刚介绍的 tools 文件夹,再进入 keil 文件夹,找到图示的两个文件,用记事本编辑它们。

第一个文件打开后,图示画框的部分就是需要修改的地方,蓝色部分直接照抄,红色部分根据你实际安装的位置进行修改,例如我将 mspm0_sdk_1_30_00_03 安装在了 D:\TI\SDK

第二个文件将刚刚找到的 sysconfig_cli.bat 地址复制进来,这也取决于你安装sysconfig的位置

配置好后,我们回到 mspm0_sdk_1_30_00_03 文件夹内,进入 examples->nortos->
LP_MSPM0L1306->driverlib->empty->keil
,打开Keil项目工程文件。

2.配置Keil

进入工程后,从 Tools 选项栏里找到 Customize Tools Menu... ,点击 Import ,导入我们刚刚用记事本修改过的 MSPM0_SDK_syscfg_menu_import.cfg 文件,完成后点击“OK”保存设置。

配置完成后,打开 empty.syscfg 的页面(一定要是后缀为.syscfg的页面!!!),再从 Tools 里点开新出现的选项,就可以实现从Keil里打开sysconfig了,这为我们后续的开发大大提高了效率,不过目前无需在意其中的内容,先关掉sysconfig,点击编译看看有没有报错。


二.从官方例程入手

保存后我们准备开始复制官方例程,打造一个示例空项目,以后所有的项目都可以基于它进行开发。

1.打造示例空项目

我这里将整个empty文件复制到桌面,大家可以自由选择放在想要的位置,我们开始将其与SDK目录隔离。

首先,回到 mspm0_sdk_1_30_00_03 文件夹,找到source文件夹,这里存放着库文件夹,把它直接复制到我们刚复制出来的示例空项目中。

gcciarticlang这三个文件暂时用不到,我们将其删除,节省空间。

2.配置库文件地址

打开Keil工程,点击魔法棒,我们开始修改库文件地址,按照图片修改即可,然后点击“OK”保存配置。

然后我们先移除原本的 driverlib.a 文件,从刚刚复制过来的 source 文件夹里打开 ti->driverlib ,把里面的文件添加到Keil中去(仅文件,不包含文件夹!!!)。

这里其实就是将MSPM0的库文件移到项目本地了,重新导入并配置好相对路径,就完成了与原SDK库文件的隔离。

3.配置用户自定义命令

让我们编译试一下,可以看到零错误,零警告。但是前面有一条“系统找不到指定的路径”,这个其实是跟sysconfig相关的地址,我们也对其进行配置。

首先回到SDK最开始的 tools 文件夹,找到先前已经配置好的 syscfg.bat 文件,把它复制到我们的示例空项目中。

进入Keil工程,点击魔法棒,选择 User 一栏,看到图示区域,这里展开后全文是 cmd.exe /C "$P../../../../../../tools/keil/syscfg.bat '$P' empty.syscfg" ,直接改为 cmd.exe /C "$P../syscfg.bat '$P' empty.syscfg" ,点击“OK”进行保存。

此处实际上配置的是编译前要执行的用户自定义命令。

事实上,当我们配置好sysconfig后,在Keil中重新加载,改变的是 empty.syscfg 文件。

仅有 empty.syscfg 是不够的,真正执行编译的初始化配置文件其实是 ti_msp_dl_config.c 与 ti_msp_dl_config.h ,想要更新这两个文件,必须执行一次syscfg.bat,也就是我们添加的用户自定义命令,该命令会在项目编译之前,自动执行更新配置文件的操作。

我们再编译一次试试,可以看见先前“系统找不到指定的路径”的问题已经解决了,但又出现了新的问题,提示找不到 .metadata 文件夹中的 product.json 文件,这个文件去哪找呢?

我们再次回到 mspm0_sdk_1_30_00_03 文件夹,其实 .metadata 就在这里。该文件属于隐藏项目,如果你无法看到该文件,可以点击窗口顶部的 查看 ,然后将 隐藏的项目 打上勾,就能看到隐藏的文件夹了。

.metadata 文件夹复制到我们的示例空项目中,回到Keil中再编译试试。至此,所有问题全部解决,我们成功移植并打造出了一个独立于SDK目录之外的示例空项目。

该项目可作为今后开发任何MSPM0的模板,可以打包发送给任何用户,只要该用户拥有TI芯片固件库,就能够在任何路径下修改或编译工程,大大提高了我们电赛协作开发的效率。

多用户开发仍需用记事本修改syscfg.bat文件,因为该文件中配置的是绝对路径,每个人安装sysconfig的位置都有所不同!!!

总结

本文章分享了一个对于TI芯片的多用户开发方案,并详细介绍了操作过程,对于其他MSP芯片,也可以按照相同思路进行配置。但该方案仍有缺点:项目文件的大小大约在70MB左右,略微占用空间,主要占据空间的就是库文件,如果大家有节省空间的方法,可以评论分享,与大家一起交流。

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐