bootloader開始段必須用彙編

CPU上電後會從IO空間的某地址取第一條指令。但此時:PLL沒有啓動,CPU工作頻率爲外部輸入晶振頻率,非常低;CPU工作模式、中斷設置等不確定;存儲空間的各個BANK(包括內存)都沒有驅動,內存不能使用。在這種情況下必須在第一條指令處做一些初始化工作,這段初始化程序與操作系統獨立分開,稱之爲bootloader。
一個嵌入式Bootloader最初始部分的代碼幾乎必須是用匯編語言寫成的,因爲開發板剛上電後沒有準備好C程序運行環境,比如堆棧指針SP沒有指到正確的位置。彙編代碼應該完成最原始的硬件設備初始化,並準備好C運行環境,這樣後面的功能就可以用C語言來寫了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章