MSP432入门——编译环境搭建

0x00.章索引

MSP432入门——编译环境搭建

0x01.目录

节目录

  • 0x00.章索引
  • 0x01.目录
  • 0x02.概述
  • 0x03.正式开始前...
    • 非专业“教程”
    • SimpleLink MCU SDK
    • TI drivers 与 driverlib
  • 0x04.工具与环境
  • 0x05.开发环境的搭建
  • 0x06.大功告成

0x02.概述

MSP432 系列 MCU 属于低功耗、高性能的微控制器。这个系列产品是 TI 的 MSP 低功耗微控制器系列中的产品, 本系列文章将通过使用TI drvers对MSP432P401R进行一些简单的开发。
本人接触过的MCU算不上多,之前大多数时间都在和STM32打交道,大学四年经历了两次电赛,都没有用上MSP432系列的单片机。这次偶然间由于一个项目需要接触到这款芯片实在让我吃足了苦头,感触特别深的一点就是对于这种相对小众、新兴的MCU(或许是我坐井观天了),网上的参考资料的缺失真的大大增加了开发难度,同时也侧面印证了我对于单片机原理还是不够熟悉。所以将开发MSP432的过程记录了下来,给后来者对于MSP432系列的单片机的开发尽一份绵薄之力~

0x03.正式开始前…

在对MSP432系列单片机进行正式开发时,开发者需要知道以下几个概念:

非专业“教程”

本人目前还是在校大四狗一枚,与其说这是一篇教程,不如说这是一篇自己开发MSP432的心得,叙述过程中难免会有问题,麻烦大家多指正。

SimpleLink MCU SDK

SimpleLink MCU SDK在官方中文文档中的定义:

SimpleLink™ 微控制器 (MCU) 软件开发套件 (SDK) 是一整套经过验证、配备全套文档的驱动程序、堆栈和代码示例,使工程师能够使用德州仪器 (TI) 的 SimpleLink 联网MCU 系列开发创新和差异化的应用。

我们可以将它理解为一套兼容性极强的HAL库,开发者可以在CCS通过访问"View-Resource Explorer"直接访问与下载这套SDK的最新版本,也可以直接在浏览器中访问TI Resource Explorer实现在线对SDK文档的查阅等操作。通过阅读SDK的说明文档,开发者甚至可以在没有看过该MCU的用户指南的前提下,直接调用该SDK提供的API,实现对MSP432的简单编程与应用。

TI drivers 与 driverlib

在开发者下载了MSP432的SDK后,不难发现,在SDK的目录下,TI提供了两套不同的库文件,名字分别为"TI drivers"与"driverlib",那么TI为什么提供给开发者两套不同的库呢?经过我一边阅读两种库的说明文档与在网络上查阅资料,能够得到以下结果:

  • TI drivers or driverlib. Which one should I use?
  • what is the difference between #include and #include ??
  • CCS: is ti driver a wrap over driverlib

以上三个链接均是在TI的官方论坛中找到的类似问题(博主英文也不好,但是实在找不到相关的中文资料与说明),通过以上链接中帖子底下的回答,我们可以得到以下结论:

  • TI drivers库的可移植性更强,比driverlib库更加抽象
  • 一般在RTOS中使用TI drivers
  • 使用TI drivers时可能有一些功能单靠这个库给出的API是无法实现的,这时候我们不得不选择直接对寄存器进行访问或改用driverlib
  • 由于driverlib相对于TI drivers更为底层,所以有一些TI drivers独有的功能(例如回调函数)需要使用driverlib的开发者结合MCU的中断函数进行手动实现

附上TI drivers or driverlib. Which one should I use?中TI工作人员的一段解答:

There is a fair amount of work done to abstract you from having to know the driver library calls or the register level programming. Today, I believe that the driverLib gives you almost complete access to the device functionality. We are continuing to work and develop the TIDrivers to reach that same level of access.

根据以上了解的情况,我决定选用TI drivers进行项目开发(CSDN以及其他各大中文电子论坛中,关于MSP432开发的大部分内容都是基于driverlib或寄存器,没有足够的参考资料让我走了许多弯路,这也是促进我记录关于使用TI drivers开发MSP432 MCU的原动力)

0x04.工具与环境

  • CCS IDE 10.0.0 或以上版本
  • MSP432 SDK 本文章使用SDK版本为3.40.00.05
  • MSP432P401R LaunchPad
  • VS Code 非必需 TI官方推荐使用的CCS没有代码自动补全功能,用起来实在是一言难尽

0x05.开发环境的搭建

  1. 在下载了CCS与MSP432的SDK后,安装CCS,这一步就不展开说明了
  2. 打开CCS,在菜单栏选择"Window–Preferences–Code Composer Studio–Products-Install",然后在弹出的文件浏览框中选择SDK的安装路径
    MSP432入门——编译环境搭建_第1张图片
  3. 在CCS的菜单栏中选择"View-Resource Explorer",访问TI的SDK资源
  4. 选中"Software/SimpleLink MSP432P4 SDK/Examples/Development Tools/MSP432P401R LaunchPad - Red 2.x(Red)/TI Drivers/"目录中的"display"工程,我们可以看到在工程说明文档的摘要中的说明:

Uses the Display driver to write output via the XDS100UART and the available LCD display.

由此可知,通过该例程,我们可以使用XDS100UART传输数据到PC中。我们将工程作为测试编译环境的示例工程,进行编译测试,如下图所示导入工程
MSP432入门——编译环境搭建_第2张图片

  1. 导入工程后,尝试使用快捷键"Ctrl+B"对该工程进行编译

若编译结果存在"msp.h"头文件缺失的error,需要进行如下配置:
手动将"SDK目录/source/ti/devices/msp432p4xx/inc"文件夹复制至工程目录下
选中CCS中Project Explorer栏中的display…工程,“右键-Properties-CCS Build-ARM Compiler-Include Options"在右边的配置框中,添加”${PROJECT_ROOT}/inc"

MSP432入门——编译环境搭建_第3张图片
选择"Properties-CCS Build-ARM Compiler-Predefined Symbols"在右边的"Pre-define NAME"配置框中,添加"_MSP432P401R_"

MSP432入门——编译环境搭建_第4张图片

再次编译,没有遇到问题(至少我电脑的环境是这样),连接LaunchPad,点击工具栏的Flash按钮进行程序烧录

MSP432入门——编译环境搭建_第5张图片
烧录后,点击菜单栏"View-Terminal"并打开XDS100的串口通道(Serial port不同的电脑不一定相同)
MSP432入门——编译环境搭建_第6张图片
如果不出意外,现在就能够在打开的串口接收界面中得到MCU发给PC的LED状态数据,符合工程说明文件所述现象

Run the example.
A splash screen will be displayed on the LCD and the string “Hello Serial!” on UART
CONFIG_GPIO_LED_0 is toggled periodically
The state of LED0 is output periodically on the UART and the LCD

MSP432入门——编译环境搭建_第7张图片

0x06.大功告成

至此,MSP432的编译环境搭建完成!

你可能感兴趣的:(MSP432入门不完全指南)