單片機上電后內部發(fā)生的事情
單片機上電后,如果晶振正常起震的話,cpu就會在晶振的驅動下開始工作,cpu的工作就是在每個機器周期到指定的地方提取指令,然后解析并執(zhí)行,51單片機只有一個時鐘源所以51單片機永遠只能以一種時鐘頻率工作,單片機一上電單片機的頻率就固定了不能更改了,上電后單片機就以固定的頻率開始工作了,因此51單片機也沒有配置系統(tǒng)時鐘的寄存器,stm32等高級單片機就不一樣了,這種單片機有多個時鐘源,上電后單片機以某種固定的時鐘頻率開始工作,到指定的地址提取指令,然后解析并執(zhí)行,在后面的程序中可以更改系統(tǒng)的工作時鐘與工作頻率,
本文引用地址:http://www.biyoush.com/article/201709/364746.htm除非是沒有晶振提供時鐘,或者是系統(tǒng)沒有上電,否則cpu是不可能停止工作的,cpu的任務就是不停的提取指令,然后解析并執(zhí)行,而且單片機在我們下載程序之前,就已經有程序了,出廠之前廠家就已經下載了一部分程序在單片機里面。單片機上電之后就會先執(zhí)行這部分程序。例如:stm32系統(tǒng)存儲器中的用于ISP串口下載的bootloard程序,這段代碼的任務是與下載器通訊將用戶寫得代碼下載到指定地方。
stm32上電后可能在三個不同的地址開始提取指令并解析執(zhí)行,
一:用戶FLASH;里面裝載的是用戶下載的程序,如果沒有程序或者程序不正確,單片機將會跑飛,
二:系統(tǒng)存儲器:里面出廠前下載了用于ISP串口下載的bootloard程序,這段代碼的任務是與下載器通訊將用戶寫得代碼下載到指定地方。如果這部分代碼被破壞這個單片機將再也不能通過串口下載程序了。
三:片上內存SRAM;內存中的代碼是掉電不保存的,如果從這里啟動, 單片機將會跑飛 因為復位后的內存里面存的都是111111,cpu不認識這些是什么意思。
評論