LM3S系列单片机,用BootLoader升级代码应用笔记
.xcl和.icf都是IAR环境下外部链接器文件,.xcl是IAR 4.--版本的,.icf是5.--版本的,两种文件格式有很大不同。
周立功官网上的资料《LM3S系列单片机串行(UART)升级方案解决》里面的bootloader源码以及相关的pdf都是针对IAR 4.--版本而言的,我用的是IAR V5.3,当资料里讲到“配置连接文件”一节时,我就感觉相当的迷茫,因为对于IAR V5.3,连接文件是不支持4.--版本的.xcl文件的。.xcl和.icf都是告诉编译器单片机内存怎么分配的,全局变量放在哪里,局部变量放在哪里等等。
对于使用了IAR 5.--版本连编写程序的用户而言,解决的办法可以做.icf和.xcl的版本迁移,或者上流明官网下最新的驱动库,驱动库的bootloader源码里有一个.icf的连接文件 ,或者用最笨最简单的办法:用IAR 4.--版本编译bootloader源码下载到目标板,然后用IAR5.--编译的代码只需要更改那个LM3S.icf里面的define region FLASH = mem:[from 0x00000000 to 0x0003ffff];
用bootloader通过UART(或者其他通讯口)来升级代码的原理,就是因为bootloader的代码里有一个判断:指定一个管脚(默认是PB4)为条件,检测到这个管脚为低,则运行升级代码的功能,为高,就运行用户下载的程序的功能,总之,系统一上电,bootloader(就是一段代码)都是最先执行的。当然升级代码只是bootloader众多功能之一。
下载时操作流程:1.用IAR 4.--版本将原bootloader代码烧入单片机中 2.更改目标代码的LM3S.icf(IAR5.--)文件,将FLASH的起始地址改为800,rebuild all
LM3S系列单片机BootLoader升级代 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)