首要需求阐明的是.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 all