91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何把IAP與APP程序進(jìn)行拼接在一起

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-03 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1寫在前面

在產(chǎn)品量產(chǎn)時(shí),產(chǎn)品具有IAP和APP兩部分程序時(shí),一般需要拼接成一個(gè)量產(chǎn)程序文件。

有人肯定會(huì)好奇,為什么要拼接成一個(gè)程序文件呢?

這個(gè)答案很簡(jiǎn)單:為了提高生產(chǎn)效率,在量產(chǎn)只燒錄一個(gè)程序文件(而不是燒錄IAP + APP兩個(gè)程序文件)。

下面寫幾點(diǎn)內(nèi)容:

理解bin、hex、axf

IAP+APP拼接方法

bin和hex互相轉(zhuǎn)換

2

理解bin、hex、axf

想要掌握程序IAP+APP程序拼接,需要理解程序文件hex、bin文件格式內(nèi)容。

先給一張三者的對(duì)比圖:

Bin文件

Bin文件就是一種沒有格式的程序文件,只是包含了程序數(shù)據(jù)。

Hex文件

Hex是由Intel制定的一種十六進(jìn)制標(biāo)準(zhǔn)文件格式,是由編譯器轉(zhuǎn)換而成的一種用于下載帶處理器里面的文件。

Hex文件格式是由一行一行的十六進(jìn)制數(shù)據(jù)組成,每行包含:開始、長(zhǎng)度、數(shù)據(jù)、類型、校驗(yàn)和等重要信息。

axf文件

axf文件是經(jīng)過編譯器編譯之后,包含具有程序、調(diào)試等更多信息的一種文件。

對(duì)比MDK-ARM編譯后三個(gè)文件大小

Objects目錄下:

Demo.axf(236K)

Demo.hex(4K)

Bin目錄下:

Demo.bin(2K)

請(qǐng)參看:關(guān)于bin、hex和axf文件格式的描述

3

IAP+APP拼接方法

用于產(chǎn)品量產(chǎn),燒錄的程序文件,一般是hex,或bin文件。

不管是hex文件,還是bin文件,我們都需要通過燒錄軟件 +燒錄(編程)工具實(shí)現(xiàn)。

燒錄軟件針對(duì)不同MCU,一般有不同的燒錄軟件。

針對(duì)STM32,一般建議使用官方提供的STVP、ST-LINK Utility和STM32CubeProg這三種編程軟件。

拼接說明

拼接IAP+APP兩段程序,一般簡(jiǎn)單方法就是:將兩個(gè)程序分別燒錄進(jìn)去,再統(tǒng)一讀取出來,保存成一個(gè)量產(chǎn)文件。

拼接說明

IAP和 APP程序的起始地址是不同的,因此燒錄進(jìn)芯片,是存儲(chǔ)在兩片區(qū)域的。

燒錄程序的時(shí)候,特別是燒錄bin文件(沒有地址)時(shí),要注意設(shè)置好起始地址。hex文件有地址地址,不用自己設(shè)置地址。

讀取“合并”程序的時(shí)候,同樣要注意起始地址,還有讀取大小,保證讀取全部程序。

比如通過ST-LINK Utility讀取STM32程序:

通過STM32CubeProg讀取STM32程序:

再次提示:

燒錄bin文件時(shí),設(shè)置好起始地址;

讀取時(shí),設(shè)置起始地址,讀取大??;

保存可選擇hex,還是bin文件;

這里推薦閱讀:我的ST-Link專欄

4

bin、hex文件互相轉(zhuǎn)換

在某些情況下需要使用特定格式的文件,比如我們遠(yuǎn)程升級(jí),要求通過bin文件實(shí)現(xiàn)。

通過上面的介紹,其實(shí)你會(huì)發(fā)現(xiàn),使用編程軟件ST-LINK Utility,或STM32CubeProg,就能直接另存為hex,或bin文件格式。

ST-LINK Utility另存為:

STM32CubeProg另存為:

之前我有介紹在MDK-ARM中,直接轉(zhuǎn)換成bin文件的文章:MDK-ARM如何生產(chǎn)Bin文件

當(dāng)然,bin和hex格式文件互相轉(zhuǎn)換的工具,網(wǎng)上有很多,感興趣的朋友可以搜索了解一下。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    169

    瀏覽量

    26063
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51618
  • BIN文件
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    9019
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    為什么不能將 USB 磁盤與 exFat 一起使用?

    不能將 USB 磁盤與 exFat 一起使用
    發(fā)表于 03-04 06:27

    阿里狗16.6,層疊表能打開,但是打開后內(nèi)容縮在一起,調(diào)整間距之后,關(guān)閉在打開還是縮在一起,怎么處理呢

    阿里狗16.6,層疊表能打開,但是打開后內(nèi)容縮在一起,調(diào)整間距之后,關(guān)閉在打開還是縮在一起,怎么處理呢 試過初始化窗口,重新破解,還有重新加載補(bǔ)丁,都不行
    發(fā)表于 02-13 11:01

    在CW32F030的IAP應(yīng)用介紹

    部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過 預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)行更新升級(jí)。 1 功能實(shí)現(xiàn) IAP 功能的實(shí)現(xiàn),
    發(fā)表于 01-22 07:20

    聚是鴻蒙氣,散是滿天星!《鴻蒙星光盛典》詮釋“在一起”的群像力量

    在“數(shù)字中國(guó)”戰(zhàn)略邁入十周年、“十四五”規(guī)劃收官之際,各地追光人用特別的方式相聚《鴻蒙星光盛典》。這場(chǎng)以“在一起”為主題的盛典,是中國(guó)科技自立自強(qiáng)之路的深情回望,是千行百業(yè)共建數(shù)字中國(guó)的生動(dòng)展示,更是場(chǎng)面向未來的集體期許。
    發(fā)表于 12-22 17:58 ?1039次閱讀
    聚是鴻蒙氣,散是滿天星!《鴻蒙星光盛典》詮釋“<b class='flag-5'>在一起</b>”的群像力量

    AS32A601型MCU芯片如何進(jìn)行IAP升級(jí)?

    、什么是IAP? IAP(In Application Programming,在應(yīng)用編程)是種技術(shù),旨在實(shí)現(xiàn)用戶應(yīng)用程序的動(dòng)態(tài)更新,而
    的頭像 發(fā)表于 12-19 11:39 ?2013次閱讀
    AS32A601型MCU芯片如何<b class='flag-5'>進(jìn)行</b><b class='flag-5'>IAP</b>升級(jí)?

    如何在CW32F030上實(shí)現(xiàn)IAP功能實(shí)現(xiàn)遠(yuǎn)程升級(jí)?

    區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)行更新升級(jí)。 IAP 功能的實(shí)現(xiàn),般將
    發(fā)表于 12-11 06:15

    硬件融合拼接器與軟件融合拼接的區(qū)別?

    、內(nèi)存和存儲(chǔ)設(shè)備等組成,具備強(qiáng)大的計(jì)算和數(shù)據(jù)處理能力。它可以將多個(gè)圖像拼接個(gè)大的全景圖像,這個(gè)過程是在硬件設(shè)備中進(jìn)行的,因此速度較快。 而軟件融合拼接則是通過軟件算法來實(shí)現(xiàn)圖像的
    的頭像 發(fā)表于 09-28 14:33 ?532次閱讀

    BootLoader app程序反復(fù)重啟,IAP升級(jí)失敗怎么處理?

    keil開發(fā)的BootLoader程序,用RT-Thread Studio開發(fā)的app程序,板子每次上電后,從BootLoader程序跳轉(zhuǎn)到app
    發(fā)表于 09-10 07:36

    AT32 MCU如何使用IAP

    。 AT32微控制器的IAP功能允許用戶在產(chǎn)品發(fā)布后方便地通過預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)行更新升級(jí)。要實(shí)現(xiàn)IAP功能,需要設(shè)計(jì)兩個(gè)項(xiàng)目代碼:
    發(fā)表于 08-08 17:13

    AT32 IAP using the USART

    -app1工作,LED4閃爍-app2工作 圖 2. IAP demo 上位機(jī) AT32 USART IAP 程序設(shè)置 地址分布 表 1.
    發(fā)表于 07-11 10:51

    如何對(duì)CYBT-223058-02模塊(非 EVAL)進(jìn)行編程?

    )的電源。 我電源的接地、TTL 電纜和模塊全部連接在一起。 我在 modustoolBox3.1 上為 EVAL 板構(gòu)建了 rfcomm_serial_Port 示例(沒有變化),然后在快速面板中點(diǎn)
    發(fā)表于 07-04 06:27

    無法將Jlink調(diào)試器與CYBT263065EVAL COOLDIM_PRG_BOARD連接在一起怎么解決?

    我無法將 Jlink 調(diào)試器與 CYBT263065EVAL COOLDIM_PRG_BOARD連接在一起
    發(fā)表于 07-03 06:24

    實(shí)現(xiàn)IAP功能,使用cubeide生成APP程序的bin文件寫入Flash之后,無法跳轉(zhuǎn)到APP程序中,為什么?

    實(shí)現(xiàn)IAP功能,使用cubeide生成APP程序的bin文件寫入Flash之后,無法跳轉(zhuǎn)到APP程序中。 但是使用KEIL編譯生成的bin文
    發(fā)表于 06-09 07:32

    CUEBIDE生成的APP程序,在寫入FLASH之后無法正常跳轉(zhuǎn)怎么解決?

    實(shí)現(xiàn)IAP的功能,使用CUEBIDE生成的APP程序的bin文件,寫入到FLASH之后,無法正常跳轉(zhuǎn)。 程序卡在/[i] 檢查棧頂?shù)刂肥欠窈戏?/ 但是用KEIL生成的bin文件寫入后
    發(fā)表于 06-05 07:15

    STM32F103 flash的app區(qū)域有上次的殘留代碼,會(huì)造成死機(jī)怎么解決?

    的代碼是連接在一起。 右圖為正常的flash中的代碼。 所以想請(qǐng)教下,左圖中的那種flash,從理論上來講,連接在正常代碼后面的異常代碼,會(huì)造成那些影響,或者隱患。 備注:圖中邊條里,其它位置的紅色
    發(fā)表于 03-11 07:29