- 本课程为精品课,您可以登录eeworld继续观看:
- MSP432产品培训(九) - MSP430和MSP432平台的代码移植(上)
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好 本次的在线培训课程是
MSP432 MCUs的产品培训的第九部分
在本次的课程中 我们将会详细介绍一个非常具体的主题
也就是如何在MSP430和MSP432这样两个平台之间
来实现代码的移植
您如果现在有基于MSP430平台的项目
需要移植到MSP432的这个平台上
那么您可能对这个部分特别感兴趣
那在这次课程中 我们会介绍MSP430和MSP432的不同层级代码之间
它是如何来实现兼容的
以及呢 会包括寄存器层级的访问代码
驱动程序库代码、中断处理以及不同的MSP功能
和固有函数是如何覆盖到不同的平台上的
那希望本次课程的这部分内容能够让您大致地了解
如何从一个平台向令一个平台移植一个现有的应用
首先 您可以看到MSP的平台呢它跨越了16位和32位的系统
因而它具有一个较高的可以移植性
总体来看 MSP430的硬件、软件、工具
和开发套件的生态系统格式有不同的组件
而TI已经做了大量的工作来确保生态系统中的这些组件
它在MSP430平台和MSP432的平台上都是同样可以使用的
您在这个图中可以看到红色部分是MSP430
和MSP432平台中共有的一些模块
蓝色部分是我们MSP432平台上新增的一些功能模块
而红色和蓝色相间的一些内容
则是在MSP430的平台上进行了扩展后的一些功能
那因此MSP430的很多组件都可以在MSP432上再次使用
而唯一无法真正移植的呢
是涉及到MSP16的它的内核部分
这个原因很明显 因为它的内核已经由CotexM4的内核完全替换了
那接下来我们可以再仔细地看一下
那些内容是可以再次使用的
而哪些内容是可以完全兼容的
以及哪些内容为MSP430的平台进行了扩展
那大家可看到 所有现有的MSP430的模块
例如 计时器A
我们的ADC 以及我们的通讯模块 我们eUSCI
那这些模块都可以在两个平台间实现一个百分百的兼容
而一些新的外设或者是ARM那边继承过来的一些外设
比如我们的Timer32 一个32位的定时器
或者是一个micro DMA
和我们MSP430当中的外设是会有所不同的
那这部分的代码
我们将提供寄存器级别的代码和驱动程序库的代码
那您可以看到现有的MSP430的外设 将会被再次使用
而MSP432和ARM部分的外设 则需要您添加新的代码
而且各个平台间的固有函数和中断处理也会各有不同
不过我们可以借助软件和编译器来弥补这些差距的
这个就为我们MSP432和MSP430的平台再增加一点相似度
接下来我们再来看看工具和开发套件
那由于我们已经进行了大量的工作来确保
我们两个平台上的硬件级和软件级都能实现兼容
所以呢 您可以看到很多现有的工具和套件
它都可以在不同的平台上再次使用
例如像我们的ULP advisor 我们的超低功耗编译器
和我们的Energy trace+ 这样的超低功耗工具
它已经从MSP430上扩展
也能够在MSP432上使用
一个高度兼容的MSP生态系统具有硬件、软件、开发工具和套件这些组件
那开发人员就可以借此轻松地在16位的MSP430
和32位的MSP432平台上
对他们的项目和代码来进行转换和移植
那现在我们阿里仔细地看一下MSP430和MSP432上的代码的兼容性
那我们将外设可以拆分不同层次的组件
首先是它的核心系统
那对于任何的器件来说
我们的内核、电源、CPU的时钟
以及内存等等的核心模块它都是必不可少的
那当你从一个平台转至另一个平台时
我们始终都要使用到一个新的核心模块
那从任何现有的平台移植到另一个平台时候的呢
那这部分模块的移植需要的工作量都是最大的
同时我们要考虑到 转换到一个新的平台时
很多新的技术创新通常也会在这里被我们使用到
那我们可以利用一个新的技术来改善功耗性能
甚至我们会用到一个新的内存的技术
那因此 迫于这些原因
必须针对这些我们使用到的新的技术和功能来找出新的软件解决方案
才能让开发人员充分地利用到这些新功能的优势
那大家 就我们大部分的移植工作呢
都需要针对这一层次的核心模块来进行
那接下里 我们看一看我们的固有函数
那固有函数呢 是一种只特定在CPU架构的一种辅助函数
那我们知道我们MSP430是一个16位的架构的平台
那这部分特定的固有函数 它就只能用于MSP430
那同样我们MSP432 它是一种Cotex M4的架构平台
那部分特定的Cotex M的固有函数呢
那就只能用于各个Cotex M的器件
那不过我们可以借助智能的编译器和我们的头文件
对很多的变化来进行整合
使得MSP430上的很多现有的固有函数也能够在MSP432上使用
那这就使得我们现有的MSP430的开发人员
能够将他们的代码很简单地复制黏贴到432上
只需要略微地更改
我们就可以在432上使用这些代码
那借助我们智能头文件和灵活的编译器
MSP432平台现在已经可以支持许多现有的MSP430的固有函数
那尤其 我们的Co-conversion studio
我们TI提供的开发环境内
它支持许多现有固有函数
例如跟低功耗模式很相关的固有函数
以及更多的一些高级的固有函数
例如延迟等等
有些固有函数 它只特定于16位的内核
无法在432上使用
那编译器就会对这些无法使用的固有函数进行检测和标志
并且它为开发人员会提供一个指南
来帮助我们开发人员来完成代码替换的过程
那有关这部分的更多的信息
请查看MSP的兼容性文件
这个文件是个标准的MSP432的头文件
那可以提供有关这些固有函数的一些详细信息
好 我们接下来看一下外设
那外设会有两种类型
一种是MSP外设
那这部分的外设和我们今天在MSP432上看到的外设可以是相同的
比如我们的Timer A、我们的eUSCI、我们的GPIO和我们的ABC等等
那在这些外设中
它有很多是在MSP430和MSP432上都是百分百相同的
如果代码它具有百分百的兼容性
那就意味着您可以直接将代码从一个平台复制黏贴到另一个平台
并且无需修改就可以直接使用的
不过呢 您必须牢记一点
由于我们目前它跨越了16位和32位的两种平台
所以我们需要确保所有的数据类型的定义
都适用于您的新的特定平台
当我们的数据类型的定义是不能确定的时候
我们推荐大家使用C99类型这样一个显示的类型定义
那还有一些外设 只是跟430平台相比呢
432平台只是略有更新
比如 ADC14和ADC12
对于这种类型的外设呢
可能只需要进行一些小的修改
如果您的应用代码中 有很多这样的外设
那么您将代码从430的平台移植到432平台的时候
可能只需要花费非常短的时间
好 接下来 我们看一下另一种外设
也就是我们的ARM外设
比如我们的DMA、我们的Timer32或者我们的Systick
那对于MSP而言呢
所有这些外设都是一个新外设
那在我们MSP430上面还没有现成的代码
可以直接在432上使用
不过呢 相同的代码您可以在其他的TI的ARM MCU上找到
比如我们的TivaC
另外呢 这部分外设我们是会提供一些完整的自动函数库的API调动的
您直接使用这些API调动也可以非常方便地来使用到这些外设
课程介绍
共计13课时,2小时30分32秒
猜你喜欢
换一换
推荐帖子
- 串口1发给串口0可以,反过来就不行,为什么
- 求助阿,兄弟姐妹们,能帮帮我吗? interrupt[UART1RX_VECTOR] void usart1_rx (void) { while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready? TXBUF0 = RXBUF1;// RXBUF1 to TXBUF0 } 以上串口0是可以正常收到串口1的数据的, inte...
- laoyuyin 微控制器 MCU
- 一个2407产生对称PWM的问题````
- 因为刚学DSP,做的是用2407产生6路3对对称PWM,一开始摸索的时候程序老是编译有问题,今天才把程序搞好``却发现我的板子出了问题,因为编的第一个程序所以没有把挖想放上来大家帮我看看这样写是不是能产生6路3对对称PWM``` 主程序如下 #include \"regs240x.h\" main() { un...
- hurdy 微控制器 MCU
- 第七章Bulk设备
- 小川工作室编写,本书为LM3S的USB芯片编写,上传的均为草稿,还有没修改,可能还有很多地方不足,希望各位网友原谅! QQ:2609828265 TEL:15882446438 E-mail:paulhyde@126.com 第七章Bulk设备 7.1 bulk设备介绍 USB通道的数据传输格式有两种,而且这两种格式还是互斥的。有消息和流两种对于流状态,不具有us...
- paulhyde 微控制器 MCU
- TI DSP .CMD 文件的编写
- CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间…… TI DSP .CMD 文件的编写 CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间. 所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据你的 芯片进行修改. 分两部分.MEMORY和SECTIONS. MEMORY { PAGE 0 ...
- DSP16 DSP 与 ARM 处理器