LM3S系列單片機,用BootLoader升級代碼應用筆記
.xcl和.icf都是IAR環(huán)境下外部鏈接器文件,.xcl是IAR 4.--版本的,.icf是5.--版本的,兩種文件格式有很大不同。
本文引用地址:http://2s4d.com/article/201611/321177.htm周立功官網(wǎng)上的資料《LM3S系列單片機串行(UART)升級方案解決》里面的bootloader源碼以及相關的pdf都是針對IAR 4.--版本而言的,我用的是IAR V5.3,當資料里講到“配置連接文件”一節(jié)時,我就感覺相當?shù)拿悦?,因為對于IAR V5.3,連接文件是不支持4.--版本的.xcl文件的。.xcl和.icf都是告訴編譯器單片機內存怎么分配的,全局變量放在哪里,局部變量放在哪里等等。
對于使用了IAR 5.--版本連編寫程序的用戶而言,解決的辦法可以做.icf和.xcl的版本遷移,或者上流明官網(wǎng)下最新的驅動庫,驅動庫的bootloader源碼里有一個.icf的連接文件 ,或者用最笨最簡單的辦法:用IAR 4.--版本編譯bootloader源碼下載到目標板,然后用IAR5.--編譯的代碼只需要更改那個LM3S.icf里面的define region FLASH = mem:[from 0x00000000 to 0x0003ffff];
用bootloader通過UART(或者其他通訊口)來升級代碼的原理,就是因為bootloader的代碼里有一個判斷:指定一個管腳(默認是PB4)為條件,檢測到這個管腳為低,則運行升級代碼的功能,為高,就運行用戶下載的程序的功能,總之,系統(tǒng)一上電,bootloader(就是一段代碼)都是最先執(zhí)行的。當然升級代碼只是bootloader眾多功能之一。
下載時操作流程:1.用IAR 4.--版本將原bootloader代碼燒入單片機中 2.更改目標代碼的LM3S.icf(IAR5.--)文件,將FLASH的起始地址改為800,rebuild all
評論