从LM3S到LM4F TM4C ARM Cortex-M4 : Migrating Software Projects from StellarisWare® to TivaWare™

TI 已经Not Recommand for New Design (NRND) 不推荐新的设计应用LM3S,原来LM3S的产品主页也已经从TI的产品线中撤下。现在主推TM4C(刚开始称为LM4F,现在正式换为TM4C)。TM4C的性能更高,价钱更低(相同性能,其价格与ST接近)——有必要从昂贵的LM3S迁移到TM4C。

本文记录了从LM3S迁移到TM4C的过程。LM3S的固件为Stellarisware,TM4C的固件为TivaWare。

总的思想是:不管是在M3还是M4开发中,尽量用驱动库的接口Driver Library APIs,以利用驱动库提供的应用接口的延续性来实现应用程序升级。

当从M3迁移到M4后,在M3的软件工程中,用M4的驱动库替代M3的驱动库,这样就已经完成了大部分的软件迁移工作,剩下的就是资源配置修改工作了。因为,从M3到M4,虽然硬件发生本质变化,但驱动库同时也配合硬件变化做了改动,并且驱动库变化的同时保持了提供给用户相同的接口,因此用户软件不需要大幅修改。


1,在迁移之前,让我们来看看当前的TM4C与LM3S的异同

参考文件:

《Differences Among Stellaris® LM3S and Tiva™ C Series TM4C123x MCUs》

《Transitioning Designs from Stellaris® to Tiva™ C Series Microcontrollers》讲具体的各个外设变化

1)PB7 由LM3S的NMI变为普通I2C接口

2)Reset的操作有调整。但是StellarisWare 和 TivaWare的驱动库接口(Driver Library APIs)会自动处理这个调整。

3)核心电压降到了1.2,不过是由内部LDO来处理的。整个片子为单3.3V供电。

4)主晶振频率接受5~25MHZ。

5)增加了外设准备好的寄存器Peripheral Ready Registers

6)增加了动态功耗管理,深度睡眠时消耗电流约为1mA,Run mode 1 (Flash loop, all peripherals on)消耗电流为50mA,均比LM3S低50%或以上

7)RTC,时钟管理,休眠和电池管理变化很大,凸显TM4C低功耗的决心

8)增加了EEPROM,目前是2KB

9)对ROM一如既往的支持,但不支持SafeRTOS

10)目前没有TM4C支持Ethernet和I2S。但根据TI的资料显示,LM3S所有外设功能将会在TM4C的其他系列新品中实现。

(TM4C Roadmap)

11)GPIO的最大变化是针对ADC和DMA。支持任意GPIO作为ADC的trigger。

12)PWM,Watchdog,Timer的功能更为强大

13)ADC的变化有:无内置参考电压(利用3.3V VDDA GNDA作为参考电压),不能设置ADC分辨率,新支持dither控制,输入阻抗为500欧姆

14)UART SSI USB变化不大,I2C功能更加齐全

15)完全重新设计的休眠模块,解决了LM3S休眠模块的问题


2,迁移LM3S软件工程到TM4C

参考文件:

《Migrating Software Projects from StellarisWare® to TivaWare》

主要修改的是:

  • 软件工程目录结构和库名称
  • 引入C99数据类型
  • Hungarian prefixes变化导致很多数据结构变化
  • 增加GPIO导致的port number变化
  • USB device初始化方法简化了
  • 移除TivaWare不支持的函数和标记

具体修改步骤:

  • 安装TivaWare,复制M3的工程到Tiva下。例如,如果M3工程在C:\StellarisWare\boards\\, 复制它到C:\ti\TivaWare_C_Series_1.0\boards\\.
  • 为了使用C99数据类型,添加相应头文件#includes for and 到所有源文件顶部。
  • 全局替换"tTime"为"struct tm"
  • 全局替换"tBoolean"为"bool"
  • 更改port number
  • 更改器件型号及其头文件
  • 替换各种库文件,修改编译路径
  • 移除不支持的函数和标记,具体见参考文件的第8页到12页

3,开始全新的TM4C硬件设计

参考文件:《Tiva™ C Series MCU System Design Guidelines》

该参考资料主要是关于PCB布线方面。


你可能感兴趣的:(Cortex-)