嵌入式中燒寫程序的基礎知識有哪些
在嵌入式的基礎知識學習中,燒寫程序是必備的知識點之一,需要把寫的程序代碼燒寫到單片機上,在單片機上檢驗寫的程序代碼是否正確,是否能夠正常運行,下面我們來學習下什麽是燒寫和固件、常見的幾種燒寫方式、三種編程方式的區別。
簡單整理下固件、燒寫的定義以及燒寫過程的幾種方式。
一、什麽是燒寫(下載)和固件
嵌入式系統需要預先將程序寫入ROM/FLASH中,在啟動時載入運行這些程序,將已經生成的程序寫入ROM/FLASH的過程叫做燒寫。這樣固化在存儲介質上的文件叫固件(firmware)。那麽燒寫即為更新固件的過程。
二、常用的幾種燒寫方式
把系統當做一個存儲區域進行燒寫;
采用專門接口及專用的下載線將程序燒寫到固件中。這時CPU除了執行單片機本身的指令之外,還能執行對存儲器進行操作的特殊指令,擦除、燒寫和校驗指令。先通過傳輸相應的指令給CPU執行(擦除、讀入、燒寫、校驗等),這樣完成燒寫。現在普遍使用的JTAG仿真器也是這樣,CPU能執行JTAG的特殊指令,完成對固件的燒寫操作。
引導程序,即單片機中已經存在了一個燒寫程序。啟動單片機時首先運行這程序,程序判斷端口狀態,識別為燒寫的特殊狀態,就從某個端口讀取數據,然後寫入到存儲單元中。如果是正常的狀態,就轉到用戶的程序開始執行。需要觸發硬件選擇用戶程序模式還是燒寫模式。
三、關於ISP、ICP、IAP三種編程方式區別
ISP:In System Programing,在系統編程
ICP:In Circuit Programing,在電路編程
IAP:In Applicating Programing,在應用編程
ICP工作方式:只需要上電,處理器無需工作,更新整個存儲內容的方式,不需要處理器中間操作,不需要存在引導程序,屬於硬件單獨處理行為,芯片編成方式??
ISP工作方式:可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經編程的器件也可以用ISP方式擦除或再編程,理解上需要一些必要的硬件邏輯或引導代碼,如使用JTAG下載;
IAP工作方式: IAP從結構上將Flash存儲器映射為多個存儲體區域(引導區、運行區、下載存儲區等等),第一個項目程序存放在應用引導區,不執行正常的功能操作,而只是通過某種通信管道接收程序或數據,執行對其他部分代碼的更新;其他代碼才是真正的功能代碼,存放在程序存儲區。當芯片上電後,首先運行應用引導區程序,它作如下操作,檢查是否需要對第二部分代碼進行更新,存在更新則進行更新後執行,否則直接執行。所以引導區程序應該不可以IAP方式更新。
那麽問題來了,你覺得這三種方式的靈活度如何排序呢?你最常用的是?
恭喜你閱讀完了本文,相信通過本文的閱讀你已經了解了什麽是燒寫程序,常用的幾種燒寫方式是什麽,三種編程方式之間有什麽區別等,希望大家掌握理解,好了文末的問題你的答案是什麽呢?歡迎你來創客學院培訓班進行交流。
嵌入式中燒寫程序的基礎知識有哪些