chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Bootloader 萬能實現(xiàn)邏輯

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:未知 ? 2023-04-20 04:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

倉庫地址:

https://github.com/loogg/agile_upgrade_mcu_demos

一般 Bootloader 實現(xiàn)的邏輯如下:

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

這種方式適合于簡單的裸機(jī)程序或可控的 OS 程序(即所有外設(shè)硬件都可把控),在準(zhǔn)備環(huán)境的時候?qū)⑵淙筷P(guān)閉。

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

這里提供一種 萬能 方法:

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

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

- 在 OS 還沒初始化時判斷該寄存器值,如果需要跳轉(zhuǎn)只需要簡單的準(zhǔn)備環(huán)境即可跳轉(zhuǎn)。

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

該方法可以使 Bootloader 就作為一個 OS 應(yīng)用程序開發(fā),需要跳轉(zhuǎn)的時候就操作一下寄存器并軟件復(fù)位即可。

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

以正點(diǎn)原子探索者開發(fā)板的 STM32F4 為例,將 system_stm32f4xx.c 文件的 SystemInit 函數(shù)修改:

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

boot_start_application的實現(xiàn)為:

 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/*棧頂?shù)刂吩?28KRAM間*/
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}

		
設(shè)置寄存器并軟件復(fù)位的實現(xiàn)為:
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}

版權(quán)聲明:本文為RT-Thread論壇用戶「Cfly」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

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

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

RT-Thread線下入門培訓(xùn)

5月 - 成都、武漢、西安

1.免費(fèi)2.動手實驗+理論3.主辦方免費(fèi)提供開發(fā)板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語言、單片機(jī)ARM Cortex-M核)基礎(chǔ),請?zhí)崆鞍惭b好RT-Thread Studio 開發(fā)環(huán)境

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

立即掃碼報名

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

報名鏈接

https://jinshuju.net/f/UYxS2k

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

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

點(diǎn)擊閱讀原文,進(jìn)入RT-Thread創(chuàng)意創(chuàng)客大賽


	


原文標(biāo)題:Bootloader 萬能實現(xiàn)邏輯

文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1541

    瀏覽量

    44291

原文標(biāo)題:Bootloader 萬能實現(xiàn)邏輯

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Bootloader固件升級的步驟

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

    軟件的力量:玩轉(zhuǎn)電子萬能試驗機(jī)控制系統(tǒng)的高級技巧

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

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

    工程保存完成后,工程中會新增如下卡片相關(guān)文件: 自定義配置邏輯代碼 邏輯代碼包含實現(xiàn)卡片數(shù)據(jù)交互和卡片事件兩類。 卡片數(shù)據(jù)交互:觸發(fā)卡片頁面刷新。應(yīng)用工程生成的卡片數(shù)據(jù)交互,可通過數(shù)據(jù)庫或網(wǎng)絡(luò)請求
    發(fā)表于 09-09 16:10

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

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

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

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

    是否可以僅使用 Bootloader Host 來實現(xiàn)可引導(dǎo)加載項目的相同編程結(jié)果?

    你好 我想使用 Bootloader Host 在我的 CY8CKIT-059 上對 CY8C5888LTI-LP097 芯片進(jìn)行編程,并將項目類型設(shè)置為可引導(dǎo)加載。我的目標(biāo)是實現(xiàn)與通過使用 SWD
    發(fā)表于 07-18 07:39

    CodeGenie 工具功能匯總

    一、萬能卡片生成(Service Widget) CodeGenie 基于 AI 大模型,支持通過自然語言描述生成 HarmonyOS 萬能卡片工程,覆蓋 UI 布局、邏輯代碼及資源文件。 1.
    的頭像 發(fā)表于 06-26 08:49 ?428次閱讀

    鴻蒙生態(tài)迎來外設(shè)兼容革命!國開鴻PDBox外設(shè)萬能盒在HDC 2025大放異彩

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

    AI學(xué)習(xí)機(jī),比的是什么?

    AI不是萬能匙,登高仍須腳下力。
    的頭像 發(fā)表于 06-12 09:47 ?2820次閱讀
    AI學(xué)習(xí)機(jī),比的是什么?

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

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

    萬能七彩充開關(guān)電源電器的制作

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

    U-Boot 和 Bootloader,99% 的工程師都分不清?

    嵌入式軟件工程師聽說過 u-boot 和 bootloader,但很多工程師依然不知道他們到底是啥。 ? 今天就來簡單講講?u-boot 和 bootloader?的內(nèi)容以及區(qū)別
    的頭像 發(fā)表于 03-25 20:47 ?1425次閱讀

    自定義RISC V的bootloader-v3

    在生成SoC時,會生成一個預(yù)定義bootloader .bin文件,用于指定soc的工程運(yùn)行的地址,這包括在flash的存儲地址 ,加載到外存中的運(yùn)行地址及在外存中分配的存儲空間的大小 。下面我們
    的頭像 發(fā)表于 03-10 09:05 ?1528次閱讀
    自定義RISC V的<b class='flag-5'>bootloader</b>-v3

    PID控制算法的C語言實現(xiàn):PID算法原理

    在工業(yè)應(yīng)用中 PID 及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無愧的萬能算法,如果能夠熟練掌握 PID 算法的設(shè)計與實現(xiàn)過程,對于一般的研發(fā)人員來講,應(yīng)該是足夠應(yīng)對一般研發(fā)問題了,而難能可貴
    發(fā)表于 02-26 15:24

    效率大升!AI賦鴻蒙萬能卡片開發(fā)

    萬能卡片,作為鴻蒙生態(tài)應(yīng)用和元服務(wù)的重要展示形式,憑借將關(guān)鍵信息和核心操作前置,實現(xiàn)服務(wù)直達(dá)、減少跳轉(zhuǎn)層級的體驗效果,備受用戶和開發(fā)者青睞。但傳統(tǒng)卡片的設(shè)計和編碼流程相對繁瑣,影響了萬能卡片的搭建
    的頭像 發(fā)表于 01-13 13:44 ?1388次閱讀
    效率大升!AI賦<b class='flag-5'>能</b>鴻蒙<b class='flag-5'>萬能</b>卡片開發(fā)