91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

先楫半導體 HPM6000 系列常見的兩種二級Bootloader 方案介紹

先楫半導體HPMicro ? 2023-04-02 16:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概 述

作為高性能、低功耗的嵌入式MCU產品,先楫半導體的HPM6000 系列產品廣泛應用于多個領域。在嵌入式系統的開發中,Bootloader 常常是開發者可能會遇到的第一個技術難點。應用程序運行環境能否正確構建,內核能否啟動成功,都取決于Bootloader 能否正確工作。一個功能完善的嵌入式系統,還需要Bootloader 能夠實現系統OTA更新升級的能力,即除了usb燒錄、串口燒錄等方式外,還預留給客戶通過以太網等方式實現快捷固件升級的窗口。

本文以HPM6450為例,基于HPM6000 系列產品嵌入式系統的硬件平臺和RT—thread 軟件平臺,描述系統引導程序Bootloader 的設計思路,闡述了設計時需要考量的因素和遇到的技術難點及操作,希望能給大家一些啟發。

二級boot方案思路分析

49b8c170-cd46-11ed-ad0d-dac502259ad0.png

(圖1:整體思路分析)


如上圖所示,整個方案涉及3個部分:

FLASH空間的分區

二級boot

APP固件


因本次我們討論的重點是“二級boot”,所以下文內容僅涉及前兩部分。

1

FLASH空間的分區

HPM6700/6400系列的單片機和我們常用的stm32、at32這類的單片機最大的不同是該系列MCU 是通過 xpi 總線外掛外部FLASH,即代碼存儲在外部FLASH。

查閱芯片用戶手冊可知,該系列MCU支持通過 XPI0 或XPI1外掛FLASH(FLASH外掛方式,如圖2所示)。


其中xpi0映射的地址空間是0x80000000,xpi1映射的地址空間是 0x90000000, CPU可對這兩塊地址空間直接尋址并運行代碼(如圖3所示)。

49d95606-cd46-11ed-ad0d-dac502259ad0.png

(圖2:外部FLASH掛載于xpi0原理圖)

49f1fc6a-cd46-11ed-ad0d-dac502259ad0.png

(圖3:地址空間映射關系)

為實現固件升級,FLASH空間需要進行合理的劃分,如Bootloader分區、用戶程序分區、OTA升級分區、用戶數據分區等。在RT-Thread上,FAL組件提供了方便的分區劃分機制。

本文分享的兩種方案均以W25Q256為例,該FLASH大小為32MB,掛載于XPI0外設上,首地址為0x80000000,通過FAL組件對FLASH的分區詳情如下圖所示:

4a05c916-cd46-11ed-ad0d-dac502259ad0.png

(圖4:Flash 分區表)

注意,其中:

boot分區表示二級boot,該分區預留了1MB的存儲空間,為未來的功能升級留足了空間。

app 分區可根據實際需要來分配大小,本方案中預留了1MB的空間。

download分區用于下載固件,在APP執行過程中,新固件通過OTA下載于該分區,并在重啟后由boot分區的bootloader完成合法性檢驗和新固件升級操作。

Filesystem 分區用于實現文件系統,在此分區上面可以掛載littelfs格式文件系統,可以避免因頻繁掉電導致數據丟失的問題。

Easyflash 分區可用于存儲一些簡單的參數等。

2

二級boot

二級boot由芯片BootROM引導,從芯片的用戶手冊可知:HPM6700系列支持多種啟動方式,可到先楫半導體官網上查看“HPM6700/6400用戶手冊”的19.1內容部分,如下:

4a2509fc-cd46-11ed-ad0d-dac502259ad0.jpg

(圖5:官方代碼啟動描述)

由上可知當從串行nor flash啟動的時候,可支持“原地代碼執行”和“拷貝到內部RAM”執行。“啟動方式一” 表示代碼存儲在外部flash,并由CPU直接在flash上執行代碼;“啟動方式二” 表示代碼存在flash里面,然后通過BootROM復制代碼到內存后再執行。


受BootROM支持的兩類啟動方式的啟發,筆者經過分析以及與官方的技術支持討論得出如下結論:


采用FLASH原地執行的方式,系統可支持更大尺寸的應用程序,如支持GUI的應用。在cache的加持下,該方式可實現成本和執行速度的平衡。(需要注意的是:由于FLASH固有屬性的限制(多數FLASH不支持RWW),在需要支持FLASH擦寫的應用中,用戶代碼需要做一些防止產生RWW場景的保護。)

采用拷貝到RAM中執行的方式,可實現如下優勢:

用戶代碼以更高的性能執行(RAM的隨機訪問性能優于FLASH)

規避了FLASH不支持RWW的限制,由于代碼執行于RAM,在需要FLASH擦寫的應用中邏輯會更簡單。

考慮到HPM6700/HPM6400系列有高達2MB連續空間的RAM,若用戶代碼及代碼所需要的RAM所占用的空間總和小于或等于2MB,“啟動方式二” 是一種值得考慮的選擇。

由于二級boot 同時支持以上兩種啟動方案,接下來,我們將針對每種方案分別進行討論。

方案一:FLASH原地執行

在該方案下,app 在FLASH里執行。如上所述,app 存儲于FLASH 1MB偏移處,需要將鏈接腳本中的FLASH首地址改為0x80100000。


需要注意的是,由于app是被二級 Bootloader 引導,因此應用程序中不應再攜帶用于 BootROM 引導識別的啟動頭(boot header)。


Boot 的 FLASH 腳本不改,最終跳轉邏輯為:

Boot啟動

檢查download分區是否有新固件,如果有則拷貝到APP

關閉中斷

跳轉到0x80100000地址,就啟動了APP。

這樣就完成了二級boot的設計。

這里最關鍵的就是如何修改連接腳本。

4a496e96-cd46-11ed-ad0d-dac502259ad0.png

(圖6:啟動地址修改)

修改好app的鏈接腳本后,需要在boot里面進行跳轉,跳轉代碼參考如下:

4a72cd18-cd46-11ed-ad0d-dac502259ad0.png

(圖7:Boot 里跳轉)

其中app_addr 為跳轉偏移地址,如下:

4a84efd4-cd46-11ed-ad0d-dac502259ad0.png

(圖8:偏移地址計算)

二級boot完成App跳轉后,App在FLASH中原地執行。該方案的優勢是與復制到RAM相比,應用的尺寸可以大至數十MB。考慮到FLASH的固有限制(隨機訪問性能稍弱,不支持RWW等),當應用程序執行于FLASH上, 開發者需要注意以下幾點:


對于需要高頻執行的、對性能有要求的代碼,用戶程序需要將其復制到RAM中執行,否則會影響程序的效率(若cache未命中)。

若需要執行FLASH擦寫操作,需要保證在FLASH擦寫期間,沒有程序或者其他外設訪問FLASH(具體的實現方式有:關全局中斷、關調度器等)。

完成FLASH擦寫操作后,用戶代碼需要保證cache 一致性,否則可能會導致未預期的后果(如讀到錯誤代碼/數據)。

方案二:內存執行

若用戶代碼加代碼所需的RAM總和小于2M,基于HPM6700/HPM6400有高達2MB的連續RAM,為規避FLASH固有限制帶來的不便,產品可采用方案二,即:App本身在RAM中執行。啟動過程中,二級boot將App復制到RAM中并中轉到APP的目標地址執行。


4aa33692-cd46-11ed-ad0d-dac502259ad0.png

(圖9:內存系統描述)

采用該方案時,需要注意以下三點:

二級boot所使用的RAM不應和用戶App所在RAM區域重疊,否則在拷貝中會產生錯誤。

二級boot在跳轉到用戶App前需要恢復中斷到默認狀態(關閉中斷)。

boot采用flash link的編譯方式,APP要采用ram link的編譯方式,即APP是通過內存方式的鏈接腳本,因此APP編譯后無法通過下載到flash的方式調試,必須使用USB或者其他的方式下載固件到0x80100000處。

4aba8ce8-cd46-11ed-ad0d-dac502259ad0.png

(圖10:工作示意圖)

以下為boot里面的鏈接修改,供大家參考:

4acb2bb6-cd46-11ed-ad0d-dac502259ad0.png4af3daf2-cd46-11ed-ad0d-dac502259ad0.png

(圖11:Boot鏈接腳本參考)

4b18a468-cd46-11ed-ad0d-dac502259ad0.png

(圖12:App ram link方式鏈接文件參考)

在方案二中,二級boot需要做的操作比flash boot的方式多了一個步驟,需要先將APP分區的代碼拷貝至內存,然后再跳轉至內存執行。

4b2d5e4e-cd46-11ed-ad0d-dac502259ad0.png

(圖13:代碼拷貝至內存)

4b42c450-cd46-11ed-ad0d-dac502259ad0.png

(圖14:代碼跳轉至內存執行)

注意跳轉前,需要關閉各種中斷。

4b684b62-cd46-11ed-ad0d-dac502259ad0.png

(圖15:運行效果示意圖)

3

注意事項

選擇鏈接腳本時,要注意看左側的鏈接腳本是否正確,如下圖所示:

4b7ae150-cd46-11ed-ad0d-dac502259ad0.png

(圖16:鏈接腳本示意圖)

如果鏈接腳本不能執行,請檢查下圖的設置。

4b89dd7c-cd46-11ed-ad0d-dac502259ad0.png

(圖17:勾選newlib-nano)

編譯的時候,需要把nerlib-nano勾選上,否則當使用memcpy的時候,有可能會出現 “非法指令” 的錯誤。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17970

    瀏覽量

    366572
  • 半導體
    +關注

    關注

    335

    文章

    28886

    瀏覽量

    237558
  • 嵌入式
    +關注

    關注

    5150

    文章

    19659

    瀏覽量

    317389
  • 先楫半導體
    +關注

    關注

    11

    文章

    250

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    半導體HPM6E8Y:實時控制芯片驅動的機器人關節“芯”時代

    及產品總監費振東帶來了一款實時控制芯片驅動——HPM6E8Y。 ? ? 據費振東介紹半導體HPM
    發表于 05-13 11:50 ?1208次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>實時控制芯片驅動的機器人關節“芯”時代

    重磅更新 | 半導體HPM_APPS v1.9.0發布

    重磅更新 | 半導體HPM_APPS v1.9.0發布
    的頭像 發表于 05-13 11:29 ?559次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_APPS v1.9.0發布

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

    2025年5月6日 上海 |高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(
    發表于 05-07 14:07 ?718次閱讀
    【強勢上新】<b class='flag-5'>HPM</b>5E00:EtherCAT運動控制MCU,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>再拓工業總線產品新版圖

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

    2025年5月6日上海|高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(
    的頭像 發表于 05-06 11:09 ?539次閱讀
    【強勢上新】<b class='flag-5'>HPM</b>5E00:EtherCAT運動控制MCU,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>再拓工業總線產品新版圖

    半導體HPM6E8Y榮獲芯片創新獎,彰顯卓越產品力!

    2025年2月28日,北京|由中國開放指令生態(RISC-V)聯盟主辦的2025RISC-V生態大會及2024年聯盟年會于上周成功舉辦!高性能微控制器產品及嵌入式解決方案提供商上海半導體
    的頭像 發表于 03-04 13:36 ?728次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>6E8Y榮獲芯片創新獎,彰顯卓越產品力!

    半導體HPM_SDK v1.7.0發布!這些更新你值得關注!

    半導體HPM_SDK v1.7.0發布!這些更新你值得關注!
    的頭像 發表于 02-08 13:42 ?666次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_SDK v1.7.0發布!這些更新你值得關注!

    半導體hpm_apps v1.7.0上線

    半導體hpm_apps v1.7.0上線
    的頭像 發表于 02-08 13:41 ?647次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>hpm</b>_apps v1.7.0上線

    半導體HPM_SDK v1.8.0 發布

    半導體HPM_SDK v1.8.0 發布
    的頭像 發表于 02-08 13:39 ?643次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_SDK v1.8.0 發布

    半導體CES 2025新品發布:解鎖機器人關節“芯”時代,精準控制觸手可及!

    提供商上海半導體科技有限公司(半導體,HPMicro)閃耀登場,發布了專注于機器人運動與
    的頭像 發表于 02-08 13:38 ?619次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>CES 2025新品發布:解鎖機器人關節“芯”時代,精準控制觸手可及!

    半導體發布高性能HPM6E8Y系列MCU

    近日,上海半導體科技有限公司,國內領先的高性能微控制器及嵌入式解決方案提供商,推出了專為機器人運動與控制設計的高性能MCU產品——HPM
    的頭像 發表于 01-23 15:40 ?666次閱讀

    半導體HPM OBOX 離線燒錄器正式發布

    在量產燒錄領域,一個令人振奮的消息傳來——終于可以擺脫上位機的束縛,實現更加高效、便捷的量產流程!這一切得益于半導體推出的離線OBOX,一款基于HPM 5361 MCU開發的創新離
    的頭像 發表于 01-16 15:29 ?667次閱讀

    CES 2025:半導體發布高性能機器人MCU

    半導體科技有限公司(半導體,HPMicro)閃耀登場。該公司發布了一款專注于機器人運動與控制的高性能MCU產品——HPM6E8Y
    的頭像 發表于 01-09 16:14 ?943次閱讀

    HPM6E00技術日 | 百人研討共話工業應用創新及發展趨勢

    不僅讓與會者對HPM6E00系列有了更深入的了解,也讓大家看到了半導體在工業技術創新方面的巨大潛力。
    發表于 09-02 10:14

    戰略合作丨華秋商城攜手半導體,共創新篇

    2024年7月24日,上海半導體科技有限公司(半導體,HPMicro)正式授權深圳華秋電
    的頭像 發表于 08-30 12:05 ?1099次閱讀
    戰略合作丨華秋商城攜手<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>,共創新篇

    半導體hpm_apps v1.6.0上線

    半導體hpm_apps v1.6.0上線
    的頭像 發表于 08-02 08:18 ?1518次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>hpm</b>_apps v1.6.0上線
    主站蜘蛛池模板: 成人网在线 | 亚洲色图在线播放 | 91大神精品 | 操操操天天操 | 美女扒开尿口给男人捅 | 69视屏| 人人澡人人添 | 久色网 | 91啪免费网站在线观看 | 久久噜噜噜久久亚洲va久 | 成人欧美精品一区二区不卡 | 一级片免费在线播放 | 龙口护士门91午夜国产在线 | 天天插天天爱 | 国产片一区二区三区 | 四虎影视永久在线观看 | 性久久久久久久 | 亚洲色图综合图片 | 成人免费aaaaa毛片 | 天堂社区在线视频 | 成人欧美一区二区三区 | 成人免费看片视频色多多 | 黄色网在线播放 | 国产免费一级高清淫日本片 | 国产在线精品观看 | 特黄特色 | 国产亚洲精品aa在线看 | 扒开双腿猛进入jk校视频 | 五月情视频在线观看 | 久久成人国产 | 欧美色吧视频在线观看 | 中文字幕一区二区三区 精品 | 男女www视频在线看网站 | 免费黄视频网站 | 日本亚洲免费 | 男人女人的免费视频网站 | 91热成人精品国产免费 | 日本免费高清 | 成人免费淫片95视频观看网站 | 午夜精品久久久久久久久 | 亚洲一区二区在线播放 |