bootloader是學習嵌入式時的乙個概念
先說下為什麼微控制器不用寫bootloader,嵌入式卻需要
嵌入式一般程式都放在片外rom中,需要在系統啟動後把程式移動到片內ram中
由此可見,bootloader用處主要是搬移程式到麵內ram。
bootloader一般放在位址0h處,這樣系統剛剛啟動後就會執行
bootloader具體做兩步
1、配置看門狗,中斷,定時器,系統時鐘,初始化硬體,記憶體對映等
2、跳轉到c語言main函式出執行程式
除了做以上兩種常見功能外,還可以有自檢更新公升級功能
引導進新的程式,一般可以用串列埠,iic等方式
下面說下程式怎麼寫
(1)先準備幾個功能函式,比如擦除塊,寫位元組,寫塊,寫段之類的,總結其實就是,寫乙個可以傳入位址和資料兩個引數的函式,然後設定乙個起始位址全域性變數,然後每呼叫一次該函式第乙個引數傳入資料,第二個引數(起始位址)自加,按順序寫入各種資料。
(2)首先設定系統時鐘pll:因為無論是用串列埠還是什麼通訊搬移程式都需要時鐘頻率同步訊號。
(3)設定通訊方式,串列埠,iic,等
(4)不斷呼叫(1)中的函式傳寫資料,寫暫存器,配置各種東西
(5)最後一段也是呼叫(1)中的函式把程式**搬移到ram中(程式**一般是hex,dat之類的編譯完之後的16進製制檔案)
如果你要更新程式直接改程式然後重新編譯.hex、.dat之類的檔案,最後在每次啟動系統後通過bootlaoder自動搬移到ram中執行。
初識嵌入式 嵌入式開發概述
1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...
如何學習嵌入式 嵌入式如何入門?
學習嵌入式,該學習什麼基本的知識呢?嵌入式如何入門?其次,應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序 執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗...
非嵌入式與嵌入式的區別
非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...