STM32合并燒錄IAP+APP

STM32合并燒錄IAP+APP 通過查找相關資料?

有以下幾種合并方法

第一種直接將二進制文件用記事本合并

而要合并的就是就將IAP最后的一行刪除,然后將APP程序追加在后面。

(修改前)

把APP的.hex 全部內容拷貝復制到 剛才刪掉結束語句的 IAP的.hex后面

(修改后)

第二種使用二進制合并工具?

二、合并.bin文件
? 1.將IAP和APP程序分別找出。打開 二進制文件合并工具。
? 2.先將IAP產生的.bin文件拖入界面中,此時源文件后面應顯示此.bin文件的路徑,然后點擊添加,該文件被添加到上面的列表中。
? 3.再將APP產生的.bin文件拖入界面中,看到路徑正確之后,更改偏移量(視情況而定,一般為0x00004000),在“插入”前面打鉤,然后點擊確定,再點擊添加。此時上方的列表中應有兩個文件的索引,且偏移地址正確。
? 4.選取一個目標文件生成的路徑,并為目標文件設置名字。點擊合并,即可將兩個.bin文件合并。

三、燒錄合并后的.bin文件(使用J-Link SWD模式,BOOT0 = BOOT1 = 0)
? 1.無法使用FlyMcu.exe燒錄.bin文件,可能因為Keil轉換后的.bin文件格式與FlyMcu.exe所支持的不同。
? 2.使用 SEGGER J-Flash.exe 下載。
? 3.設置好串口,波特率設置為115200(不超出MCU規定的范圍即可)
? 4.點擊 file—> Open data file,將合并后的.bin文件添加進來。此時會彈出設置開始地址的對話框,填入8000000。點擊OK。
? 5.點擊Target—> Manual Programming—>Erase Chip 將芯片擦除。
? 6.點擊Target—> Production Programming 進行下載。
? 7.完成。
附:二進制文件合并工具下載地址:鏈接: https://pan.baidu.com/s/1D7D-cZ2wj_MU4mJ2hL9PWQ 密碼: qtx4

? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/hb69222/article/details/80538749

第三種? 使用 J-FLASH 進行合并

合并操作步驟

在這里插入圖片描述

圖2

在這里插入圖片描述

圖3

在這里插入圖片描述

打開IAP程序BOOTLoader文件

在這里插入圖片描述

添加BOOTLoader

在這里插入圖片描述

下一步添加APP程序

在這里插入圖片描述

圖7

在這里插入圖片描述

保存合并 工程文件

在這里插入圖片描述

圖10

在這里插入圖片描述

?

IAP+APP拼接方法
用于產品量產,燒錄的程序文件,一般是hex,或bin文件。不管是hex文件,還是bin文件,我們都需要通過燒錄軟件 + 燒錄(編程)工具實現。燒錄軟件針對不同MCU,一般有不同的燒錄軟件。

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

拼接說明
1、拼接IAP+APP兩段程序,一般簡單方法就是:將兩個程序分別燒錄進去,再統一讀取出來,保存成一個量產文件。
2、IAP 和 APP程序的起始地址是不同的,因此燒錄進芯片,是存儲在兩片區域的。燒錄程序的時候,特別是燒錄bin文件(沒有地址)時,要注意設置好起始地址。hex文件有地址地址,不用自己設置地址。讀取“合并”程序的時候,同樣要注意起始地址,還有讀取大小,保證讀取全部程序。

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

通過STM32CubeProg讀取STM32程序:

再次提示:
燒錄bin文件時,設置好起始地址;
讀取時,設置起始地址,讀取大小;
保存可選擇hex,還是bin文件;

bin、hex文件互相轉換
在某些情況下需要使用特定格式的文件,比如我們遠程升級,要求通過bin文件實現。通過上面的介紹,其實你會發現,使用編程軟件ST-LINK Utility,或STM32CubeProg,就能直接另存為hex,或bin文件格式。

ST-LINK Utility另存為:

STM32CubeProg另存為:

參考MDK-ARM如何生產Bin文件
————————————————

? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/weixin_45905650/article/details/108010156

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711020.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711020.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711020.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Win32匯編ListView控件學習

此控件比較復雜;和基礎win32控件不同;需要先初始化Windows公共控件庫, invoke InitCommonControls 之后才可使用; lvdemo.asm, .386.model flat, stdcalloption casemap :none ; case sensitiveinclude window…

【OCR識別】使用OCR技術還原加密字體文字

文章目錄 1. 寫在前面2. 頁面分析3. 字符知識4. 加密分析 【作者主頁】:吳秋霖 【作者介紹】:Python領域優質創作者、阿里云博客專家、華為云享專家。長期致力于Python與爬蟲領域研究與開發工作! 【作者推薦】:對JS逆向感興趣的朋…

減少頁面加載時間:提升用戶體驗的關鍵

?? 祝屏幕前的您天天開心,每天都有好運相伴。我們一起加油!?? 🎈🎈作者主頁: 喔的嘛呀🎈🎈 目錄 引言 一、為什么頁面加載時間重要? 二、如何減少頁面加載時間? …

qiankun微前端使用

微前端是什么? 微前端就是頁面的某個功能可以獨立為一個項目進行開發、部署。比如:自己的項目使用iframs引入百度 qiankun qiankun是一個基于single-spa的微前端實現庫,qiankun 對于用戶而言只是一個類似 jQuery 的庫,你需要調…

Mysql 數據類型的轉換之 cast()

語法 cast( value as type) value 要進行數據轉換的值(可以為任何類型)。type 要轉換為的數據類型。type 的常見的類型可以為 : decimal十進制浮點數。可以使用可選的 M 和 D 參數指定最大位數 (M) 和小數點后的位數 (D)float浮點數dou…

信息安全應急響應方法詳解

預防措施 定期進行安全漏洞掃描和修復強化身份驗證和訪問控制加強網絡安全防護和監控建立災難恢復和應急預案 應急響應步驟 識別和確認安全事件 監控系統日志和警報,快速發現異常行為利用安全信息和事件管理系統(SIEM)進行實時監控 隔離受…

華潤置地品牌虛擬代言人IP“吉吉”,開啟地產數字化營銷新場景

在數字化營銷時代,房地產品牌通過虛擬人技術,可以有效鏈接購房者,占領客戶心智,優化購房體驗,塑造年輕化、數字化的品牌形象。 華潤置地積極擁抱數字變革,通過廣州虛擬動力「現場虛擬主持技術服務」與「虛…

leetcode-數字轉換為十六進制

405. 數字轉換為十六進制數 題解: 首先,我們需要創建一個映射表,將十進制數0-15映射到十六進制數的字符0-f。然后,我們需要處理負數的情況。對于負數,我們首先將其轉換為補碼形式,然后再進行轉換。接下來…

【Unity】使用Unity實現雙屏顯示

引言 在使用Unity的時候,有時候會需要使用雙屏顯示 簡單來說就是需要在兩個顯示器中顯示游戲畫面 雙屏顯示注意點: ①雙屏顯示需要電腦有兩個顯示 ②雙屏顯示只能用于PC端 ③不僅僅可以雙屏,Unity最大支持8屏顯示 1.相機設置 ①我們打開Un…

Untiy webgl iis服務器加載ab包報404.3,需要為AB包添加MIMI映射

首選確定一下文件在不在 這里是缺少對于AB包文件類型的映射,因為AB包沒有后綴名,我們為服務器添加通用的映射 1 開始菜單搜索iis管理器,先選中我們的服務器,然后雙擊進入MIME類型 2 右側點擊添加按鈕 3 添加如下內容 文件擴展名為. 類型為…

JAVA學習-控制執行流程.函數

一、Java中的控制執行流程的主要方式有以下幾種: 1. 條件語句(if-else語句、switch語句): 根據條件選擇不同的執行路徑。 2. 循環語句(for循環、while循環、do-while循環): 重復執行某段代碼…

性能測試-并發測試心得

一些關鍵名詞 吞吐量 指的是在一定時間內系統處理請求或傳輸數據的能力,具體到性能測試中的話,就是指單位時間內系統處理并完成的請求數量或者是系統傳輸的數據量。 例如,吞吐量可以表示為系統每秒處理HTTP請求次數,或者是系統…

服務器git安裝python包失敗,如何手動下載github項目包并安裝到虛擬環境中(簡單易懂)

背景: 想要復現一個項目,建立好虛擬環境后,準備安裝項目需要的包,故輸入命令pip install -r requirements.txt requirements.txt如下圖 其他包我都安裝成功了,只有最后一個包失敗了,是需要服務器git鏈接…

【學習心得】解決無限debugger的常用方法

一、什么是無限debugger 有些網站為了防止爬蟲或其他惡意行為,會故意設置無限debugger作為一種簡單的反爬機制,它會在開發者工具打開的情況下不斷暫停執行。這對于想要分析其他代碼邏輯、排查問題或進行正常開發調試工作的開發者來說極為不便。 二、解決…

Sora學習筆記

Sora - 探索AI視頻模型的無限可能 隨著人工智能技術的飛速發展,AI視頻模型已成為科技領域的新熱點。而在這個浪潮中,OpenAI推出的首個AI視頻模型Sora,以其卓越的性能和前瞻性的技術,引領著AI視頻領域的創新發展。讓我們將一起探討…

ios 使用window.location.href 不能跳轉微信短鏈處理過程以及解決方法

需求背景: 由h5提供頁面,通過后臺請求微信api生成對應的schemal短鏈,該h5頁面嵌入到原生的ios以及安卓app上,當用戶點擊后通過短連接跳轉到其他小程序中 以下為生成微信scheme代碼示例,生成后短鏈為:weixi…

linux常見signal信號總結

文章目錄 SIGSEGVSIGALRMSIGINTSIGCHLD SIGSEGV 在POSIX兼容的平臺上,SIGSEGV是當一個進程執行了一個無效的內存引用,或發生段錯誤時發送給它的信號 SIGALRM 已到通過調用alarm函數注冊的時間 SIGINT 輸入cltrlc SIGCHLD 子進程終止

【分享】在 Python 編程中提高效率的技巧

在 Python 編程中,有許多技巧可以幫助提高效率,從代碼優化到工作流程改進。 以下是一些可以分享的技巧: 1、使用列表推導式和生成器表達式:列表推導式和生成器表達式是 Python 中的一種簡潔而高效的方法,用于快速創建…

Azure[Sky] Dynamic Skybox

Azure[Sky] Dynamic Skybox是一個完整而穩健的天空系統,它可將你的項目提升大到其他層次。 Azure[Sky] 不僅適合使用現實圖片的項目,事實上,該系統用在風格化圖片的項目也很不粗,甚至效果更好。使用 Azure,每種風格都能實現最佳效果。 性能: 在開發此資源的過程中,性能是…

【Android】屬性動畫

在屬性動畫出現之前,Android 系統提供的動畫只有幀動畫和 View 動畫。View 動畫我們都了解,它提供了 AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation 這4種動畫方式,并提供了 AnimationSet 動畫集合來混合使用多種動畫…