在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

帶你一步步了解STM32啟動代碼

電子設計 ? 來源:網絡整理 ? 作者:工程師1 ? 2018-04-19 13:40 ? 次閱讀

對于熟悉電腦的伙伴們來說,BIOS(那個藍色的界面)可能不會太陌生吧,這貨就是電腦的啟動代碼。沒有BIOS的電腦,那注定是一塊板磚!BIOS主要是做一些開機前的準備工作,例如系統時間設定、啟動順序。。。扯遠了

其實電腦本身就是從單片機而來,那么單片機也是有啟動代碼的,只是我們絕大部分情況 不去關心它。

啟動代碼究竟都干了些什么工作,為何需要它?想想你在c語言中用到了什么東西,而這些東西卻是拿來就可以用的?堆、棧!沒錯,就是他們。我們知道堆和棧是內存中劃分出的一塊區域,那為什么我們沒有親自劃分呢,因為啟動代碼幫了你的忙!!!再想想單片機工作的時候,有哪些配置被我們忽略了,而它卻可以用?時鐘,就是這貨,我們可以不配置時鐘,而你發現它竟然有默認值!還是啟動代碼幫了你

接下來仔細研究一下stm32的啟動代碼,首先要知道啟動代碼藏在哪里:一個叫做startup的匯編文件。啟動代碼是對硬件的一個最初級的配置,它必須用匯編語言來實現,匯編是真正的硬件編程語言。

從上到下解讀啟動代碼

1、定義棧大小

2、定義堆大小

3、中斷向量地址

ps:Cortex-M4內核要求內存的第一個地址是棧指針,第二個地址開始為中斷向量。而中斷向量的第一個必須是復位,因為代碼是從上到下執行,開機首先遇到的就是復位

4、復位中斷處理函數

ps1:仔細那看有兩個東西需要注意:“SystemInit”這個是時鐘初始,“__main”這一句代表跳轉到“main”函數。正因為復位這樣的寫法,所以程序都是從main函數開始執行的

ps2:“SystemInit”具體實現過程在stm32fxxx.c,“__main”也是在某個地方與真正的main關聯起來

5、其他中斷處理函數

ps1:絕大部分中斷的實現系統沒有給出,等待程序猿去寫。但是中斷的名字我們都可以看到的,每一個名字都和上面向量表中對應著。我們知道函數名其實就是一個地址,而中斷的入口地址是固定的,只要找對名字,那地址也就找對了。

ps2:中斷的入口地址由內核和芯片決定,無法更改。因此不要改啟動代碼中的中斷向量表

6、初始化堆、棧


ps:正因為堆和棧已經被初始化,所以你的C語言才可以順利的執行

啟動代碼是非常關鍵的,所有的CPU都有啟動代碼。這里完成了最基本的初始化功能,尤其是中斷向量表,程序猿每一個中斷函數的名字都要與啟動代碼中的向量表對應,否則中斷是無法進入的。

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

    關注

    6037

    文章

    44558

    瀏覽量

    635309
  • STM32
    +關注

    關注

    2270

    文章

    10900

    瀏覽量

    356012
  • BIOS
    +關注

    關注

    5

    文章

    469

    瀏覽量

    45702
收藏 人收藏

    評論

    相關推薦

    虛擬現實正一步步向我們走來

    顯然,虛擬現實大發展的春天正在到來,虛擬現實正一步步走向消費者。那么,虛擬現實究竟涉及哪些重點技術領域?又將對整個產業帶來怎樣的影響?未來的“抓手”又有哪些?
    發表于 10-26 16:38 ?887次閱讀

    外國牛人教你一步步快速打造首臺機器人(超詳細)

    外國牛人教你一步步快速打造首臺機器人(超詳細)
    發表于 08-15 19:30

    一步步寫嵌入式操作系統—ARM編程的方法與實踐ch02

    一步步寫嵌入式操作系統—ARM編程的方法與實踐ch02
    發表于 08-20 20:54

    CC2530一步步演示程序燒寫

    CC2530一步步演示程序燒寫第一步——先安裝IAR開發環境第二歩——安裝CC2530燒寫工具第三歩——CC2530串口配置軟件使用具體完整步驟看下面文檔
    發表于 03-03 14:33

    一步步建立_STM32_UCOS_模板

    一步步建立_STM32_UCOS_模板
    發表于 09-29 11:46

    菜鳥一步步入門SAM4S-XPLAINED--IAR開發環境

    菜鳥一步步入門SAM4S-XPLAINED--IAR開發環境
    發表于 01-25 10:55

    一步步進行調試GPRS模塊

    背景:在不知道硬件是否正確情況下,一步步進行調試,最終完成調試。以下是自己調試步驟。1、從gprs模塊TX ,RX 單獨焊接兩個線出來,通過上位機發送AT指令,是否能正常工作。
    發表于 01-25 07:33

    ARM嵌入式系統如何入門?怎樣一步步的去學習

    ARM嵌入式系統的學習步驟對于很多新手來說,不知道ARM嵌入式系統如何入門?怎樣一步步的去學習?接下來信盈達教育嵌入式培訓網就詳解的為大家介紹:關于ARM嵌入式系統學習步驟:1.做個最小系統板:如果
    發表于 02-16 06:33

    stm32是如何一步步實現設置地址匹配接收喚醒中斷功能的

    為什么要設置地址匹配接收喚醒中斷呢?stm32是如何一步步實現設置地址匹配接收喚醒中斷功能的?
    發表于 02-28 08:07

    一步步寫嵌入式操作系統

    一步步寫嵌入式操作系統_ARM編程的方法與實踐
    發表于 07-14 11:32 ?0次下載

    看電工技術是如何一步步淪為勤雜工的

    相信很多的電工老師傅也都聽說過這種話,那電工究竟是不是勤雜工?電工技術工種是如何一步步的淪為勤雜工的,我們今天就重點來看看。
    的頭像 發表于 02-18 15:47 ?4138次閱讀

    看電路是怎么把電壓一步步頂上去的?資料下載

    電子發燒友網為你提供看電路是怎么把電壓一步步頂上去的?資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-16 08:47 ?13次下載
    看電路是怎么把電壓<b class='flag-5'>一步步</b>頂上去的?資料下載

    ROM與RAM 單片機上電后如何一步步執行?資料下載

    電子發燒友網為你提供ROM與RAM 單片機上電后如何一步步執行?資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-21 08:53 ?12次下載
    ROM與RAM 單片機上電后如何<b class='flag-5'>一步步</b>執行?資料下載

    一步步重新演繹汽車駕駛體驗

    一步步重新演繹汽車駕駛體驗
    發表于 11-04 09:52 ?0次下載
    <b class='flag-5'>一步步</b>重新演繹汽車駕駛體驗

    基于一步步蒸餾(Distilling step-by-step)機制

    為優化LLM為“小模型/少數據/好效果”,提供了種新思路:”一步步蒸餾”(Distilling step-by-step)
    的頭像 發表于 05-16 10:24 ?1236次閱讀
    基于<b class='flag-5'>一步步</b>蒸餾(Distilling step-by-step)機制
    主站蜘蛛池模板: 永久免费影视在线观看| a毛片基地免费全部香蕉| 欧美色视频在线| 妇少香港三日本三级视频| 久久国产成人午夜aⅴ影院| 免费精品美女久久久久久久久久| 成人aaa| 免费观看三级毛片| 天天操夜夜嗨| 男男宿舍高h炒肉bl| 女人被狂躁视频网站免费| 天天草夜夜| 国语自产免费精品视频一区二区| 亚洲香蕉影视在线播放| 美女黄18| 综合天天| 久久瑟| 久久丁香视频| 亚洲欧美日韩在线观看你懂的| 日韩欧美一卡二区| 夜夜操狠狠操| 亚洲情欲网| 久久综合性| 久久精品久噜噜噜久久| 91久久婷婷国产综合精品青草| 喷潮白浆| 成人黄色三级| 亚州一级毛片| 久久久久久久蜜桃| 福利姬 magnet| 色香视频一sxmv首页| 亚洲成人午夜影院| 国产叼嘿免费视频网站| 国产黄色精品| 一区二区三区四区视频| 婷婷深爱五月| 午色影院| 亚洲色图欧美色| 一级片免费在线观看视频| 九九热re| 91亚色视频|