專利名稱:一種基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種包含存儲、通訊和設(shè)備基礎(chǔ)讀寫操作的嵌入式設(shè)備啟動技術(shù),尤其是涉及一種基于啟動裝載程序(bootloader)實現(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,實現(xiàn)對嵌入式設(shè)備開發(fā)速度和啟動速度的提高。
本發(fā)明主要應(yīng)用于小型嵌入式設(shè)備開發(fā)領(lǐng)域。
背景技術(shù):
所謂嵌入式設(shè)備是指使用微處理器并且有配合的軟件系統(tǒng),運(yùn)行此軟件系統(tǒng)來操作硬件設(shè)備以完成某項或者某類特定任務(wù)的設(shè)備。
目前的小型的嵌入式設(shè)備(主要指使用一個主微處理器的嵌入式設(shè)備)通常是將一個實時(或分時)多任務(wù)(或單任務(wù))操作系統(tǒng)加載到一個單板主微處理器上應(yīng)用,從而實現(xiàn)較快的開發(fā)速度和較高的單板性能。
以目前比較常用的uclinux操作系統(tǒng)為例,bootloader(啟動裝載程序)將單板各個芯片和子系統(tǒng)初始化之后,將控制權(quán)交給uclinux系統(tǒng),此后的運(yùn)行只能服從uclinux的調(diào)派,這種方式占用比較多的資源,因為uclinux是通用的系統(tǒng),而不針對某個單板系統(tǒng)定制,很多功能實際并不使用,但是也占用資源。
例如,uclinux所包含linux內(nèi)核程序,是支持多線程分時處理系統(tǒng)內(nèi)核,此內(nèi)核包含比較復(fù)雜的進(jìn)程/線程調(diào)度管理程序,包括進(jìn)程優(yōu)先級管理、內(nèi)存管理、堆棧管理等管理程序;在某個特定系統(tǒng)中可能并不需要如此復(fù)雜的管理程序,但是因為uclinux是通用操作系統(tǒng),不可能將其內(nèi)核修改到與特定系統(tǒng)需要一致;這些不需要但是不可能刪除的復(fù)雜的功能程序就占用了系統(tǒng)的存儲空間、運(yùn)行內(nèi)存空間和微處理器運(yùn)行時間,實際上反而降低了系統(tǒng)的效率。
同時uclinux系統(tǒng)必須使用linux的指令系統(tǒng),使用linux的存儲格式,使得開發(fā)嵌入式系統(tǒng)必須在linux開發(fā)環(huán)境中進(jìn)行,很多有良好Windows編程經(jīng)驗的程序員必須重新學(xué)習(xí)linux環(huán)境的編程,這在很大程度上提高了嵌入式的入門臺階。
類似的,還有內(nèi)存分配管理、Ethernet支持等程序,他們可能是某個特定系統(tǒng)并不需要的,但是他們也占用了系統(tǒng)的資源。
綜上所述,在嵌入式系統(tǒng)開發(fā)中千篇一律的使用uclinux通用系統(tǒng)開發(fā),雖然是比較簡單的實現(xiàn)方案,但是實際上產(chǎn)生了減慢單板運(yùn)行速度,限制嵌入式的發(fā)展的效果。同樣,使用其他通用操作系統(tǒng)開發(fā),也存在方案簡單但是效率低下的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,在本發(fā)明中啟動裝載程序不僅實現(xiàn)引導(dǎo)功能,還進(jìn)一步實現(xiàn)部分的操作系統(tǒng)功能。
本發(fā)明具體是這樣實現(xiàn)的一種基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,啟動裝載程序完成單板的基本設(shè)置,包括各個芯片和子系統(tǒng)配置、通訊參數(shù)設(shè)置、文件系統(tǒng)配置;其特征在于,所述啟動裝載程序還執(zhí)行如下處理步驟一,裝載系統(tǒng)需要支持的外圍設(shè)備基礎(chǔ)讀/寫命令;步驟二,裝載由基礎(chǔ)讀/寫命令組合完成的設(shè)置命令,控制各個功能芯片執(zhí)行一定的動作或者改變存儲芯片中保存的數(shù)據(jù);步驟三,系統(tǒng)進(jìn)入等待狀態(tài),等待輸入用戶命令,并且解析用戶命令,執(zhí)行不同操作。
所述啟動裝載程序還進(jìn)一步執(zhí)行如下處理步驟四,將Flash/ROM按照FAT32格式建立文件系統(tǒng),包括引導(dǎo)區(qū)、信息區(qū)、數(shù)據(jù)區(qū)。
步驟五,所述基礎(chǔ)讀/寫命令按照邏輯關(guān)系和時序關(guān)系編寫成可以執(zhí)行的程序代碼影像打包成文件,存儲在Flash/ROM,并通過步驟三的用戶命令來定位并運(yùn)行此文件。
所述步驟一中外圍設(shè)備基礎(chǔ)讀/寫命令進(jìn)一步包括功能芯片的寄存器、端口和存儲芯片的數(shù)據(jù)。
所述步驟三的輸入用戶命令包括按鍵輸入或者PC通訊輸入。
所述步驟三中解析用戶命令包括將用戶命令解釋為一條或者幾條設(shè)置命令,并且按順序執(zhí)行這些設(shè)置命令,完成操作。
本發(fā)明的效果體現(xiàn)在以下三方面A.傳統(tǒng)嵌入式的bootloader只實現(xiàn)引導(dǎo)功能,引導(dǎo)之后交給操作系統(tǒng)管理;本發(fā)明將bootloader的功能延伸,通過bootloader實現(xiàn)部分操作系統(tǒng)的功能,這些功能是嵌入式系統(tǒng)開發(fā)中最基本的功能,幾乎是所有系統(tǒng)開發(fā)必須的,主要包括基礎(chǔ)通訊支持、基礎(chǔ)讀寫操作、由基礎(chǔ)讀寫操作組合而成的稍微復(fù)雜的操作;借助這些功能,開發(fā)者可以操作嵌入式系統(tǒng)完成一些簡單的系統(tǒng)動作,達(dá)到一定的功能目的,而此實現(xiàn)方案因為沒有冗余的功能,所占用系統(tǒng)資源遠(yuǎn)遠(yuǎn)小于uclinux操作系統(tǒng),只占用非常少的資源,方便簡潔,從而提高了系統(tǒng)的裝載速度。
B.本發(fā)明可擴(kuò)展性強(qiáng),可以通過擴(kuò)展FAT文件系統(tǒng),將按一定邏輯和時序組合簡單功能得到的非常復(fù)雜功能的程序包裝成文件形式,就能夠在系統(tǒng)運(yùn)行之后再將文件通過高速通訊下載到指定位置,提高了下載速度,加快了開發(fā)調(diào)試速度。
C.本發(fā)明將運(yùn)行程序包裝成文件形式,用戶(開發(fā)人員)可以清晰明確的調(diào)用需要的程序,實現(xiàn)比較簡約合理的資源分配和調(diào)用;并且由bootloader支持批處理文件,實現(xiàn)自動運(yùn)行。
圖1是本發(fā)明所述方法的實施流程圖。
具體實施例方式
本發(fā)明將部分操作系統(tǒng)的功能移至bootloader程序中完成,包括通訊、基礎(chǔ)命令的支持、文件系統(tǒng)支持等。
首先,和傳統(tǒng)的嵌入式程序一樣,bootloader程序需要完成單板的基本設(shè)置,包括各個芯片和子系統(tǒng)配置、通訊參數(shù)設(shè)置、文件系統(tǒng)配置等。
然后進(jìn)入循環(huán)等待命令,包括進(jìn)一步的設(shè)置命令、調(diào)試命令和其他基礎(chǔ)命令,例如linux的基礎(chǔ)命令。
原有bootloader程序流程的具體過程是a.復(fù)位所有需要同步/異步復(fù)位的芯片,使它們進(jìn)入工作狀態(tài);b.微處理器初始化本身的工作模式,配置各個端口;c.微處理器根據(jù)實際情況初始化各個需要初始化的外圍芯片,包括工作模式和通訊協(xié)議等;d.檢查和初始化存儲芯片(Flash、SDRAM等);e.設(shè)置默認(rèn)回顯設(shè)備,以顯示嵌入式設(shè)備運(yùn)行信息;執(zhí)行了這些基本操作之后,嵌入式設(shè)備就從指定的存儲器位置(通常是ROM中)讀取嵌入式操作系統(tǒng)映像文件并且把這個影像復(fù)制到Flash的程序代碼段中,然后就跳轉(zhuǎn)到這個Flash地址,開始運(yùn)行嵌入式操作系統(tǒng)。可以看到,此后嵌入式設(shè)備就交由這個操作系統(tǒng)管理。
而本發(fā)明的方法是不復(fù)制操作系統(tǒng)影像文件并且運(yùn)行操作系統(tǒng),而是執(zhí)行下面的步驟f.裝載系統(tǒng)需要支持的外圍設(shè)備基礎(chǔ)讀/寫命令,依靠這些基礎(chǔ)讀/寫命令就能夠完成對功能芯片的寄存器、端口和存儲芯片的數(shù)據(jù)進(jìn)行訪問;
g.裝載由基礎(chǔ)讀/寫命令組合完成的設(shè)置命令,這些設(shè)置命令是多條基礎(chǔ)讀/寫命令組合而成,依靠這些組合命令就可以控制各個功能芯片執(zhí)行一定的動作或者改變存儲芯片中保存的數(shù)據(jù)等;h.系統(tǒng)進(jìn)入等待狀態(tài),等待輸入(按鍵輸入或者PC通訊輸入等)命令,這里的命令是由字符構(gòu)成的用戶命令,系統(tǒng)解析這些用戶命令,將他們解釋為一條或者幾條設(shè)置命令(設(shè)置命令是代碼),并且按順序執(zhí)行這些設(shè)置命令,完成特定的動作。
到此本發(fā)明所述方法由bootloader實現(xiàn)的處理已經(jīng)完成。同時,本發(fā)明所述方法具備很高的可擴(kuò)展性和靈活性,體現(xiàn)在下面的i、j步驟。
i.將Flash/ROM按照FAT32格式建立文件系統(tǒng),包括引導(dǎo)區(qū)、信息區(qū)、數(shù)據(jù)區(qū)(FAT32是一種標(biāo)準(zhǔn)的磁盤存儲格式),Bootloader支持簡單的FAT32文件系統(tǒng),包括文件存儲方式、命名方式等;j.所述基礎(chǔ)讀/寫命令按照邏輯關(guān)系和時序關(guān)系編寫成可以執(zhí)行的程序代碼影像文件,存儲在Flash/ROM中,并通過h步驟的用戶命令來定位并運(yùn)行此影像。
例如run scanusb來查找所有usb設(shè)備并給出具體地址和設(shè)備型號,其中“scanusb”是可執(zhí)行程序代碼影像,“run”是一個用戶命令,作用是定位可執(zhí)行文件并且運(yùn)行此文件的代碼。
i、i步驟配合前面所描述的bootloader方法,可以非常靈活的開發(fā)調(diào)試嵌入式系統(tǒng)。因為本發(fā)明的bootloader程序已經(jīng)可以支持系統(tǒng)的運(yùn)行,通過i、j步驟可以在運(yùn)行狀態(tài)的系統(tǒng)中通過高速的通訊系統(tǒng)從相應(yīng)的存儲設(shè)備上下載可執(zhí)行的程序代碼影像文件,支持調(diào)試,這種方法比傳統(tǒng)下載uclinux和運(yùn)行文件的方法,傳輸速度快,傳輸數(shù)據(jù)量小,大大提高了嵌入式系統(tǒng)的開發(fā)速度。
如附圖所示,圖中其中右邊虛線框中部分為本發(fā)明比傳統(tǒng)方法新增加的部分。本發(fā)明通過豐富靈活的命令系統(tǒng),配合FAT32文件系統(tǒng)的支持,獲得更短的開發(fā)周期和嵌入式設(shè)備系統(tǒng)啟動速度。因為細(xì)致而且直接的命令支持,開發(fā)中可以方便的試驗各個芯片和芯片構(gòu)成的系統(tǒng)的操作方式、執(zhí)行時序的優(yōu)劣,并且實時、直接看到各種操作方式、執(zhí)行時序的效果,并且可以在系統(tǒng)啟動之后再使用USB之類的高速通訊設(shè)備下載執(zhí)行代碼影像文件,大大提高下載速度,這樣就能有效降低設(shè)備開發(fā)難度,提高開發(fā)的速度;同時,本著嵌入式設(shè)備“專用”的宗旨,在調(diào)試過程結(jié)束之后只裝入需要的部分代碼,而不是裝入linux或者wince系統(tǒng)來配置設(shè)備,這樣可以有效提高設(shè)備啟動的速度。
權(quán)利要求
1.一種基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,啟動裝載程序完成單板的基本設(shè)置,包括各個芯片和子系統(tǒng)配置、通訊參數(shù)設(shè)置、文件系統(tǒng)配置;其特征在于,所述啟動裝載程序還執(zhí)行如下處理步驟一,裝載系統(tǒng)需要支持的外圍設(shè)備基礎(chǔ)讀/寫命令;步驟二,裝載由基礎(chǔ)讀/寫命令組合完成的設(shè)置命令,控制各個功能芯片執(zhí)行一定的動作或者改變存儲芯片中保存的數(shù)據(jù);步驟三,系統(tǒng)進(jìn)入等待狀態(tài),等待輸入用戶命令,并且解析用戶命令,執(zhí)行不同操作。
2.如權(quán)利要求1所述的基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,其特征在于,所述啟動裝載程序還進(jìn)一步執(zhí)行如下處理步驟四,將Flash/ROM按照FAT32格式建立文件系統(tǒng),包括引導(dǎo)區(qū)、信息區(qū)、數(shù)據(jù)區(qū)。
3.如權(quán)利要求1所述的基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,其特征在于,所述啟動裝載程序還進(jìn)一步執(zhí)行如下處理步驟五,所述基礎(chǔ)讀/寫命令按照邏輯關(guān)系和時序關(guān)系編寫成可以執(zhí)行的程序代碼影像文件,存儲在Flash/ROM,并通過步驟三的用戶命令來定位并運(yùn)行此文件。
4.如權(quán)利要求1或2或3所述的基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,其特征在于所述步驟一中外圍設(shè)備基礎(chǔ)讀/寫命令進(jìn)一步包括功能芯片的寄存器、端口和存儲芯片的數(shù)據(jù)。
5.如權(quán)利要求1或2或3所述的基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,其特征在于所述步驟三的輸入用戶命令包括按鍵輸入或者PC通訊輸入。
6.如權(quán)利要求1或2或3所述的基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,其特征在于所述步驟三中解析用戶命令包括將用戶命令解釋為一條或者幾條設(shè)置命令,并且按順序執(zhí)行這些設(shè)置命令,完成操作。
全文摘要
本發(fā)明公開了一種基于啟動裝載程序?qū)崿F(xiàn)嵌入式系統(tǒng)運(yùn)行的方法,啟動裝載程序完成單板的基本設(shè)置,包括各個芯片和子系統(tǒng)配置、通訊參數(shù)設(shè)置、文件系統(tǒng)配置;所述啟動裝載程序還執(zhí)行如下處理步驟一,裝載系統(tǒng)需要支持的外圍設(shè)備基礎(chǔ)讀/寫命令;步驟二,裝載由基礎(chǔ)讀/寫命令組合完成的設(shè)置命令,控制各個功能芯片執(zhí)行一定的動作或者改變存儲芯片中保存的數(shù)據(jù);步驟三,系統(tǒng)進(jìn)入等待狀態(tài),等待輸入用戶命令,并且解析用戶命令,執(zhí)行不同操作。采用本發(fā)明所述方法,實現(xiàn)部分OS功能,更加方便簡潔,從而提高了系統(tǒng)的裝載速度,在系統(tǒng)運(yùn)行之后再將文件通過高速通訊下載到指定位置,提高了下載速度,加快了開發(fā)調(diào)試速度。
文檔編號G06F9/445GK1776619SQ200510130559
公開日2006年5月24日 申請日期2005年12月15日 優(yōu)先權(quán)日2005年12月15日
發(fā)明者涂堅, 游明琦 申請人:北京中星微電子有限公司