www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀](擴(kuò)展-IAP主要用于產(chǎn)品出廠后應(yīng)用程序的更新作用,上一篇博文詳細(xì)的對(duì)IAP 升級(jí)程序做了詳細(xì)的分析http://blog.csdn.net/yx_l128125/article/details/12992773,考慮到出廠時(shí)要先燒寫(xiě)IAP 再燒寫(xiě)APP應(yīng)用程序要燒寫(xiě)2次

(擴(kuò)展-IAP主要用于產(chǎn)品出廠后應(yīng)用程序的更新作用,上一篇博文詳細(xì)的對(duì)IAP 升級(jí)程序做了詳細(xì)的分析http://blog.csdn.net/yx_l128125/article/details/12992773,考慮到出廠時(shí)要先燒寫(xiě)IAP 再燒寫(xiě)APP應(yīng)用程序要燒寫(xiě)2次增加工人勞動(dòng)力基礎(chǔ)上寫(xiě)了“STM32 IAP+APP ==>雙劍合一”鏈接稍后發(fā),希望通過(guò)IAP程序的hex 文件 和 APP的hex文件 合成一個(gè)hex 或者把合成的hex文件轉(zhuǎn)成.bin 文件 減少“體力”)


一、簡(jiǎn)單框架介紹

(簡(jiǎn)單回顧上篇博文《IAP在線 升級(jí)詳解》http://blog.csdn.net/yx_l128125/article/details/12992773的幾個(gè)重要知識(shí)點(diǎn):

1、stm32內(nèi)部flash起始地址:0x0800 0000 -- 0x0802 0000 ,其中 從 0x0800 0000開(kāi)始位置存放IAP 升級(jí)程序, 從0x 0800 3000開(kāi)始的位置存放APP應(yīng)用程序[ 而APP中的中斷向量表放在0x0800 3000地方,更重要的是中斷向量表的第1項(xiàng)存放的是棧頂?shù)刂?,第二?xiàng)放的是”復(fù)位中斷“ ]

二、IAP +APP 結(jié)合的方法

IAP 和APP 的hex 文件合成1個(gè)hex 文件的方法有2種:

(1) "簡(jiǎn)單1+1"

(2) IAP 先燒寫(xiě)進(jìn)flash 的 0x0800 0000 開(kāi)始位置, APP燒寫(xiě)到 flash 的0x 0800 3000開(kāi)始的地方; 之后通過(guò)我上一篇博文的 IAP程序的文件讀出功能讀取flash 上的數(shù)據(jù)讀到一個(gè).bin文件上;


我們先來(lái)詳細(xì)分析“方法一”的操作:

1.我們?cè)O(shè)置編譯IAP程序的編譯器(如圖),這個(gè)設(shè)置意思是把IAP程序下載到flash 的0x0800 0000開(kāi)頭的位置,然后編譯程序


2.編譯完程序后,在工程目錄的output文件夾中找到編譯后生產(chǎn)的.hex文件;

用 notepad++ 或者 UltraEdit 打開(kāi) IAP 的.hex文件 和APP 的.hex 文件 , (順便問(wèn)一下.hex文件格式你會(huì)看嗎?)

hex文件格式:

(1)以行為單位,每行以冒號(hào)開(kāi)頭,內(nèi)容全部為16進(jìn)制碼(以ASCII碼形式顯示)

(2)在HEX文件里面,每一行代表一個(gè)記錄。記錄的基本格式為:


冒號(hào)本行數(shù)據(jù)長(zhǎng)度本行數(shù)據(jù)起始地址數(shù)據(jù)類(lèi)型數(shù)據(jù)校驗(yàn)碼
1 byte2 bytes1 byten byte1 byte













第一個(gè)字節(jié)表示本行數(shù)據(jù)的長(zhǎng)度;

第二、三字節(jié)表示本行數(shù)據(jù)的起始地址;

第四字節(jié)表示數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)型有:0x00、0x01、0x02、0x03、0x04、0x05。

'00' Data Rrecord:用來(lái)記錄數(shù)據(jù),HEX文件的大部分記錄都是數(shù)據(jù)記錄

'01' End of File Record:用來(lái)標(biāo)識(shí)文件結(jié)束,放在文件的最后,標(biāo)識(shí)HEX文件的結(jié)尾

'02' Extended Segment Address Record:用來(lái)標(biāo)識(shí)擴(kuò)展段地址的記錄

'03' Start Segment Address Record:開(kāi)始段地址記錄

'04' Extended Linear Address Record:用來(lái)標(biāo)識(shí)擴(kuò)展線性地址的記錄

'05' Start Linear Address Record:開(kāi)始線性地址記錄

然后是數(shù)據(jù),最后一個(gè)字節(jié)為校驗(yàn)和。

校驗(yàn)和的算法為:計(jì)算校驗(yàn)和前所有16進(jìn)制碼的累加和(不計(jì)進(jìn)位),檢驗(yàn)和= 0x100 -累加和

打開(kāi).hex內(nèi)容如下:(中間部分?jǐn)?shù)據(jù)略去)


:020000040800F2

:10000000B80B00207D250008850300088703000841

:100010009B0300089F030008A303000800000000E2

:10002000000000000000000000000000A70300081E

:10003000A903000800000000AB030008AD0300089E

。

。

:102B40000400000000000000000000000000000081

:102B50000000000000000000000000000000000075

:102B6000010203040102030406070809020406081F

:102B700000366E01000000000000000001020304A6

:042B80000607080933

:0400000508000121CD

:00000001FF


先分析第一條語(yǔ)句---- “:02 0000 04 0800 F2”



冒號(hào)本行數(shù)據(jù)長(zhǎng)度本行數(shù)據(jù)起始地址(偏移地址)數(shù)據(jù)類(lèi)型數(shù)據(jù)校驗(yàn)碼
1 byte2 bytes1 byten byte1 byte







:020000040800F2

在上面的數(shù)據(jù)類(lèi)型后2種記錄(04,05)都是用來(lái)提供地址信息的。每次碰到這2個(gè)記錄的時(shí)候,都可以根據(jù)記錄計(jì)算出一個(gè)“基”地址。對(duì)于后面的數(shù)據(jù)記錄,計(jì)算地址的時(shí)候,都是以這些“基”地址為基礎(chǔ)的。以我們的語(yǔ)句為例:


第1條記錄的長(zhǎng)度為02,LOAD OFFSET為0000,RECTYPE為04,說(shuō)明該記錄為擴(kuò)展段地址記錄。數(shù)據(jù)為0008,校驗(yàn)和為F2。從這個(gè)記錄的長(zhǎng)度和數(shù)據(jù),我們可以計(jì)算出一個(gè)基地址,這個(gè)地址為(0x0800 << 16) = 0x0800 0000,后面的數(shù)據(jù)記錄都以這個(gè)地址為基地址。

第二條語(yǔ)句----“ :10000000B80B00207D250008850300088703000841”

冒號(hào)本行數(shù)據(jù)長(zhǎng)度本行數(shù)據(jù)起始地址(偏移地址)數(shù)據(jù)類(lèi)型數(shù)據(jù)校驗(yàn)碼
1 byte2 bytes1 byten byte1 byte







:10000000B80B00207D250008850300088703000841

第2條記錄的長(zhǎng)度為10(0x10=16字節(jié)),LOAD OFFSET為0000,RECTYPE為00('00' Data Rrecord:用來(lái)記錄數(shù)據(jù),HEX文件的大部分記錄都是數(shù)據(jù)記錄),數(shù)據(jù)為B80B00207D2500088503000887030008 校驗(yàn)碼為41;此時(shí)基地址為:0x0800 0000 加上偏移地址:0x0000 這條記錄的16個(gè)字節(jié)的數(shù)據(jù)的起始地址為:0x0800000 + 0x0000 =0x0800 0000


第3條語(yǔ)句----“:0400000508000121CD”

冒號(hào)本行數(shù)據(jù)長(zhǎng)度本行數(shù)據(jù)起始地址(偏移地址)數(shù)據(jù)類(lèi)型數(shù)據(jù)校驗(yàn)碼
1 byte2 bytes1 byten byte1 byte







:0400000508000121CD

記錄的長(zhǎng)度為04,LOAD OFFSET為0000,RECTYPE為05 ,此時(shí),EIP寄存器里存放的地址:0x0800 0121; 即IP指向下一個(gè)要執(zhí)行的指令所在地址,我們來(lái)看一下IAP工程list目錄下的.map文件,其中第393行處如圖:(看到?jīng)]?0x0800 0121值main函數(shù)的入口地址)


EIP是32位機(jī)的指令寄存器,IP是指令寄存器,存放當(dāng)前指令的下一條指令的地址。CPU該執(zhí)行哪條指令就是通過(guò)IP來(lái)指示的

上圖參考hex數(shù)據(jù)文檔:http://pages.interlog.com/~speff/usefulinfo/Hexfrmt.pdf或http://microsym.com/editor/assets/intelhex.pdf

第4條語(yǔ)句---“:00000001FF” (每一個(gè).hex文件的最后一行都是固定為這個(gè)內(nèi)容)

冒號(hào)本行數(shù)據(jù)長(zhǎng)度本行數(shù)據(jù)起始地址(偏移地址)數(shù)據(jù)類(lèi)型數(shù)據(jù)校驗(yàn)碼
1 byte2 bytes1 byten byte1 byte







:00000001
FF

(每一個(gè).hex文件的最后一行都是固定為這個(gè)內(nèi)容)
記錄的長(zhǎng)度為00,LOAD OFFSET為0000,RECTYPE為01 (01' End of File Record:用來(lái)標(biāo)識(shí)文件結(jié)束,放在文件的最后,標(biāo)識(shí)HEX文件的結(jié)尾)


三、iap 和app 的.hex 文件結(jié)合

操作1:設(shè)置編譯IAP程序的編譯器(如圖),這個(gè)設(shè)置意思是把IAP程序下載到flash 的0x0800 0000開(kāi)頭的位置,然后編譯程序,生產(chǎn).hex文件;


操作2:設(shè)置編譯APP程序的編譯器(如圖),這個(gè)設(shè)置意思是把APP程序下載到flash 的0x0800 3000開(kāi)頭的位置,然后編譯程序,生產(chǎn).hex文件;



操作3:用%20notepad++%20或者%20UltraEdit%20打開(kāi)%20IAP%20的.hex文件%20%20和APP%20的.hex%20文件

把IAP的.hex%20最后一句結(jié)束語(yǔ)句去掉(即:刪除:00000001FF)

把APP的.hex%20全部?jī)?nèi)容拷貝復(fù)制到%20剛才刪掉結(jié)束語(yǔ)句的%20IAP的.hex后面(如圖)

原來(lái)第701行為:00000001FF%20的結(jié)束語(yǔ)句


操作4:把兩個(gè).hex合成的.hex文件重新命名,燒寫(xiě)到0x0800 0000 開(kāi)始位置的地址即可;

這里把 合成的.hex文件上傳到我的資源:http://download.csdn.net/detail/yx_l128125/6475171(必須把PB1管腳拉低,串口1連接超級(jí)終端才能看到升級(jí)程序的引導(dǎo)信息):


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉