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

當前位置:首頁 > 公眾號精選 > strongerHuang
[導讀]下載算法對于大部分工程師來說,只需要會使用即可,也不用過多去關心里面實現(xiàn)的方法。當然,對于有時間的工程師來說,了解下載算法還是有一定好處的。

關注+星標公眾,不錯過精彩內容

作者 |?Lucas

編排 |?strongerHuang


本文由作者『Lucas』原創(chuàng)并授權發(fā)布,地址:

https://blog.csdn.net/lin_duo/article/details/110754189

下載算法對于大部分工程師來說,只需要會使用即可,也不用過多去關心里面實現(xiàn)的方法。當然,對于有時間的工程師來說,了解下載算法還是有一定好處的。

之前給大家分享過基于Keil MDK環(huán)境的下載算法制作,今天就來給大家分享一篇基于IAR、STM32的下載算法的制作。

嵌入式專欄

1

環(huán)境
IDE環(huán)境:IAR EWARM 8.32
單片機:STM32H750VBT6
外部Flash:W25Q64


嵌入式專欄

2

背景、知識介紹
我們?yōu)槭裁葱枰螺d算法?下載算法是在哪里使用的?


如上圖所示,我們想通過C-SPY將固件直接下載到Flash是不被允許的,那我們怎么才能實現(xiàn)將固件下載進Flash呢?

IAR官方文檔《FlashLoaderGuide.ENU.pdf》告訴我們說,我們需要先將固件放在RAM緩存里面,然后通過一個名叫"Flash Loader"的小程序,將代碼不斷的從RAM搬運到Flash(這里的Flash可以是內部Flash,也是可以是外部Flash)。

上文中提到的"Flash Loader"就是需要我們針對不同的硬件去分別實現(xiàn)的代碼,也就是所謂的Flash下載算法。

知識介紹:
IAR下載算法一共包括4個文件(.out文件、.flash文件、.board文件、.mac文件)。
1、.out文件是由"Flash Loader"代碼生成的,里面包含了我們對QPSI管腳的定義,函數(shù)FlashInit()、函數(shù)FlashWrite()、函數(shù)FlashErase()的實現(xiàn)。

2、.flash文件是一個XML文件,里面包含了一些必要的元素和一些不必要的元素,僅針對必要元素做一個簡單介紹
  • exe:指向.out文件

  • flash_base:Flash的基礎地址

  • page:Flash每頁的大小

  • block:對應Flash有多少個扇區(qū),每個扇區(qū)多大。(block元素對應Flash的扇區(qū)還是塊,待考證)


3、 .board文件同樣也是一個XML文件??梢杂?pass> *** 進行多個.flash文件設置。每個pass內包含了兩個必要的屬性
range:表面了Flash的起始地址及結束地址
loader:當前pass調用那個下載算法的路徑

4、IAR每次仿真下載完程序是從當前工程的main函數(shù)開始運行的。如果我們將代碼下載到了0x90000000地址處,我們并沒有開啟內存映射,是不可以仿真的。這時候就需要采樣.mac文件作為一個啟動腳本,當程序仿真下載完成后,跳轉到0x08000000處開始運行。在0x08000000處進行內存映射,然后馬上跳轉到0x90000000處,就可以進行仿真了。

嵌入式專欄

3

制作思想
  • 下載"Flash Loader"開源代碼

  • 創(chuàng)建一個空工程,將"Flash Loader"開源代碼里面的文件添加到工程

  • 完成函數(shù)FlashInit()、函數(shù)FlashWrite()、函數(shù)FlashErase()。

  • 生成.out文件

  • 制作.flash文件

  • 制作.borad文件

  • 根據(jù)需要制作.mac文件


嵌入式專欄

4

源碼說明
上面已經(jīng)介紹了下載算法制作的一些基礎知識及制作思想,下面我們正式開始動手制作下載算法。

1、下載FlashLoder開源代碼。
傳送門:
https://files.iar.com/public/cmsis/

下載后的文件內容如下圖所示:

“flash_loader.c”、“flash_loader.h”、“flash_loader_asm.s”、"flash_loader_extra.h"四個文件是供C-SPY調用的,我們不應該去修改文件內容。真正需要我們去修改的內容是"template"文件夾下的"flash_loader_ram.c"文件。

2、 為了方便,我找到IAR安裝路徑(“C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\arm\src\flashloader\ST”)下的"FlashSTM32H7xx_QSPI"文件夾,對這個文件內容進行更改。我們將"FlashLoder"代碼添加進去,并添加相應的路徑。 (注:“flash_loader_ram.c"文件當前工程下被改名為"FlashSTM32H7xx_QSPI.c”)。

3、補充函數(shù)內容
A.補充FlashInit函數(shù)內容


B.補充FlashWrite函數(shù)內容


C.補充FlashErase函數(shù)內容


4、生成.out文件由三個需要注意的地方
A.我們需要將代碼下載到RAM里面執(zhí)行,IAR->Option->Linker->Config配置如下


B.IAR->Option->Linker->Output配置的是輸出.out文件的內容


C.當前工程沒有main函數(shù),程序運行的第一個函數(shù)將是FlashInit函數(shù),對IAR->Option->Linker->Library配置如下:


5、制作.flash文件,如下圖:


6、制作.board文件,如下圖

7、對于H750內存映射外部Flash還需要制作.mac文件,內容如下
文件內容就很好理解了,下載完成后,pc指針指向中斷向量表的Reset_Handler函數(shù),堆棧指針指向程序運行的首地址。這樣每次程序仿真下載完成后,就從0x08000000處開始運行。我們可以把Boot程序放在這個地址,Boot程序里面進行內存映射,然后跳轉到0x90000000處。

嵌入式專欄

5

效果展示
我們制作好上訴四個文件過后,創(chuàng)建一個工程(該工程要運行在0x90000000處),對這個工程進行簡單配置。

IAR->Option->Debugger->Download下,配置如下:


IAR->Option->Debugger->Setup下,配置如下:

IAR->Option->Linker->Edit下,配置如下:

在代碼初始的地址,還需要加上中斷向量表地址SCB->VTOR = 0x90000000;

做完上訴配置后,我們進行仿真下載,如下圖所示,我們可以看到main函數(shù)已經(jīng)存在與0x90003588處,并且可以進行仿真,說明我們配置是正確的。


將代碼全速運行,可以看見串口顯示正式我們程序設置的輸出。

至此,關于IAR下下載算法的制作與驗證就全部介紹完了。

參考資料:

FlashLoaderGuide.ENU.pdf
EWARM_DebuggingGuide.ENU.pdf
FlashLoader源碼


------------?END?------------


推薦閱讀:
精選匯總 | 專欄 | 目錄 | 搜索
精選匯總 | ARM、Cortex-M
精選匯總?| ST工具、下載編程工具

關注 微信公眾號『嵌入式專欄』,底部菜單查看更多內容,回復“加群”按規(guī)則加入技術交流群。


點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉