久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4184|回復: 9
打印 上一主題 下一主題
收起左側

STM32啟動代碼研究

[復制鏈接]
跳轉到指定樓層
樓主
ID:255072 發表于 2017-12-11 13:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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

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

    啟動代碼究竟都干了些什么工作,為何需要它?想想你在c語言中用到了什么東西,而這些東西卻是拿來就可以用的?堆、棧!沒錯,就是他們。我們知道堆和棧是內存中劃分出的一塊區域,那為什么我們沒有親自劃分呢,因為啟動代碼幫了你的忙。。≡傧胂雴纹瑱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都有啟動代碼。這里完成了最基本的初始化功能,尤其是中斷向量表,程序猿每一個中斷函數的名字都要與啟動代碼中的向量表對應,否則中斷是無法進入的。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:255072 發表于 2017-12-16 17:05 | 只看該作者
對于新手來說還是先把51單片機學差不多了再來學習STM32
回復

使用道具 舉報

板凳
ID:194656 發表于 2017-12-16 22:39 | 只看該作者
32對于新手來說還是有點難度。。
回復

使用道具 舉報

地板
ID:255072 發表于 2017-12-20 17:29 | 只看該作者
還是那句話,首先要學習C語言基礎,就相當于80%會單片機了,因為現在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。
回復

使用道具 舉報

5#
ID:264486 發表于 2017-12-20 20:38 | 只看該作者
研究研究
回復

使用道具 舉報

6#
ID:255072 發表于 2017-12-28 09:52 | 只看該作者
建議你現在不要糾結這個問題,剛開始對著手冊教程等學習用單片機,各種外設。等你熟了后再去理解它們各自的內核,存儲結構之類的。
回復

使用道具 舉報

7#
ID:255072 發表于 2018-1-4 11:06 | 只看該作者
如果是真 的要學stm32,建議還是從stm32F103開始學吧,資料多,開發板也很多,用的也非常廣,學習單片機當然是C語言了,你要是溜,玩c++也行。
回復

使用道具 舉報

8#
ID:255072 發表于 2018-1-10 11:33 | 只看該作者
單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域的廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的32位300M的高速單片機。
回復

使用道具 舉報

9#
ID:168857 發表于 2018-1-10 14:29 | 只看該作者
樓主應該是大神,可否建群共同討論,這樣效率更高,誠懇受邀QQ:593976107
回復

使用道具 舉報

10#
ID:281751 發表于 2018-3-2 13:47 | 只看該作者
謝謝樓主分享 !
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区二三区不卡 | 99久久夜色精品国产亚洲96 | 亚洲欧美在线观看 | av在线一区二区三区 | 亚洲精品第一页 | 免费成人在线网站 | 91高清视频在线观看 | 国产999精品久久久久久绿帽 | 国产欧美综合在线 | 久久久久久91 | 精品成人av | 国产成人综合网 | 精品无码久久久久久国产 | 视频第一区 | 日韩www视频 | 久久久2o19精品 | 成人精品国产一区二区4080 | 国产日韩一区二区三免费高清 | 国产高清一二三区 | 成年无码av片在线 | 国产精品入口 | 日韩综合在线 | 久久久久久成人 | 午夜影院 | 日韩在线不卡视频 | 在线一区视频 | 成人欧美一区二区三区在线播放 | 黄色片av| 国产精品一区二区三区在线 | 浴室洗澡偷拍一区二区 | 在线成人 | 91中文字幕在线观看 | a级片在线观看 | 日韩视频免费在线 | 午夜男人天堂 | 91激情视频 | 精品一二区 | 国产精品视频综合 | 国产精品久久久久久婷婷天堂 | 北条麻妃av一区二区三区 | 亚洲成人黄色 |