自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不用工具,合并 Bootloader 和 APP 文件就是這么簡(jiǎn)單!

開發(fā) 開發(fā)工具
只要你經(jīng)歷過稍微復(fù)雜一點(diǎn)的項(xiàng)目,一般都會(huì)要求 BOOT 和 APP 兩個(gè)程序,即是為了方便客戶功能升級(jí),也是為了咱自己解 BUG,所謂好處多多。

[[440222]]

本文轉(zhuǎn)載自微信公眾號(hào)「魚鷹談單片機(jī)」,作者魚鷹Osprey。轉(zhuǎn)載本文請(qǐng)聯(lián)系魚鷹談單片機(jī)公眾號(hào)。

只要你經(jīng)歷過稍微復(fù)雜一點(diǎn)的項(xiàng)目,一般都會(huì)要求 BOOT 和 APP 兩個(gè)程序,即是為了方便客戶功能升級(jí),也是為了咱自己解 BUG,所謂好處多多。

剛畢業(yè)那年,魚鷹接手的項(xiàng)目中就需要 BootLoader,為此,魚鷹寫了幾篇相關(guān)的筆記《固件升級(jí)經(jīng)驗(yàn)總結(jié)》《STM32固件升級(jí)之基礎(chǔ)知識(shí)(一)》(關(guān)注公眾號(hào),菜單欄中有合集,或點(diǎn)擊藍(lán)色字體查看)。

這里面介紹的升級(jí)知識(shí)不管對(duì)初學(xué)者還是有經(jīng)驗(yàn)的道友來(lái)說,都有一定的參考價(jià)值。特別是里面對(duì)一些特殊要求的處理,更有巧妙的設(shè)計(jì)(比如最后才更新 APP 前 8 個(gè)字節(jié),比如傳參等問題)。

今天魚鷹繼續(xù)介紹如何合并 BOOT 和 APP 兩個(gè)程序,方便一次下載。

在網(wǎng)上,有各種各樣的合并方法,有通過 J-flash 工具的,有通過寫入單片機(jī)再讀回來(lái)的,有自己寫合并程序的,或者魚鷹介紹的專業(yè)工具 《功能強(qiáng)大的 HEX 開源轉(zhuǎn)換工具,你值得擁有》,可謂八仙過海,各顯神通。

以上方法大部分方法都要使用工具,或者過程繁瑣。那么有沒有一種快速、簡(jiǎn)單、方便的不需要借助工具的合并方法呢?當(dāng)然有了。

今天魚鷹就介紹這個(gè)史上最簡(jiǎn)單的方法(這可是老工程師傳授的技巧):

手工法

1、復(fù)制bootlaoder 的 HEX 文件后用記事本打開;

2、刪除最后一行(一般是 :00000001FF);

3、打開 APP 的HEX 文件;

4、復(fù)制所有 APP 文件的內(nèi)容,粘貼到第二步文件修改后的 Boot 文件末尾。

5、保存修改后的 boot 文件,這個(gè)就是合并后的文件了。

搞定!!沒有借助任何工具(記事本算不?),在沒有工具的情況下,最快的解決方案!!!

自動(dòng)法

既然只是對(duì)文件的刪除、追加操作,我們完全可以用腳本代替,所以魚鷹寫了一個(gè)非常非常簡(jiǎn)單的腳本,幫助我們自動(dòng)完成上面的操作(本來(lái)想用windows 的批處理,可惜太菜了,搞不定,只能用 shell 了,如果有道友會(huì)這些操作,歡迎留言,這樣就更簡(jiǎn)單了)。

第一步,先安裝 git bash,這個(gè)工具應(yīng)該開發(fā)人員基本都安裝了才是,就如 MDK 一樣,畢竟 git 這么火。

然后獻(xiàn)上魚鷹編寫的腳本:

  1. #!/bin/bash 
  2. #"C:\Program Files\Git\bin\sh.exe" --login -i -c "./boot_app.sh"  # MDK 中執(zhí)行的命令 
  3.  
  4. boot_name_file_hex=./bootloader.hex          #  BOOT 文件所在位置和名稱 
  5. app_name_file_hex=./Objects/app.hex           #dir_file_name_hex=`find ${app_dir_file_hex} -name "*.hex"
  6. boot_app_name_file_hex=./mege-app-boot.hex  
  7.  
  8. cp ${boot_name_file_hex}  ${boot_app_name_file_hex}     # 復(fù)制新文件 boot 文件 
  9. sed -i '$d' ${boot_app_name_file_hex}               # 刪除最后一行 
  10. cat ${app_name_file_hex} >>  ${boot_app_name_file_hex} # 追加文件 

將上面的文件保存為 boot_app.sh ,然后把它放在工程文件同級(jí)目錄下,比如這樣:

最后工程配置一下:

設(shè)置命令(在上面的文件開始處已注釋)

  1. "C:\Program Files\Git\bin\sh.exe" --login -i -c "./boot_app.sh" 

注意上面 "C:\Program Files\Git\bin\sh.exe" 路徑和自己安裝的 git 工具有關(guān)可以自行修改,boot 和 app 文件名也是如此。

完成以上操作后,編譯后就會(huì)自動(dòng)在工程目錄下生成 mege-app-boot.hex 文件,這就是你要的合并文件了(名字可以隨意取)。

關(guān)于如何下載

既然說不要工具,有種下載也不用 j-flash 或 STM32 ST-LINK Utility 呀!

安排上:《如何使用 KEIL 下載 HEX 文件?》

這樣不就一條龍服務(wù)了嘛,從如何制作 bootloader 到如何合并 到下載,大功告成。

關(guān)于如何優(yōu)化更新

其實(shí)使用調(diào)試器更新固件還是挺麻煩的,有沒有更簡(jiǎn)單、更傻瓜的操作呢?

 

當(dāng)然有,那就是一鍵拖曳燒錄,就像拷貝文件一樣簡(jiǎn)單,這個(gè)估計(jì)很多人有了解,也可能實(shí)現(xiàn)過,魚鷹對(duì)此也挺感興趣的。后期有時(shí)間魚鷹也去搞搞,爭(zhēng)取開源一個(gè)讓大家都學(xué)習(xí)一下,對(duì)此感興趣的話,歡迎關(guān)注魚鷹吶。

 

責(zé)任編輯:武曉燕 來(lái)源: 魚鷹談單片機(jī)
相關(guān)推薦

2021-05-24 10:50:10

Git命令Linux

2017-11-28 15:29:04

iPhone X網(wǎng)頁(yè)適配

2020-06-16 10:57:20

搭建

2024-08-28 08:42:21

API接口限流

2016-07-22 15:12:12

Win10技巧重裝

2021-02-26 10:21:35

比特幣投資金融

2023-08-26 21:42:08

零拷貝I/O操作

2020-04-20 10:47:57

Redis數(shù)據(jù)開發(fā)

2021-12-27 07:31:37

JavaNeo4J數(shù)據(jù)庫(kù)

2023-07-27 08:26:36

零拷貝I/O操作

2021-10-28 19:23:27

界面嵌入式 UI

2019-05-13 08:24:58

數(shù)據(jù)庫(kù)MySQLInnoDB

2024-02-27 08:14:51

Nginx跨域服務(wù)

2017-11-06 16:30:33

開源

2020-06-17 11:42:50

異常解析器Spring MVC

2023-02-07 11:44:02

2013-06-09 10:34:24

華為網(wǎng)絡(luò)規(guī)劃企業(yè)ICT

2020-07-27 07:00:00

超文本鏈接Word文檔網(wǎng)絡(luò)

2024-09-09 11:35:35

2012-01-09 16:28:01

筆記本評(píng)測(cè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)