這次出差是為了升級程序解決Bug,用戶已經(jīng)將產(chǎn)品封裝起來,無法開蓋,只能使用CAN總線來更新程序,用Bootloader實現(xiàn)。其實就是通過上位機把.bin/hex文件以CAN通訊的方式發(fā)送給單片機并存儲在規(guī)定的Flash中。這個過程與手機端更新APP類似。
以STM8單片機為例,該如何實現(xiàn)Bootloader呢?今天和大家分享一下。
01
什么是Bootloader
Bootloader是一段用于更新自身應(yīng)用軟件并獨立運行的代碼,常被用于升級產(chǎn)品和修復(fù)產(chǎn)品bug。STM8單片機如果要下載hex文件的話需要通過STVP和STLINK來實現(xiàn),單片機的引腳SWIM就是下載接口。如果產(chǎn)品在用戶端被封裝好了,無法通過SWIM來下載該怎么辦呢?就使用Bootloader,STM支持CAN和UART實現(xiàn)Bootloader。就是通過CAN通信或者UART通信將數(shù)據(jù)存放在STM8的Flash上。
02
劃分Flash區(qū)間
STM8的中斷向量跳轉(zhuǎn)地址是固定的,會跳轉(zhuǎn)到0x8000對應(yīng)中斷的偏移地址,所以會把Bootloader存放在0x8000開始的空間內(nèi),比如給Bootloader代碼所劃分的空間為4k,那么空間起始地址為:0x8000-0x8FFF;那么應(yīng)用代碼的起始地址就可以從0x9000開始。
03
修改中斷向量表
STM8的中斷向量表通過一段特定的代碼來實現(xiàn),并需要根據(jù)前文提到的空間劃分來修改。STM8的應(yīng)用程序起始地址是0x8400,默認(rèn)的向量表如下代碼所示。
__rootconstlongreintvec[]@".intvec"={0x82008080,0x82008404,0x82008408,0x8200840c,0x82008410,0x82008414,0x82008418,0x8200841c,0x82008420,0x82008424,0x82008428,0x8200842c,0x82008430,0x82008434,0x82008438,0x8200843c,0x82008440,0x82008444,0x82008448,0x8200844c,0x82008450,0x82008454,0x82008458,0x8200845c,0x82008460,0x82008464,0x82008468,0x8200846c,0x82008470,0x82008474,0x82008478,0x8200847c,};前文已經(jīng)將應(yīng)用程序的起始地址修改為0x9000,所以,向量表的的修改方法為:除了第一個元素為,其余的元素將8改為9,修改完后代碼如下:
__rootconstlongreintvec[]@".intvec"={0x82008080,0x82009404,0x82009408,0x8200940c,0x82009010,0x82009014,0x82009018,0x8200901c,0x82009020,0x82009024,0x82009028,0x8200902c,0x82009030,0x82009034,0x82009038,0x8200903c,0x82009040,0x82009044,0x82009048,0x8200904c,0x82009050,0x82009054,0x82009058,0x8200905c,0x82009060,0x82009064,0x82009068,0x8200906c,0x82009070,0x82009074,0x82009078,0x8200907c,};
04
修改ICF文件
ICF文件存放在編程環(huán)境的安裝目錄下,每個型號/系列的單片機都會對應(yīng)一個ICF 文件,需要修改一下ICF文件,這里需要根據(jù)flash空間的劃分來修改,前面將Bootloader的終止地址設(shè)置為0x9FFF,所以修改如下:
defineregionNearFuncCode=[from0x8000to0x8FFF];defineblockINTVECwithsize=0x80{rosection.intvec};place at start of NearFuncCode { block INTVEC };
05
跳轉(zhuǎn)命令
所謂跳轉(zhuǎn),就是在應(yīng)用程序中跳轉(zhuǎn)到Boot中去升級;升級完成后需要跳轉(zhuǎn)到應(yīng)用程序中,所跳轉(zhuǎn)的起始就是起始地址。Bootloader跳轉(zhuǎn)到應(yīng)用程序的代碼如下,
asm("LDW X, SP ");asm("LDA,$FF");asm("LDXL,A");asm("LDWSP,X");asm("JPF$9000");應(yīng)用程序跳轉(zhuǎn)到Bootloader中的代碼如下
sm("LDW X, SP ");asm("LDA,$FF");asm("LDXL,A");asm("LDWSP,X");asm("JPF$8000");
06
編寫交互代碼
以上設(shè)置好之后,就可以編寫交互代碼了,所以交互代碼其實就是一套協(xié)議,規(guī)定了應(yīng)用程序如何跳轉(zhuǎn)到Boot,在Boot中如何處理和存儲數(shù)據(jù),這需要上位機的支持。如果只是用于自家的產(chǎn)品,就可以自己定義協(xié)議。也可以使用標(biāo)準(zhǔn)的協(xié)議,比如汽車行業(yè)中的UDS(統(tǒng)一診斷服務(wù))。 Bootloader實現(xiàn)之后,就可以使用CAN/UART來實現(xiàn)產(chǎn)品固件的升級了。這就是Bootloader的關(guān)鍵內(nèi)容,本文你學(xué)會了嗎?
上一篇:基于STM8主控的物美價廉的毫歐表設(shè)計
下一篇:SIM868的參考設(shè)計接口的靜電防護
推薦閱讀
史海拾趣
CommScope Inc公司的前身可以追溯到1953年,在北卡羅萊納州的山核桃成立的高級電纜公司。這個公司以其卓越的電話線產(chǎn)品贏得了市場的認(rèn)可。到了1964年,康普的產(chǎn)品線開始使用高級電纜和同軸電纜,標(biāo)志著公司在電纜技術(shù)領(lǐng)域的突破。隨著技術(shù)的不斷革新,1966年,康普在卡托巴縣的福特社區(qū)開始數(shù)控制造,進一步提升了生產(chǎn)效率。1976年,大陸高級康普部門被Frank Drendel領(lǐng)導(dǎo)的投資者集團收購,這為公司日后的發(fā)展奠定了堅實的基礎(chǔ)。
隨著技術(shù)的不斷進步和市場需求的擴大,CBC株式會社開始尋求更廣闊的發(fā)展空間。1960年,CBC香港公司成立,這標(biāo)志著CBC的鏡頭產(chǎn)品開始走向國際市場。香港作為當(dāng)時亞洲的金融中心和貿(mào)易樞紐,為CBC提供了寶貴的國際資源和市場機遇。通過香港公司的努力,CBC的鏡頭產(chǎn)品逐漸在國際市場上獲得認(rèn)可。
ALLTHREAD公司最初由一群對螺紋軋制技術(shù)充滿熱情的工程師創(chuàng)立。他們看到了電子行業(yè)對高精度螺栓的迫切需求,于是決定專注于這一領(lǐng)域。經(jīng)過不斷的研發(fā)和創(chuàng)新,ALLTHREAD成功推出了首款高精度、高可靠性的螺紋軋制螺栓,迅速在市場上獲得了認(rèn)可。
隨著公司實力的不斷增強,DDD公司開始積極拓展市場。公司針對不同領(lǐng)域的需求,推出了多種定制化產(chǎn)品,滿足了客戶的多樣化需求。同時,DDD公司還積極參與國內(nèi)外展覽和交流活動,加強與同行的合作與交流,提高了公司的知名度和影響力。這些市場拓展策略的實施,為DDD公司的快速發(fā)展奠定了堅實基礎(chǔ)。
在追求經(jīng)濟效益的同時,喜美克斯公司也高度重視環(huán)境保護。他們積極采用環(huán)保材料和生產(chǎn)工藝,減少生產(chǎn)過程中的污染排放。此外,公司還積極參與各種環(huán)保公益活動,倡導(dǎo)綠色消費理念,為電子行業(yè)的可持續(xù)發(fā)展做出了積極貢獻。
在追求經(jīng)濟效益的同時,喜美克斯公司也高度重視環(huán)境保護。他們積極采用環(huán)保材料和生產(chǎn)工藝,減少生產(chǎn)過程中的污染排放。此外,公司還積極參與各種環(huán)保公益活動,倡導(dǎo)綠色消費理念,為電子行業(yè)的可持續(xù)發(fā)展做出了積極貢獻。
隨著,信號上升沿時間的減小,信號頻率的提高,電子產(chǎn)品的EMI問題,也來越受到電子工程師的光注。高速PCB設(shè)計的成功,對EMI的貢獻越來越受到重視,幾乎60%的EMI問題可以通過高速PCB來控制解決。做了,4年的EMI設(shè)計,一些心得和大家交流、交流。 ...… 查看全部問答∨ |
|
DBT Warning 00135:Cannot set breakpoints in literal pools 又來麻煩大家了,我的平臺是S3C2442,在用AXD和JTAG仿真調(diào)試bootloader時,遇到如題問題;用的代理是H-JTAG。 同時反匯編后: b ResetHandler [0xffffffff] dci &nb ...… 查看全部問答∨ |
關(guān)于EVC通過ActiveSync在線調(diào)試目標(biāo)板的問題 我想我的開發(fā)板應(yīng)該已經(jīng)和ActiveSync成功通訊上了,因為我可以通過ActiveSync看到目標(biāo)板上的文件,并且可以將文件COPY進去,但我還是無法用EVC在線調(diào)試,每次都會出現(xiàn)SERVER IS STARTED然后出現(xiàn)CONNECTING的進程條并不停的等待. 問題困擾我好長時間了, ...… 查看全部問答∨ |
5416的USB的接口設(shè)備,在連接仿真器的情況下,識別成功,傳輸數(shù)據(jù)也成功 但是BOOT后單獨上電系統(tǒng)就無法識別了,BOOT應(yīng)該是成功了,我在多處都加了閃燈程序也運行了,應(yīng)該是DSP寫描述符時候出錯了,主機得到的描述符不對,所以枚舉失敗 奇怪的是把 ...… 查看全部問答∨ |
資料大小:1583K(本論壇限制,傳不上來)資料說明:1.改移植和模板工程不包括操作系統(tǒng)核ucosⅡ的源代碼,如需使用請向操作系統(tǒng)的供應(yīng)商聯(lián)系或者網(wǎng)上下載免費的源代碼。2.本移植使用的是 ucosⅡ 2.83版本,需要在OS文件夾下添加的操 ...… 查看全部問答∨ |
學(xué)信號的不知道奧本海姆你就OUT了,這次見到真人了~~~ 在西安進行的2011 TI教育者年會上,有幸見到了這位大師級的人物,同時也被這么執(zhí)著于技術(shù)的前輩感動著。TI 首席科學(xué)家方進與奧本海姆… 查看全部問答∨ |
大學(xué)時用msp430做過畢業(yè)設(shè)計,現(xiàn)在希望進一步學(xué)習(xí),不知道這個TI MSP-EXP430FR5739實驗板套件是否可以滿足學(xué)習(xí)要求?… 查看全部問答∨ |
開發(fā)一個A/D采集系統(tǒng) 對板卡采集到的2個通道的開關(guān)量信號進行實時顯示控制,對板卡采集到的A/D數(shù)據(jù)保存到存儲器,然后對采集的數(shù)據(jù)回放顯示分析。 上位機主要完成:1. 向下位機發(fā)送命 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計與實現(xiàn)
- 應(yīng)對機器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機械透射式煙度計研究與實現(xiàn)
- 基于STM32F103的角磨機開關(guān)磁阻電機控制器的設(shè)計
- 鴻道Intewell操作系統(tǒng) 人形機器人底層操作系統(tǒng)
- 如何定位國產(chǎn)智駕芯片的終局價值?
- 新一代車規(guī)級數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國電池公司獲英國政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達有哪些技術(shù)升級?
- 自動緊急制動系統(tǒng)將強制安裝!重磅新規(guī)征求意見!
- 具有語音播報功能的超聲波液位測量系統(tǒng)設(shè)計
- 助人為樂,打榜領(lǐng)獎: EEWORLD月度問答榜換新推出~
- TI機器人系統(tǒng)學(xué)習(xí)套件,低成本開啟你的電子工程課程實戰(zhàn)之旅
- 初識易電源——聊聊你眼中的易電源!
- EEWORLD2018開年送禮,答題贏紅包
- 泰科電子工業(yè)事業(yè)部邀您云逛展 ——打破時間、空間的限制,TE Connectivity 線上工博會為您帶來沉浸式VR觀展體驗
- 有獎直播:聯(lián)詠安防監(jiān)控方案及未來技術(shù)方向 報名開始啦!
- 電源技術(shù)專輯第1期:快充參考設(shè)計大集合!
- 有獎直播|2021年STM32峰會暨粉絲狂歡節(jié)
- TI 嵌入式主題直播月——為高效、智能、低功耗系統(tǒng)設(shè)計助力
- 黑莓BBG100-1現(xiàn)身GeekBench 確認(rèn)搭載驍龍450
- 榮耀熊軍民諷刺Redmi K20:竟拿名字當(dāng)賣點
- 驍龍845加持,“次世代旗艦”堅果R1驚艷亮相
- 全球首例!瑞典無人駕駛電動卡車獲準(zhǔn)上路運貨
- Galaxy S10首發(fā)三星自研屏幕指紋:體驗超群
- 壓縮空氣儲能公司Hydrostor完成了3700萬美元的增長型融資
- 五大安全配置誰最保命?避險指數(shù)排行榜!
- 純電動車輻射,成續(xù)航、充電外消費者又一關(guān)注重點
- 現(xiàn)代開發(fā)前座中央氣囊,宣稱可降低8成撞擊傷害
- 車用半導(dǎo)體潛力巨大,聯(lián)發(fā)科能否把握機遇?