色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

使用Reset和Halt After bootloader復位策略

麥克泰技術 ? 來源:麥克泰技術 ? 2023-04-14 13:04 ? 次閱讀

許多MCU配置了一個獨立的啟動ROM,包含處理器復位并跳轉到用戶應用程序之前執行的代碼。啟動ROM的工作包含設置時鐘,啟用調試接口,根據不同的引導源初始化外圍設備等等…當然,不同MCU的啟動ROM行為并不相同。實際上,啟動ROM的行為在同一設備的兩個硬件版本之間也會有變化。

問題

調試體系架構沒有規定如何設計啟動ROM或其行為,因此在啟動ROM執行之后,無法為MCU實現一種通用的復位方法,讓其暫停在用戶應用程序的第一條指令上。處理器需要一個特定的復位程序,它可以處理設備特定的啟動ROM場景,如沒有有效的映像,映像位于QSPI中,通過SD卡啟動等等…實現這種特定于設備的復位非常具有挑戰性,甚至是不可能的,而且非常耗時,因為現代MCU通常有多種啟動路徑。此外,由于某些原因,供應商通常不會記錄啟動ROM的行為。

解決方式

如果J-Link不支持使用設備或引導源的引導加載程序后的Reset&halt,則可以通過兩個步驟輕松啟用正確的復位:

2.1 修改啟動代碼

在startup代碼中添加下列指令:

//
// Perform a dummy read access from address 0x00000008 followed by two nop's
// This is needed to support the reset strategy: Reset and Halt After Bootloader.
//
mov r0, 8
ldr r0,[r0]
nop
nop

2.2 修改Reset策略

復位策略需要設置為12。

如何改變J-Link使用的復位策略取決于所使用的環境。復位策略可以通過所使用環境設置配置,也可以通過J-Link命令字符串配置。如J-Link Commander,允許通過本機命令直接將J-Link命令字符串傳遞給J-Link DLL。如果這兩個方式都不可用,使用通用方法。

2.2.1 J-Link Commander

啟動J-Link Commander后,可以通過執行RSetType命令改變復位策略為

RSetType = 12

2.2.2 通用方法

如果使用的IDE 或應用沒有提供選項配置使用的reset類型,也不能將J-Link命令字符串傳遞給J-Link DLL,我們建議使用J-Link腳本文件API函數JLINK_ExecCommand(“”)將它們包含到J-Link腳本文件中。

下面是一個J-Link腳本文件的示例,該文件通過JLINK_ExecCommand(…)傳遞J-Link命令字符串SetResetType到J-Link DLL。

/*********************************************************************
*                                   
*    ConfigTargetSettings  
*
* Function description
*  Called before InitTarget(). Mainly used to set some global DLL variables to customize the
*  normal connect procedure. For ARM CoreSight devices this may be specifying the base
*  address of some CoreSight components (ETM, …) that cannot be auto-detected by J-Link
*  due to erroneous ROM tables etc. May also be used to specify the device name in case
*  debugger does not pass it to the DLL.          
*
* Notes
* (1) May not, under absolutely NO circumstances, call any API functions that perform target communication.
* (2) Should only set some global DLL variables
*
* Return value
*  >= 0 O.K.
*   < 0 ?Error
* ? ? ?-1 ?Unspecified error
*/
int ConfigTargetSettings(void) {
 ?//
 ?// Set reset strategy used by the J-Link to Reset + Halt After Bootloader Using Watchpoint.
 ?//
 ?JLINK_SYS_Report("-- Configure Reset Strategy --");
 ?JLINK_ExecCommand("SetResetType = 12");
 ?return 0;
}

操作示例

基于SEGGER Cortex-M Trace參考板的SEGGER Embedded Studio工程示例項目,可以訪問:https://wiki.segger.com/File:SEGGER_Cortex-M_Trace_Reference_Board_Blinky_ES_V550b.zip

該項目可以很容易地移植到其它基于Cortex-M的MCU。

3.1 使用J-Link Commander測試&驗證

1、使用SES下載應用

fbb1a440-da80-11ed-bfe3-dac502259ad0.png

2、使用J-Link Commander連接目標板

3、執行reset

4、檢查PC==0x0800010E

fbd4d352-da80-11ed-bfe3-dac502259ad0.png

5、修改reset策略為 Reset+Halt

6、執行Reset

7、檢查PC==0x08000116

fbf9182a-da80-11ed-bfe3-dac502259ad0.png ? ?

總結

正常復位后,MCU停在復位向量(Reset_Handler / 0x0800010E)處。

通過執行Reset&halt after bootloader復位策略后,MCU停在啟動代碼(0x08000116)處。

這確認了reset的行為與預期一致。

為了模擬引導加載程序,可以將修改的代碼從啟動代碼移動到用戶應用程序中的其它地方。執行reset應該顯示CPU在代碼移動到的地址處停止。

審核編輯:湯梓紅

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

    關注

    68

    文章

    19259

    瀏覽量

    229652
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350992
  • ROM
    ROM
    +關注

    關注

    4

    文章

    563

    瀏覽量

    85732
  • reset
    +關注

    關注

    0

    文章

    34

    瀏覽量

    12877
  • bootloader
    +關注

    關注

    2

    文章

    235

    瀏覽量

    45612

原文標題:使用Reset&Halt After bootloader復位策略

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是復位同步電路 reset synchronizer?

    復位同步電路 reset synchronizer 其實只在復位信號 release 的時候派上用場。復位結束后,這個電路其實就沒用了。 但這個電路的時鐘還在 switch,這個電路還
    的頭像 發表于 02-19 09:21 ?1411次閱讀
    什么是<b class='flag-5'>復位</b>同步電路 <b class='flag-5'>reset</b> synchronizer?

    請問stm8l101p3u為什么進入halt之后看門狗不復位

    在網上查了半天,很多人都是說halt之后不想讓看門狗運行卻停不下來,為什么到了我這我想halt之后看門狗繼續運行它反而不復位了呢?? 看門狗的代碼 RST_ClearFlag
    發表于 05-13 07:01

    CC1310仿真出錯Fatal error:Failed to halt after bootloader 1

    程序編譯沒有問題,當點擊仿真調試的時候有彈窗提示出錯。Fatal error:Failed to halt after bootloader 1Session aborted!求解答!
    發表于 08-18 07:12

    軟件復位后保持引腳狀態為高電平

    after a reset or is there another way to jump to the bootloader without doing the software rese
    發表于 12-25 15:43

    在啟用IWDG的情況下進入暫停模式會導致STM8s003F3P6芯片復位

    我檢查了選項字節,OPT3字節為零,因此WDG_HALT位為0,這意味著當看門狗使能時,MCU應進入暫停模式而不會導致復位。 但是HALT或WFI會產生復位。我在暫停指令之前刷新看門
    發表于 06-28 16:11

    使用Reset&amp;Halt After bootloader復位策略

    and Halt After Bootloader. // mov r0, 8 ldr r0,[r0] nop nop2.2修改Reset策略
    發表于 05-18 13:55

    HT66Fx0系列MCU的Reset復位電路應用介紹

    HT66Fx0系列MCU的Reset復位電路應用介紹HT66Fx0 系列MCU 的Reset 復位電路均采用了與I/O 共用的架構,本文即著重對此系列MCU
    發表于 03-27 08:38 ?36次下載

    復位穩定放大器:The Reset Stabilized A

    復位穩定放大器:The Reset Stabilized Amplifier The reset stabilized amplifier is a form of chopper-stabilized amplifier a
    發表于 05-16 16:12 ?1273次閱讀
    <b class='flag-5'>復位</b>穩定放大器:The <b class='flag-5'>Reset</b> Stabilized A

    STM32 Bootloader異常復位如何解決

    客戶反饋通過PC軟件Flashloader不能夠跟STM32 MCU自帶Bootloader連接。并且系統運行一段時間后異常復位
    的頭像 發表于 03-23 10:26 ?9626次閱讀
    STM32 <b class='flag-5'>Bootloader</b>異常<b class='flag-5'>復位</b>如何解決

    STM32下載后無法自動復位,需手動復位 下載程序時,勾選reset and run后仍不可自動復位

    項目場景:STM32下載后無法自動復位,需手動復位下載程序時,勾選reset and run后仍不可自動復位問題描述:STM32下載后無法自動復位
    發表于 01-17 12:36 ?11次下載
    STM32下載后無法自動<b class='flag-5'>復位</b>,需手動<b class='flag-5'>復位</b> 下載程序時,勾選<b class='flag-5'>reset</b> and run后仍不可自動<b class='flag-5'>復位</b>

    Reset復位電路的PCB布局布線要求

    Reset復位電路的PCB布局布線要求 —來源:瑞芯微RK3588 PCB設計白皮書 Reset復位電路是一種用來使電路恢復到起始狀態的電路設計,一般簡單的
    的頭像 發表于 08-03 07:45 ?1129次閱讀
    <b class='flag-5'>Reset</b><b class='flag-5'>復位</b>電路的PCB布局布線要求

    STM32 Bootloader異常復位案例

    電子發燒友網站提供《STM32 Bootloader異常復位案例.pdf》資料免費下載
    發表于 09-25 09:17 ?3次下載
    STM32 <b class='flag-5'>Bootloader</b>異常<b class='flag-5'>復位</b>案例

    Linux reset子系統有什么功能

    的分級關系,需要弄清楚時鐘樹里每個時鐘的關系。 而reset驅動有點相當于clock驅動的門控,它只有復位和解復位兩個功能。 類似于clock子系統,reset子系統也分為了 cons
    的頭像 發表于 09-27 14:06 ?765次閱讀
    Linux <b class='flag-5'>reset</b>子系統有什么功能

    Linux的reset復位API說明

    入的reset資源進行解復位操作 參數 : rstc:指向申請reset資源的設備句柄 返回 : 成功:返回0 失敗:返回錯誤碼 reset_control_assert int re
    的頭像 發表于 09-27 14:14 ?1155次閱讀

    reset API使用示例步驟

    時鐘和復位是兩個不同的驅動,但通常都是由負責clock驅動的人,把reset驅動完成。同樣,reset驅動也是由芯片廠商去完成的。 reset API使用示例 基本步驟: 1、調用
    的頭像 發表于 09-27 14:17 ?1102次閱讀
    主站蜘蛛池模板: 香蕉59tv视频| 国产精品第一综合首页| 99精品热视频30在线热视频 | 俄罗斯摘花| 久久在精品线影院| 亚洲精品高清在线观看| 不卡无线在一二三区| 久久精品亚洲AV中文2区金莲| 色小说在线| 北条麻妃のレズナンパ| 毛片无码免费无码播放| 亚洲中文字幕一二三四区苍井空| 大肥婆丰满大肥奶bbw肥| 鲁大师影院在线视频在线观看| 亚洲精品123区| 国产成人精品视频频| 文中字幕一区二区三区视频播放 | 熟女理发厅| 国内精品久久久久影院亚洲| 精品视频网站| 亚洲成年男人的天堂网 | 青柠在线观看视频在线高清| thermo脱色摇床安卓下载| 无码成人AAAAA毛片含羞草| 久久视频这里只精品99热在线观看| 伊人狼人久久精品热9| 日本女人下面毛茸茸| 精品三级在线观看| 97免费视频在线| 午夜福利体验免费体验区| 老头操美女| 精品三级久久久久电影网1| 高跟丝袜岳第一次| 97人妻精品全国免费视频| 水蜜桃亚洲一二三四在线| 男女午夜性爽快免费视频不卡| 国产白丝精品爽爽久久蜜臀| 在线观看国产日韩| 色综合久久久久久| 青娱乐极品视觉盛宴国产视频| 久久sese|