- 本课程为精品课,您可以登录eeworld继续观看:
- MSP432产品培训(八) - 软件资源
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好 欢迎参加MSP432MCU产品培训的系列课程
本次课程是整个系列课程的第八部分
我们将介绍MSP432的软件解决方案
现在我们要介绍MSP432的软件解决方案的一个要点
TI为MSP432系列产品提供了一个完整的软件开发包 叫MSPWare
在MSPWare中 TI提供了所有与软件相关的资源
包括所有的函数库、软件开发文档、应用手册、培训以及配套的资料等等
MSPWare中可以说已经集合了您所需要的一切
MSPWare它是一个软件开发包
它可以单独下载 也可以作为CCS
也就是TI提供的code composer studio这样的软件开发平台组件提供
TI提供的一个resource explore中的TI云开发工具它也提供MSPWare
你可以在MSPWare中找到MSP432的所有相关信息
包括用户指南 应用手册以及其他一切你会需要使用到的软件资源
那对于任何一个软件开发平台来说
它都有一个最基础的一个构建
也就是面向寄存器级别的访问代码
因此MSP432会提供所有的寄存器级别的访问的源代码
你通过之前学习 所了解和喜欢的任何一个传统的MSP430的代码示例
都可以在我们这个MSPWare中完全地获取
您可以使用器件的头文件来获取一个完整的器件的寄存器
以及相关数据位的定义
由于我们MSP430产品和432产品这两个平台共享许多的外设
所以这些共享外设的寄存器和数据位的定义呢也会完全兼容的
这使得对于一些常见的外设
比如说我们的定时器A我们的EOSCI等等
都可以非常方便地在我们MSP430和432两个平台间进行移植
那我们现在已经为MSP432所提供的外设提供了成百个开箱即用代码示例
您可以任意地浏览这些简单的C代码的示例
学习如何操作和控制不同的外设
例如图中这个简单代码示例被用来控制ADC14模块
它是使用一个寄存器访问级别的访问形式
那除了寄存器级别的一个访问操作代码之外呢
MSP432还提供了一个完整的驱动程序库
那在这个驱动程序库当中集合了所有经高度提取的API
用于实现一个更高级的高级编程
来帮助我们的软件工程师 来应对更加复杂的软件开发应用
驱动程序库提供的是易于使用和理解的API函数
那软件开发人员就不再需要一个根据密码一样的
寄存器的数据位的定义来进行外设的设置
同样的 我们之前说过了
因为MSP430和MSP432这样两个平台共享了很多的通用外设
所以您现有的运用它使用了MSP430的驱动程序库
那么内置的不同平台的外设驱动库的API
就能够减少你的移植工作的工作量
您可以查看这里的示例
了解一下驱动程序库是怎么样为软件编程人员来浓缩代码的
在图片上显示的是代码在驱动程序库当中的样子
那要完全配置一个定时器来生成PWM波 需要调用到两个函数
那这两个函数所使用到的名字
以及它们调用的参数使得我们整个代码的阅读就变得非常简单
而下方的呢 是使用传统的寄存器访问级别的C代码
那大家可以看到 使用这样的一个C代码的话 就会需要使用到更多的指令
而且 这些指令当中很多都很难一眼就领会和理解的
需要程序员来为它增加注释代码
那这样就增加了代码读取的难度
那由于MSP432的驱动程序库是在设计芯片的同时进行开发的
那这个库已经经过了全面的测试
证明了它的稳健性和高效性
因此这个MSP432的驱动程序库已经被写入我们芯片的ROM当中
那这样开发人员就可以直接读取ROM当中的驱动程序库 并且执行
那虽然ROM版本的驱动程序库非常强大
并且经过了证实 它可与最新版本的器件共同使用
但是我们用户仍然有机会可以通过增加新的功能来提高现有API的执行效率
或者也可以通过扩展写API来获得一些带有新功能的一些新函数
因此 有些开发人员会选择使用MSP432驱动程序库的源代码
而不是直接调用固化在ROM当中的库函数
那获得BSD的许可之后呢 即可对驱动程序库来进行完全的访问以获得源代码
用户完全可以根据自己的偏好
对我们的驱动程序库来进行进一步的自定义的修改
来提升或增加新功能
那另一方面 有很多开发人员会发现预先内置于ROM当中的
这个MSP432的驱动程序库很适合他们的应用
那除了刚才已经说过被证实的代买的稳健性之外
调用ROM当中的这个 driver library驱动程序库还有一些其他的优势
首先跟闪存先比执行ROM中的代码时
它的电流消耗更低 这是第一点
此外 ROM即是在整个芯片达到最高速度48MHz运行的时候
它也不需要等待周期
也就说我们ROM中的代码它始终能以最高速度48MHz来运行
最后 第三点是通过调用预先烧录在ROM中的外设驱动库
那我们就无需将外设驱动库来整个烧写录入flash当中
那这样就可以节省flash的应用代码空间
我们可以为每个应用代码释放大约25k字节的闪存空间
这是非常显著的成本降低
根据以上的一、二、三 三点理由
当我们的器件是以最高速度48MHz运行的时候
和在闪存中执行代码相比较调用ROM当中内置的外设驱动库
将释放您的代码空间降低您器件的功耗
并且代码的执行速度会更快
好 那么现在您可能会问
那ROM当中的代码并不总是最新的
那么我们怎么来判断什么时候去用什么代码
那大家都知道根据经验法则
我们最新的驱动程序库版本那永远是最好的
但是大部分的时候固话在ROM当中的API不会有变化
因为它经过了完全的测试
而有时候 由于增加了新的增强功能
所以我们使用最新的源代码版本的驱动程序库可能会更适用我们的应用
因此我们就创建了一种中间层
这个中间层被称为映射层
如果ROM里面代码是最新版本
那么这个映射一直指向ROM
如果不是最新版 就会指向flash当中的一个源代码版本
这个源代码版本它可能是某个API的最新的版本
或者是一个完全崭新的一个整个API系统
那所以开发人员一直选择使用API的映射版本
它就可以保证使用到了ROM版本也就是最稳定的版本
并且在源代码有更新的候使用到最新的版本
实际上这个实践起来是非常方便的
使用我们外设驱动库的三种惯用的调用方式
如我们现在图上所示
如果您是想要使用一个源代码版本
也就是自己把它烧录在flash当中
那您的调用就无需保持前缀
也就是API的调用将类似于这样
比如说我们用TimerA来生成PWM
我们就直接调用TimerA_generatePWM
如果您明确表示想要使用固化在ROM当中的外设驱动库的函数
那因为您知道ROM当中的函数是您想要使用并且最新的API版本
那么您就可以 在函数调用的名称前面加上一个前缀ROM_
好 那现在就变成了ROM_TimerA_generatePWM
变成这样的模式
当然了 我们使用外设驱动库最明确的方法
我们之前说过了 它是使用映射函数
那这时候 这个API的调用就变成了MAP_TimerA_generatePWM
那使用这个映射版本的时候
你就可以保证尽可能的使用到了ROM源代码中的最新版本
那么MSP432由于使用了一个Cortex-M内核
这是一个ARM标准内核
那因此它除了提供传统的寄存器级别访问代码和外设驱动库之外
它还完全符合由Cortex内核定义的一个软件接口标准
也就是我们的CMSIS
那CMSIS呢 它是Cortex-M处理器的一个标准化的硬件抽象层
那借助这个CMSIS 您可以使用CMSIS的头文件
CMSIS的固有函数以及DSP RTOS等等
高度抽象的一个库
那开发人员作为MSP432的用户
它可以来混合地使用计算器级别的访问代码
驱动程序库代码 以及由CMSIS定义的各个库
那这个将大大简化开发的时间和难度
在这里的示例它介绍了如何发挥这个混合体的作用
MSP432的头文件提供了MSP资源的所有的定义
那您可以方便地控制每一个定义
它使用到每一个寄存器位以及所有的寄存器组
同时头文件还会对相同的寄存器提供另一个标准CMSIS的定义
那将所有的一切都纳入我们Cortex的CMSIS标准化结构当中
那通过提供两种类型的定义
MSP432的器件就能使用户在开发过程中更具有灵活性
并能够对他们为自己所用到的软件类型来进行混合和匹配
比如一些用户它可能发现
他们想要的把一些现有的MSP430的一些程序代码移植到MSP432上
同时 他们可能还会需要和MSP432的驱动程序库的代码进行混合
从而 它又可以使用430上用到的TimerA定时器A
又可以使用到我们新加入的DMA或者ADC这样更加复杂的外设
最后它们还可以混入一些他们在使用其他的ARM器件时
偶然发现 并且习惯使用的一些CMSIS风格的代码
那除了低级的库和头文件之外
MSP432还提供大量高级的库
开发人员可以利用这些库快速地建立一个稳健并且高效的基本系统
这样他们才会有更多的精力去开发其他与众不同的应用
那前面讲过所有的这些库和示例
我们都可以在MSPWare当中找到
那所以您可以查看MSPWare找到这些库的更多信息
比如我们提供图形库电容式触控库和IQMath
以及更多的以应用为目标的库 比如NFC 我们CC3100 WIFI simplelink
我们的BLE&Bluetooth等等这些库
都在MSPWare当中可以用找到
那对于更多需要对多个组件外设
和并行运行的任务进行资源系统管理的MSP432的应用来说
我们也有很多支持MSP432的实时操作系统 可供用户使用
其中包括一些免费的RTOS
我们TI提供的RTOS以及Micrium μC/OS
还有更多的其他操作系统
它正在被引入我们MSP432的软件生态系统
那要了解这些库的更多信息呢
我会推荐您浏览一下我们的MSPWare
同样的呢 您可以在TI所提供的这个resource explore当中的
TI云开发工具网站上来单独地下载MSPWare
如同之前所说的呢
您也可以从CCS就是我们的Code Composer Studio
这个软件开发ADE当中获得MSPWare
那在这里 你也可以看到不同的MSP432的应用库
比如我们的外设驱动库啊 图形库等等
还可以找到有关实时操作系统的详细信息
以及各种代码示例演示项目
用于演示这些不同库的不同功能
好 那么我们MSP432 MCU产品培训的第八部分的内容就到此结束
那关于MSP432的软件介绍就到这里结束
谢谢您的观看
课程介绍
共计13课时,2小时30分32秒
猜你喜欢
换一换
推荐帖子
- 用launchpad给外接目标板仿真
- 注意事项:目标板上面的复位电容不能接,只能用二线仿真,TEST RST。 [ 本帖最后由 眼大5子 于 2012-6-11 17:28 编辑 ]...
- 眼大5子 微控制器 MCU
- 怎么测试蓝牙连接稳定性
- 大家好,情况是这样:公司外包了一个心率手环,采用蓝牙连接手机APP。 我想测试蓝牙连接的稳定性,输出一个数值:多少次连接会出现一次连接中断。 请问有没有现成的测试工具? 谢谢! ...
- pqj325 无线连接
- 为什么退出一个函数时会产生 Usage Fault?
- 一个朋友说程序死机,拿过来仿真,发现在退出某函数时就产生了一个 Usage Fault:试图在无效的 ISA 状态中执行指令。例如,不是thumb 试图在无效的 EPSR 状态中执行,例如,在BX类型指令改变状态之后。这包括从异常中返回之后的状态。 不明白。...
- academic 微控制器 MCU
- matlab很好的教程(我当做一本工具书用)
- M AT L A B是一个可视化的计算程序,被广泛地使用于从个人计算机到超级计算机范围内的各种计算机上。 M AT L A B包括命令控制、可编程,有上百个预先定义好的命令和函数。这些函数能通过用户自定义函数进一步扩展。M AT L A B有许多强有力的命令。例如,M AT L A B能够用一个单一的命令求解线性系统,能完成大量的高级矩阵处理。M AT L A B有强有力的二维、三维图形工具。M...
- 深度迷茫 DSP 与 ARM 处理器