
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、atmega48的bootloader的軟件實(shí)用方法是公司推出的第一款真正意義上的risc結(jié)構(gòu)8位,具有先進(jìn)的命令集及單時(shí)鐘周期命令執(zhí)行時(shí)光,數(shù)據(jù)吞吐率可高達(dá)1,其性能顯然優(yōu)于其他類型8位單片機(jī)。作為avr主流產(chǎn)品,mega系列的無(wú)數(shù)產(chǎn)品(mega8megal6mega32mega8535等)在硬件上都支持boot-loader功能。這樣可靈便運(yùn)行boot區(qū)程序,實(shí)現(xiàn)在應(yīng)用編程(iap)及一些高級(jí)應(yīng)用,如系統(tǒng)智能升級(jí),密碼校驗(yàn)自庇護(hù),遠(yuǎn)程系統(tǒng)更新等。但有很高性價(jià)比的mega48在硬件上卻不支持bootloader功能。因此,本文針對(duì)mega48首次提出兩種軟件實(shí)現(xiàn)bootloader的辦法:跳
2、轉(zhuǎn)保存法和倒置法。1 atmega48 bootloader的軟件實(shí)現(xiàn)辦法mega48在硬件上不支持bootloader功能,不能像其他產(chǎn)品那樣通過(guò)編程來(lái)設(shè)置相應(yīng)的熔絲位以實(shí)現(xiàn)bootloader,只能通過(guò)軟件來(lái)實(shí)現(xiàn)。在mega48上實(shí)現(xiàn)bootloader的關(guān)鍵在于通過(guò)軟件實(shí)現(xiàn)程序存儲(chǔ)器空間劃分。復(fù)位后,boot區(qū)獲得mcu控制權(quán),自編程結(jié)束后mcu控制權(quán)返還給app區(qū).以下將具體介紹本文提出的兩種新辦法。1.1 跳轉(zhuǎn)保存法本辦法的核心在于跳轉(zhuǎn)和保存,因此命名為跳轉(zhuǎn)保存法。跳轉(zhuǎn)指上電后mcu跳轉(zhuǎn)至boot區(qū),mcu控制權(quán)被boot區(qū)獲得。保存指對(duì)app區(qū)程序復(fù)位地址的保存,惟獨(dú)保存了該地址才
3、干保證mcu控制權(quán)正常返還給app區(qū)。跳轉(zhuǎn)保存法采納普通分區(qū)方式,即app區(qū)位于程序存儲(chǔ)器空間的低地址處,boot區(qū)在高地址處。因本文用法的上位機(jī)軟件為avrosp,boot區(qū)需占用1 kb。此外,因?yàn)閍tmega48不支持通過(guò)熔絲位修改程序的復(fù)位向量,故需多劃分給boot區(qū)4個(gè)頁(yè)面大小的空間。為提高程序的可移植性,可用法預(yù)定義語(yǔ)句來(lái)劃分boot區(qū)大小,詳細(xì)實(shí)現(xiàn)如下:define pagesize 64每個(gè)頁(yè)面由64個(gè)字節(jié)組成define app_pages (4*1024pagesize) - (1*1024+256)pagesize)app區(qū)的頁(yè)面數(shù)define app_end app_p
4、ages*pagesizeapp區(qū)共占用的字節(jié)數(shù)在編譯過(guò)程中,因?yàn)閕ccavr編譯器只支持標(biāo)準(zhǔn)的boo了區(qū)大小設(shè)置,即25651210242048 kb。故用法下面辦法定義boot區(qū)大??;pragma text:mytextvoidboot()pragma text;text編譯過(guò)程中,在projectoptionstarget的other options中,添加“-bmytext;0x?”,其中0x?為boot區(qū)開頭的地址。這樣就可以按照實(shí)際需要設(shè)定boo了區(qū)大小。這對(duì)于囫圇程序空間惟獨(dú)4 kb的atmcga48來(lái)說(shuō),是十分適合的。程序詳細(xì)流程1所示。1所示,boot區(qū)程序塊的第一步就是讀取
5、eeprom中的app區(qū)原復(fù)位地址,以便單片機(jī)在執(zhí)行boot區(qū)程序條件不成立時(shí),跳轉(zhuǎn)到app區(qū)執(zhí)行程序。eeprom_read(0xfe,appreset);當(dāng)執(zhí)行boot區(qū)程序條件成立時(shí),單片機(jī)將執(zhí)行boot區(qū)程序來(lái)更新app區(qū)中的內(nèi)容。這里特殊要注重對(duì)即將更新到app區(qū)內(nèi)程序復(fù)位地址的處理:保存該程序中復(fù)位地址到ram中,并修改該地址為boot區(qū)人口地址。這個(gè)工作必需在頁(yè)面填充前完成,否則在更新后,單片機(jī)復(fù)位運(yùn)行不會(huì)首先跳轉(zhuǎn)到boot區(qū)。if(address=o)appreset=data;data=bootreset; boot區(qū)的入口bootreset=0x1300boot區(qū)程序塊最后
6、一步是對(duì)app區(qū)程序復(fù)位地址的保存。惟獨(dú)通過(guò)上電復(fù)位才干移交mcu控制權(quán)給app區(qū),這將導(dǎo)致ram被清零。為了保存ram中的原app區(qū)程序復(fù)位地址,需上電復(fù)位前,將這個(gè)地址保存到eeprom中。eeprom_write(oxfe,appreset);值得一提的是,在第一次運(yùn)行時(shí),程序并不能挺直跳轉(zhuǎn)到boot區(qū)首地址,所以第一次運(yùn)行時(shí),app區(qū)內(nèi)容應(yīng)為空。這樣,當(dāng)單片機(jī)上電運(yùn)行時(shí),程序指針(pc)會(huì)自增向下運(yùn)行到第一句可執(zhí)行代碼,即boot區(qū)中的首行代碼。同樣,第一次運(yùn)行時(shí)也不行能讀取出正確的返回app區(qū)的入口地址(取出值為0xff),所以第一次運(yùn)行時(shí)必需保證執(zhí)行boot區(qū)程序條件成立,否則將無(wú)
7、法正確跳回到app區(qū)。惟獨(dú)執(zhí)行了boot區(qū)程序,才干寫入正確的app返回地址到eeprom中,從而為以后的運(yùn)行做好預(yù)備。跳轉(zhuǎn)保存法遵循了bootloader的常規(guī)實(shí)現(xiàn)流程,但它的mcu控制權(quán)交接處理比較復(fù)雜,下文將提到的倒置法就很好地解決了這個(gè)問(wèn)題。1.2 倒置法普通來(lái)說(shuō),程序存儲(chǔ)區(qū)的上部為npp區(qū),下部為boot區(qū),這也是常規(guī)辦法所實(shí)行的分區(qū)辦法。這種分區(qū)辦法由支持bootloader功能的芯片程序存儲(chǔ)區(qū)中rww和nrww的劃分方式所打算的。針對(duì)mega48,它的程序存儲(chǔ)區(qū)沒有rww區(qū)和nrww區(qū)之分,spm命令可以在囫圇flash區(qū)中執(zhí)行,所以大可不必拘泥于普通邏輯,徹低可以把a(bǔ)pp區(qū)和b
8、oot區(qū)倒置,即把程序存儲(chǔ)區(qū)的上部劃分為boot區(qū),下部劃分為app區(qū)。本文中將這種分區(qū)辦法稱為倒置分區(qū)辦法。倒置法背棄了常規(guī)分區(qū)形式,創(chuàng)新地采納倒置分區(qū)法對(duì)程序存儲(chǔ)區(qū)舉行分區(qū)。這樣,在每次上電后,boot區(qū)自動(dòng)獲得mcu控制權(quán),而不需修改和保存用戶程序復(fù)位向量,這比跳轉(zhuǎn)保存法簡(jiǎn)便。boot區(qū)大小劃分仍用法預(yù)定義語(yǔ)句,詳細(xì)實(shí)現(xiàn)如下:define pagesize 64define app_pages(4096pagesize)-(1024pagesize)define app_end app_pages*pagesize在對(duì)app區(qū)程序編譯時(shí),編譯器的配置辦法類似于常規(guī)辦法中對(duì)boot區(qū)程序編
9、譯時(shí)的配置倒置法流程2所示。2所示,當(dāng)執(zhí)行boot區(qū)程序條件不成立時(shí),程序跳轉(zhuǎn)至app區(qū)入口處,該地址是固定的(4096"1024)。詳細(xì)實(shí)現(xiàn)如下:asm(“jmp 0x0c00n”);跳轉(zhuǎn)到app區(qū)開頭執(zhí)行需要注重的是,中斷向量空間在程序存儲(chǔ)器的低地址上,這正巧位于boot區(qū)中,故為了增強(qiáng)app區(qū)和b00t區(qū)兩部分程序的自立性,可在app區(qū)中人為構(gòu)建除復(fù)位向量以外的其他中斷向量空間。在自編程過(guò)程中,實(shí)施頁(yè)寫入時(shí),不是按常規(guī)辦法的挨次從第一個(gè)頁(yè)開頭更新,由于需更新的是app區(qū)所在的頁(yè)面,而不是boot區(qū)所在的,所以要從app區(qū)所在的頁(yè)面處開頭更新。倒置法打破了常規(guī)的分區(qū)模式,大大簡(jiǎn)化了對(duì)mcu控制權(quán)的處理,但其頁(yè)面更新處理較為繁瑣。跳轉(zhuǎn)保存法則因沿襲了常規(guī)處理方式,所以頁(yè)面更新無(wú)需做特殊處理,并能很好地兼容硬件實(shí)現(xiàn)bootloader的程序。用戶可以按照實(shí)際需要來(lái)挑選辦法。2 硬件測(cè)試原理圖及結(jié)果調(diào)試硬件原理圖3所示。圖3中的isp接口是用來(lái)完成第一次非bootloadcr的編程方式,從而建立bootloader的應(yīng)用環(huán)境。這以后的每次編程均可以通過(guò)串口挺直完成,不需要任何其他設(shè)備。在本文中用法的編譯環(huán)境為iccavr demo版,通過(guò)用法avr單片機(jī)的井口下載線完成b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)業(yè)園在老工業(yè)區(qū)改造中的角色與策略
- 2025廣西廣電大數(shù)據(jù)科技有限公司春季招聘9人筆試參考題庫(kù)附帶答案詳解
- 與銀行保證合同范本
- 二零二五年度旅游行業(yè)加盟合同
- 2025至2030年中國(guó)聚丙烯造紙助劑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度企業(yè)財(cái)產(chǎn)一切險(xiǎn)保險(xiǎn)合同范本
- 2025年度購(gòu)房合同轉(zhuǎn)讓及物業(yè)移交管理服務(wù)協(xié)議
- 2025年度新能源企業(yè)員工聘用創(chuàng)新合同
- 二零二五年度藝人網(wǎng)絡(luò)文學(xué)改編簽約協(xié)議
- 2025年度購(gòu)房公積金提取合同解除書
- 高新技術(shù)企業(yè)認(rèn)定申請(qǐng)書樣例與說(shuō)明
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter6 Tree
- 高壓氧科工作總結(jié)高壓氧科個(gè)人年終總結(jié).doc
- 《政治學(xué)概論》教學(xué)大綱
- 橋梁缺陷與預(yù)防
- 食品生物化學(xué)習(xí)題謝達(dá)平(動(dòng)態(tài))
- 新蘇教版小學(xué)科學(xué)三年級(jí)下冊(cè)全冊(cè)教案(2022年春修訂)
- 保安員工入職登記表
- 睿達(dá)RDCAM激光雕刻切割軟件V5.0操作說(shuō)明書
- 機(jī)械設(shè)計(jì)基礎(chǔ)平面連桿機(jī)構(gòu)課件
- 人力資源部經(jīng)理崗位說(shuō)明書
評(píng)論
0/150
提交評(píng)論