新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LM3S系列單片機(jī),用BootLoader升級(jí)代碼應(yīng)用筆記

LM3S系列單片機(jī),用BootLoader升級(jí)代碼應(yīng)用筆記

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
首先需要說(shuō)明的是.xcl和.icf的區(qū)別:

.xcl和.icf都是IAR環(huán)境下外部鏈接器文件,.xcl是IAR 4.--版本的,.icf是5.--版本的,兩種文件格式有很大不同。

本文引用地址:http://butianyuan.cn/article/201611/321177.htm

周立功官網(wǎng)上的資料《LM3S系列單片機(jī)串行(UART)升級(jí)方案解決》里面的bootloader源碼以及相關(guān)的pdf都是針對(duì)IAR 4.--版本而言的,我用的是IAR V5.3,當(dāng)資料里講到“配置連接文件”一節(jié)時(shí),我就感覺(jué)相當(dāng)?shù)拿悦?,因?yàn)閷?duì)于IAR V5.3,連接文件是不支持4.--版本的.xcl文件的。.xcl和.icf都是告訴編譯器單片機(jī)內(nèi)存怎么分配的,全局變量放在哪里,局部變量放在哪里等等。

對(duì)于使用了IAR 5.--版本連編寫(xiě)程序的用戶而言,解決的辦法可以做.icf和.xcl的版本遷移,或者上流明官網(wǎng)下最新的驅(qū)動(dòng)庫(kù),驅(qū)動(dòng)庫(kù)的bootloader源碼里有一個(gè).icf的連接文件 ,或者用最笨最簡(jiǎn)單的辦法:用IAR 4.--版本編譯bootloader源碼下載到目標(biāo)板,然后用IAR5.--編譯的代碼只需要更改那個(gè)LM3S.icf里面的define region FLASH = mem:[from 0x00000000 to 0x0003ffff]; ---可執(zhí)行程序的地址

用bootloader通過(guò)UART(或者其他通訊口)來(lái)升級(jí)代碼的原理,就是因?yàn)閎ootloader的代碼里有一個(gè)判斷:指定一個(gè)管腳(默認(rèn)是PB4)為條件,檢測(cè)到這個(gè)管腳為低,則運(yùn)行升級(jí)代碼的功能,為高,就運(yùn)行用戶下載的程序的功能,總之,系統(tǒng)一上電,bootloader(就是一段代碼)都是最先執(zhí)行的。當(dāng)然升級(jí)代碼只是bootloader眾多功能之一。

下載時(shí)操作流程:1.用IAR 4.--版本將原bootloader代碼燒入單片機(jī)中 2.更改目標(biāo)代碼的LM3S.icf(IAR5.--)文件,將FLASH的起始地址改為800,rebuild all3.拉低PB4,復(fù)位目標(biāo)板,用LM Programmer將上一步生成的.bin(在Debug->Exe里)燒入單片機(jī) 4.拉高PB4,復(fù)位目標(biāo)板,此時(shí)將執(zhí)行用戶代碼。




評(píng)論


技術(shù)專區(qū)

關(guān)閉