秘密都在systeminit()函式裡
system_stm32f10x.c中定義了:
具體的函式呼叫順序:①startup_stm32f10x_hd.s(啟動檔案)→②systeminit()→③setsysclock ()→④setsysclockto72()
2,進入systeminit()函式:
由於未定義stm32f10x_cl,stm32f10x_ld_vl等,所以直接跳至225行執行
3,執行setsysclock函式
由於定義的是#define sysclk_freq_72mhz 72000000,所以會選擇setsysclockto72()函式執行
4,執行setsysclockto72()函式
由於未定義stm32f10x_cl,所以直接跳至885行執行
跳出setsysclockto72()函式
跳出setsysclock()函式
跳出systeminit()函式
說明:執行完**的885行至887行時,便已完成將系統時鐘設定為72mhz。
至此,基本配置已經完成,配置的時鐘如下:
sysclk(系統時鐘) = 72mhz(系統最高允許時鐘)
ahb匯流排時鐘 = 72mhz(ahb最高允許時鐘)
apb1匯流排時鐘 = 36mhz(apb1最高允許時鐘) tim2 3 4 5 6 7
apb2匯流排時鐘 = 72mhz(apb2最高允許時鐘) tim1
hsi:上電預設啟動,因精度不高所以先不採用,以後如果需要再使用
hse:外部高速時鐘,系統時鐘一般採用它,經過pll倍頻作為系統同時鐘
lse:外部低速時鐘,一般專門用於rtc,等到rtc模組時再使用
lsi:內部低速時鐘,精度不高,一般用於iwdgclk
Ext 檔案系統支援多大空間怎麼算
在作業系統中,檔案系統都是針對分割槽而言的,乙個磁碟必須先分割槽才能格式化檔案系統 即使你將磁碟所有容量劃分乙個分割槽 格式檔案系統後才能掛載使用,此時就必須知道乙個檔案系統到底支援多大的分割槽大小。注 目前我們以block大小為4kb計算,4kb是我們最常用的乙個值了。32bit的塊索引空間 就是...
c 類的成員函式在定義物件前分配了儲存空間嗎?
對於一般的類 非靜態 來說,在定義類但還未建立物件的時候,類的所有成員 包括變數和函式 都占用著 記憶體空間 準確地說占用著指令 區 但不占用堆疊空間 而建立物件的時候,會根據物件的型別占用堆疊的空間 用傳統模式建立物件會占用棧空間,用引用 new模式建立物件會占用堆空間,同時引用會儲存在棧裡 對於...
malloc最多能分配多大的記憶體空間?
malloc的全稱是memory allocation,中文叫動態記憶體分配,用於申請一塊連續的指定大小的記憶體塊區域以void 型別返回分配的記憶體區域位址,當無法知道記憶體具體位置的時候,想要繫結真正的記憶體空間,就需要用到動態的分配記憶體。void 型別表示未確定型別的指標。c,c 規定,vo...