×
嵌入式 > 嵌入式开发 > 详情

LM3S系列单片机,用BootLoader升级代码应用笔记

发布时间:2020-08-24 发布时间:
|
首先需要说明的是.xcl和.icf的区别:

.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 all3.拉低PB4,复位目标板,用LM Programmer将上一步生成的.bin(在Debug->Exe里)烧入单片机 4.拉高PB4,复位目标板,此时将执行用户代码。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于嵌入式系统的CAN总线网络通信流程设计