国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

Bootloader 萬能實現邏輯

RTThread物聯網操作系統 ? 來源:未知 ? 2023-04-20 04:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

倉庫地址:

https://github.com/loogg/agile_upgrade_mcu_demos

一般 Bootloader 實現的邏輯如下:

5a93a02c-def4-11ed-bfe3-dac502259ad0.png

這種方式適合于簡單的裸機程序或可控的 OS 程序(即所有外設硬件都可把控),在準備環境的時候將其全部關閉。

但對于一些復雜的或者 OS 中輪子已造好的程序,有一些因素不花時間研究無法把控,在準備環境時很可能就會遺漏一些未關閉導致出各種各樣的問題。

這里提供一種 萬能 方法:

- 利用芯片中的不受軟件復位影響的可供用戶使用的寄存器 (如 STM32 中的備份寄存器)。

- 在需要跳入 APP 運行時將該寄存器賦值然后軟件復位。

- 在 OS 還沒初始化時判斷該寄存器值,如果需要跳轉只需要簡單的準備環境即可跳轉。

5ab3e9e0-def4-11ed-bfe3-dac502259ad0.png

該方法可以使 Bootloader 就作為一個 OS 應用程序開發,需要跳轉的時候就操作一下寄存器并軟件復位即可。

該倉庫下所有的 Bootloader 例子均使用此方法。

以正點原子探索者開發板的 STM32F4 為例,將 system_stm32f4xx.c 文件的 SystemInit 函數修改:

1voidboot_start_application(void);
2voidSystemInit(void)
3{
4boot_start_application();

boot_start_application的實現為:

 1typedefvoid(*boot_app_func)(void);
 2voidboot_start_application(void){
 3__HAL_RCC_PWR_CLK_ENABLE();
 4HAL_PWR_EnableBkUpAccess();
 5RTC_HandleTypeDefRTC_Handler={0};
 6RTC_Handler.Instance=RTC;
 7uint32_tbkp_data=HAL_RTCEx_BKUPRead(&RTC_Handler,BOOT_BKP);
 8HAL_RTCEx_BKUPWrite(&RTC_Handler,BOOT_BKP,0);
 9if(bkp_data!=0xA5A5)return;
10boot_app_funcapp_func=NULL;
11uint32_tapp_addr=BOOT_APP_ADDR;
12if(((*(__IOuint32_t*)(app_addr+4))&0xff000000)!=0x08000000)return;
13/*棧頂地址在128KRAM間*/
14if(((*(__IOuint32_t*)app_addr)-0x20000000)>=(STM32_SRAM_SIZE*1024))return;
15app_func=(boot_app_func)*(__IOuint32_t*)(app_addr+4);
16/*Configuremainstack*/
17__set_MSP(*(__IOuint32_t*)app_addr);
18/*jumptoapplication*/
19app_func();
20}

		
設置寄存器并軟件復位的實現為:
1staticvoidboot_app_enable(void){
2__disable_irq();
3RTC_HandleTypeDefRTC_Handler={0};
4RTC_Handler.Instance=RTC;
5HAL_RTCEx_BKUPWrite(&RTC_Handler,BOOT_BKP,0xA5A5);
6HAL_NVIC_SystemReset();
7}

版權聲明:本文為RT-Thread論壇用戶「Cfly」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://club.rt-thread.org/ask/article/08aa702381dd4310.html

———————End———————

RT-Thread線下入門培訓

5月 - 成都、武漢、西安

1.免費2.動手實驗+理論3.主辦方免費提供開發板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語言單片機ARM Cortex-M核)基礎,請提前安裝好RT-Thread Studio 開發環境

5ace1a72-def4-11ed-bfe3-dac502259ad0.png

立即掃碼報名

(4月-青島、北京 就在本周六)

報名鏈接

https://jinshuju.net/f/UYxS2k

巡回城市:青島、北京、西安、成都、武漢、鄭州、杭州、深圳、上海、南京

你可以添加微信:rtthread2020 為好友,注明:公司+姓名,拉進RT-Thread官方微信交流群!

點擊閱讀原文,進入RT-Thread創意創客大賽


	


原文標題:Bootloader 萬能實現邏輯

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。


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

    關注

    32

    文章

    1614

    瀏覽量

    44881

原文標題:Bootloader 萬能實現邏輯

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    復合光纖電纜:破解“最后一公里”難題的“萬能鑰匙”

    在智慧城市、工業互聯網與智能家居的浪潮中,如何高效解決設備供電與數據傳輸的“最后一公里”矛盾,成為行業痛點。復合光纖電纜憑借其“光電一體、一纜多用”的特性,正成為破解這一難題的“萬能鑰匙”。 園區
    的頭像 發表于 02-02 11:07 ?199次閱讀

    深入解析rk平臺Android Bootloader核心代碼:從啟動流程到AVB驗證

    下android_bootloader.c的核心代碼,帶你讀懂Android設備從Bootloader到內核的完整啟動邏輯,以及開發者關注這些代碼的核心價值。 一、代碼整體定位 這份代碼是Rockchip(瑞芯微)平臺
    的頭像 發表于 01-22 07:06 ?274次閱讀
    深入解析rk平臺Android <b class='flag-5'>Bootloader</b>核心代碼:從啟動流程到AVB驗證

    深入解析RK平臺Android/Linux Bootloader核心文件:android_bootloader.c

    Bootloader是Android設備啟動的第一道“關卡”,負責初始化硬件、加載系統鏡像并完成內核啟動的前置準備。在基于U-Boot的Android設備中,android_bootloader
    的頭像 發表于 01-09 10:58 ?1201次閱讀
    深入解析RK平臺Android/Linux <b class='flag-5'>Bootloader</b>核心文件:android_<b class='flag-5'>bootloader</b>.c

    高精度力值測量的基石:電子萬能試驗機傳感器與信號調理電路技術

    在電子萬能試驗機的力值測量體系中,傳感器與信號調理電路如同精密協作的“感知核心” 與 “信號管家”,共同構筑起高精度測量的堅實基礎。前者負責捕捉力的細微變化,后者則將原始信號打磨提純,二者的無縫配合
    的頭像 發表于 01-06 09:31 ?213次閱讀
    高精度力值測量的基石:電子<b class='flag-5'>萬能</b>試驗機傳感器與信號調理電路技術

    LabVIEW 變體:萬能數據容器的藝術

    的使用方法 常規使用是這樣的: ![圖片](./LabVIEW 變體:萬能數據容器的藝術_files/640(3)) 讓我們的程序函數(方法)能夠“泛化”。 典型應用有如下兩個: 這個我前面分析
    發表于 01-05 11:06

    新品 | Chain Blank Chain Mount,Chain系列萬能板 結構拓展節點

    節點。節點正面提供了一塊18x18mm的PCB萬能板,其內部預先焊接好了兩個互聯的HY2.0-4P接口,可直接串接到M5StackChain系列設備中且不影響設備原有功能。
    的頭像 發表于 12-26 17:28 ?1582次閱讀
    新品 | Chain Blank   Chain Mount,Chain系列<b class='flag-5'>萬能</b>板 結構拓展節點

    Bootloader固件升級的步驟

    文件則下載到 ROM 或 Flash 中BootLoader 后面的地址中。也就是說,存在 ROM/Flash 中的內容是分為兩部分的。 4、要實現在同一個 ROM/Flash 中保存兩段程序
    發表于 11-19 07:41

    軟件的力量:玩轉電子萬能試驗機控制系統的高級技巧

    電子萬能試驗機的效能發揮,不僅依賴硬件設備的性能,更離不開控制系統軟件的靈活運用。很多操作人員僅將軟件視為“參數輸入工具”,卻忽略了其隱藏的強大功能。實際上,熟練掌握軟件的高級技巧,能讓測試流程更高
    的頭像 發表于 10-24 09:31 ?231次閱讀
    軟件的力量:玩轉電子<b class='flag-5'>萬能</b>試驗機控制系統的高級技巧

    HarmonyOSAI編程萬能卡片生成(二)

    工程保存完成后,工程中會新增如下卡片相關文件: 自定義配置邏輯代碼 邏輯代碼包含實現卡片數據交互和卡片事件兩類。 卡片數據交互:觸發卡片頁面刷新。應用工程生成的卡片數據交互,可通過數據庫或網絡請求
    發表于 09-09 16:10

    HarmonyOSAI編程萬能卡片生成(一)

    基于AI大模型理解開發者的卡片需求信息,通過對話式的交互智能生成HarmonyOS萬能卡片工程。 使用約束 建議從以下維度描述卡片需求: 當前不支持在生成卡片預覽圖后繼續描述需求進行增量修改。 萬能
    發表于 09-08 17:09

    廣州郵科三相逆變電源:從直流220V到交流380V,工業用電的“萬能轉換器”

    在工業領域,電力問題就像一場“無聲的戰役”——設備突然停機、電壓不穩導致故障、臨時用電無處可接……這些問題不僅影響效率,還可能造成損失。而廣州郵科推出的三相逆變電源,正是為解決這些痛點而生。今天,我們就用“大白話”聊聊這款“電力轉換神器”,看看它如何成為工業場景的“萬能轉換器”。
    的頭像 發表于 09-03 16:40 ?1248次閱讀
    廣州郵科三相逆變電源:從直流220V到交流380V,工業用電的“<b class='flag-5'>萬能</b>轉換器”

    鴻蒙生態迎來外設兼容革命!國開鴻PDBox外設萬能盒在HDC 2025大放異彩

    發展上的戰略布局。 在大會的開源鴻蒙互動體驗展區及HarmonyOS生態創新外設展區,國開鴻科技帶來了一系列由開源鴻蒙賦的創新產品。其中,可實現"全場景適配、外設即插即用"的PDBox外設萬能盒尤為引人注目,吸引了眾多生態合作
    的頭像 發表于 06-23 09:39 ?672次閱讀
    鴻蒙生態迎來外設兼容革命!國開鴻PDBox外設<b class='flag-5'>萬能</b>盒在HDC 2025大放異彩

    AI學習機,比的是什么?

    AI不是萬能匙,登高仍須腳下力。
    的頭像 發表于 06-12 09:47 ?3062次閱讀
    AI學習機,比的是什么?

    突破工業接口壁壘!ARK(方舟微)DMZ42C10S讓PLC\\\"萬能適配\\\"成為現實!

    突破工業接口壁壘!ARK(方舟微)DMZ42C10S讓PLC\"萬能適配\"成為現實!
    發表于 03-27 15:20

    萬能七彩充開關電源電器的制作

    手機萬能七彩充電器的制作過程JC820型手機萬能充電器套件制成后,適合充容量為250~3000mA鋰離子、鎳氫電池;充電時,七彩燈閃爍,指示燈的顏色依次變化,發出絢麗多彩的七彩光芒,飽和后熄滅
    發表于 03-26 14:17