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

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

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

3天內不再提示

STM32的啟動過程是怎么樣的?

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2020-11-27 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

分享這篇文章,談一下STM32啟動流程。如果讀者朋友已經有過匯編相關基礎,能夠夠好理解本文內容。匯編語言是比C語言更接近機器底層的編程語言,能讓我們更好的理解和操縱硬件底層。

STM32三種啟動模式

下好程序后,重啟芯片時,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存,這就是所謂的啟動過程。

STM32上電或者復位后,代碼區始終從0x00000000開始,其實就是將存儲空間的地址映射到0x00000000中。三種啟動模式如下:

從主閃存存儲器啟動,將主Flash地址0x08000000映射到0x00000000,這樣代碼啟動之后就相當于從0x08000000開始。主閃存存儲器是STM32內置的Flash,作為芯片內置的Flash,是正常的工作模式。一般我們使用JTAG或者SWD模式下載程序時,就是下載到這個里面,重啟后也直接從這啟動程序。

從系統存儲器啟動。首先控制BOOT0、BOOT1管腳,復位后,STM32與上述兩種方式類似,從系統存儲器地址0x1FFF F000開始執行代碼。系統存儲器是芯片內部一塊特定的區域,芯片出廠時在這個區域預置了一段Bootloader,就是通常說的ISP程序。這個區域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區。啟動的程序功能由廠家設置。系統存儲器存儲的其實就是STM32自帶的bootloader代碼。

從內置SRAM啟動,將SRAM地址0x20000000映射到0x00000000,這樣代碼啟動之后就相當于從0x20000000開始。內置SRAM,也就是STM32的內存,既然是SRAM,自然也就沒有程序存儲的能力了,這個模式一般用于程序調試。假如我只修改了代碼中一個小小的地方,然后就需要重新擦除整個Flash,比較的費時,可以考慮從這個模式啟動代碼,用于快速的程序調試,等程序調試完成后,在將程序下載到SRAM中。

用戶可以通過設置BOOT1和BOOT0引腳的狀態,來選擇在復位后的啟動模式。STM32三種啟動模式對應的存儲介質均是芯片內置的,如下圖:

串口下載程序原理

從系統存儲器啟動,這種模式啟動的程序功能是由廠家設置的。一般來說,這種啟動方式用的比較少。系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST在這個區域內部預置了一段BootLoader,也就是我們常說的ISP程序,這是一塊ROM,出廠后無法修改。

一般來說,我們選用這種啟動模式時,是為了從串口下載程序,因為在廠家提供的BootLoader中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。

這個下載方式需要以下步驟:

將BOOT0設置為1,BOOT1設置為0,然后按下復位鍵,這樣才能從系統存儲器啟動BootLoader;

在BootLoader的幫助下,通過串口下載程序到Flash中;

程序下載完成后,又有需要將BOOT0設置為GND,手動復位,這樣,STM32才可以從Flash中啟動。

從匯編代碼分析STM32啟動過程

STM32的啟動文件與編譯器有關,不同編譯器,它的啟動文件不同。雖然啟動文件(匯編)代碼各有不同,但它們原理類似,都屬于匯編程序。拿基于MDK-ARM的啟動文件來舉例,說一下要點內容。在基于MDK的啟動文件開始,有一段匯編代碼是分配堆棧大小的。

這里重點知道堆棧數值大小就行。還有一段AREA(區域),表示分配一段堆棧數據段。可以使用STM32CubeMX對上面的數值大小進行配置:

在IAR中,是通過工程配置堆棧大小:

看下面的匯編代碼,程序上電之后,是跳到Reset_Handler這個位置。

知道代碼是從Reset_Handler開始執行,再來看如下Reset_Handler匯編代碼。在啟動的時候,執行了SystemInit這個函數。

執行完SystemInit函數,初始化了系統時鐘,之后跳轉到main函數執行。

原文標題:淺談STM32的啟動過程

文章出處:【微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

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

    關注

    2293

    文章

    11032

    瀏覽量

    364804
  • 匯編語言
    +關注

    關注

    14

    文章

    412

    瀏覽量

    36865
  • 源代碼
    +關注

    關注

    96

    文章

    2953

    瀏覽量

    68364

原文標題:淺談STM32的啟動過程

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PD快充芯片U8732的軟啟動功能

    啟動技術的核心在于控制芯片電源電壓的平穩上升。銀聯寶PD快充芯片U8732內部集成有軟啟動功能,在軟啟動時間TST(典型值 5ms)內,電流峰值從最小值逐步增加,避免變壓器磁芯飽和,系統每次重啟都會伴隨一次軟
    的頭像 發表于 07-03 18:02 ?425次閱讀

    繞線轉子永磁電機啟動過程準時間最優控制

    摘要:繞線轉子永磁電機(WR-PMM)轉子斬波調阻啟動是一種便捷有效的啟動控制策略。通過斬波調阻的方法實時調節轉子外接電阻,能使啟動過程中平均轉矩始終保持最大值,實現繞線轉子永磁電機啟動過程
    發表于 06-12 13:50

    繞線電機啟動狀態到雙饋狀態過渡過程的研究

    同步轉速為參考,得出轉子側的不同頻率對最大轉差的影響及存在的規律性。該研究對于雙饋電機的啟動過程及調速工作都有著非常重要的意義。 純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:繞線電機啟動
    發表于 06-12 13:40

    晶閘管控制異步電機軟啟動過程中振蕩現象研究

    純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:晶閘管控制異步電機軟啟動過程中振蕩現象研究.pdf【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 06-04 14:39

    電機軟啟動器常見5大故障

    啟動器是一種集電機軟起動、軟停車、輕載節能和多種保護功能于一體的電機控制裝置。不僅實現在整個起動過程中無沖擊而平滑的起動電機,而且可根據電動機負載的特性來調節起動過程中的參數,如限流值、起動時間等
    的頭像 發表于 04-23 17:26 ?710次閱讀

    STM32的上電啟動過程分享

    、PC然后是“啟動文件”,一般主要是項目文件里面的startup_xxxxx.s文件。xa0 xa0 其實不光STM32系列單片機是這樣,我們接觸的NXP的微控制器、TI的MSP430以及51單片機等等
    發表于 03-07 08:09

    干貨!!!開關電源的軟啟動過程分析

    ,并使得動態測量更為容易。 開關管作為開關電源里面最重要的器件之一,在電源調試中也是受關注的重中之重。開關管的關斷和導通動作,實際上是一個比較復雜的過程,但我們先可以把它進行簡單化分析。例如,當
    發表于 11-26 17:40

    BQ79600-Q1啟動過程

    電子發燒友網站提供《BQ79600-Q1啟動過程.pdf》資料免費下載
    發表于 11-09 14:57 ?1次下載
    BQ79600-Q1<b class='flag-5'>啟動過程</b>

    AIC3254啟動過程是怎樣的?需要功能調節延時,請問怎么實現?

    AIC3254 啟動問題 :沒有IIS,時鐘是用MSP430產生的8M給AIC3254工作時鐘的,但是每次啟動要用手摸一下MCLK才能啟動,什么原因呢!大俠們能否說明一下AIC3254啟動
    發表于 11-07 07:28

    負載電容對電源轉換器啟動過程的影響

    理想的電源轉換器需要無論負載如何變化都保持輸出電壓穩定。在實際應用中,負載瞬態期間選擇不合適的輸出電容會導致過高的紋波電壓和浪涌電流,從而影響電源轉換器的性能。本文將介紹選擇輸出電容的指南,詳細介紹負載電容對啟動過程的影響,并提供改進建議。
    的頭像 發表于 10-28 11:08 ?754次閱讀
    負載電容對電源轉換器<b class='flag-5'>啟動過程</b>的影響

    SoC的數字簽名加解密過程

    SoC的數字簽名驗證是指在系統啟動或固件更新等關鍵時刻,對加載的固件或軟件進行數字簽名的驗證過程。通過驗證數字簽名,系統可以確保所加載的固件或軟件是經過授權和信任的,從而防止惡意代碼的執行和系統啟動過程的篡改。
    的頭像 發表于 10-21 14:52 ?852次閱讀

    PA3113D2在系統啟動過程中會出現一個POP聲,請問是什么原因造成的?

    請教各位高手,我現在CODEC芯片用的是WOLFSON WM8960,OPA用的是TI PA3113D2,上電瞬間的POP聲已經解決,但是在系統啟動過程中(快啟動完成時)還會出現一個POP聲,請問是什么原因造成的?
    發表于 10-18 06:39

    開關電源軟啟動電路類型簡述

    開關電源常用軟啟動電路的設計與應用,是確保電源系統穩定、可靠運行的重要環節。軟啟動電路的主要作用是在電源啟動過程中,通過控制啟動電流的大小和速率,避免對電網和負載造成過大的沖擊。
    的頭像 發表于 10-10 10:39 ?3372次閱讀
    開關電源軟<b class='flag-5'>啟動</b>電路類型簡述

    使用pahomqtt啟動過程中pipe_fops_open時出現rt_condvar_timedwait ,如何解決?

    在使用pahomqtt 啟動過程中pipe_fops_open 時出現rt_condvar_timedwait 死等,而RTT 5.0則可以。請問該如何解決?
    發表于 09-26 07:11

    啟動繞組與運行繞組的區別是什么

    與運行繞組的定義 啟動繞組和運行繞組是電機繞組設計中的兩種基本形式。啟動繞組主要用于電機的啟動過程,它能夠提供足夠的啟動轉矩,使電機順利啟動
    的頭像 發表于 07-26 09:10 ?3380次閱讀
    主站蜘蛛池模板: 人人公开免费超级碰碰碰视频 | 国产精品久久久久久一级毛片 | 俺来也俺去啦久久综合网 | 97人人艹| www.99在线 | 高清欧美一级在线观看 | 超人碰碰碰人人成碰人 | 手机福利片 | 国产亚洲美女精品久久久2020 | 日本在线黄色网址 | 久久影院午夜伦手机不四虎卡 | 五月婷婷影院 | 五月天婷婷精品视频 | 色视频一区二区三区 | 国产在线一卡二卡 | 国产精品任我爽爆在线播放6080 | 成人啪啪网站 | 亚色最新网址 | 日韩午夜精品 | 国产精品天天看 | 欧美一区二区在线观看视频 | 日本三级强在线观看 | 99久久香蕉国产综合影院 | 日本三级视频在线播放 | 国产一级特黄高清免费大片 | 国产免费啪啪 | 亚洲伊人久久大香线蕉结合 | 在线免费观看一区二区三区 | 性欧美zoz0另类xxxx | 欧美大黄 | 天天综合色天天综合色sb | 男女交性视频免费播放视频 | 午夜三级视频 | 久操视频在线免费观看 | 视频三区 | 另类性欧美喷潮videofree | 波多野吉衣一区二区三区在线观看 | www.午夜| 性喷潮久久久久久久久 | 欧美深深色噜噜狠狠yyy | 欧美黑人巨大xxxx猛交 |