日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

野火stm32呼吸灯程序_说一说STM32启动过程

發布時間:2025/3/8 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 野火stm32呼吸灯程序_说一说STM32启动过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32上電后是怎么啟動的?

main函數之前單片機都做了些什么?

帶著這些疑問我們開始進入游戲。。。。。

首先,開局一張圖,過程全靠編,如有說錯的地方望能指正

啟動大致流程

1- 上電啟動或者硬件復位

2- 單片機從0x00地址開始執行程序,在執行程序前,單片機會根據BOOT引腳設置,將對應的存儲器重映射到0x00處,如設置為BOOT0 = 0 ,BOOT1 = X 時,單片機將內部FLASH映射到0x00處,即將0X8000 0000地址映射到0X00處,單片機從FLASH中的程序啟動,其他啟動方式原理類似,相應的BOOT引腳設置如圖

3- 跳轉到存儲有代碼的存儲介質(如FLASH)以后,單片機首先找到的是一個中斷向量表(向量表如下圖所示),向量表第一個值是復位函數指針,它是用來初始化PC指針寄存器的,當PC指針寄存器初始化完成后,單片機會去執行復位函數

來自《Cortex M3與M4權威指南》

4- 復位函數如下圖,在復位函數中,首先執行系統時鐘初始化函數初始化系統時鐘,然后跳轉到__main(當然,在__main之前也可以再初始化其他外設,如初始化FSMC配置外部SRAM等)

5- 在__main函數中,會初始化內核的寄存器,如R0-R15,劃分堆空間(如果使用到的話)和棧空間(棧空間是C語言程序能運行的必要條件,沒有棧,C程序就無法運行),同時初始化程序數據,即將用戶代碼中的數據從FLASH中搬運到SRAM中,簡單理解就是初始化全局變量(這也就是全局變量在C語言中不初始化也不會出現隨機值的原因了)

相應加載過程如下圖

來自《野火零死角玩轉STM32》

來自《野火零死角玩轉STM32》

6-以上步驟執行完畢后,系統將會進入main函數,進入C語言的世界。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的野火stm32呼吸灯程序_说一说STM32启动过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。