成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

一種啟動嵌入式Linux操作系統(tǒng)的方法

文檔序號:10534764閱讀:403來源:國知局
一種啟動嵌入式Linux操作系統(tǒng)的方法【專利摘要】一種啟動嵌入式Linux操作系統(tǒng)的方法,本發(fā)明涉及電子設(shè)計(jì)領(lǐng)域,尤其涉及在嵌入式開發(fā)板上啟動嵌入式Linux操作系統(tǒng)的方法;針對目前在嵌入式開發(fā)板上啟動嵌入式Linux操作系統(tǒng)的方式均為Bootloader載入內(nèi)核和文件系統(tǒng)的方式,Bootloader的移植依賴于不同的開發(fā)板,通用性差,而且包含大量低層程序的開發(fā);本發(fā)明在PCI系統(tǒng)總線上,通過橋接芯片PC87415擴(kuò)展出IDE總線,在IDE總線上連接閃存器件;嵌入式Linux操作系統(tǒng)啟動采用兩階段的引導(dǎo):第一階段為初始initrd作為根文件系統(tǒng)進(jìn)行掛載,第二階段為實(shí)際根文件系統(tǒng)在RAM盤中的掛載;本發(fā)明設(shè)計(jì)的啟動嵌入式Linux的方式摒棄了低層的Bootloader配置和開發(fā),并且為與開發(fā)平臺無關(guān)的通用性方法?!緦@f明】一種啟動嵌入式Linux操作系統(tǒng)的方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及電子設(shè)計(jì)領(lǐng)域,尤其涉及在嵌入式開發(fā)板上啟動嵌入式Linux操作系統(tǒng)的方法。【
背景技術(shù)
】[0002]嵌入式技術(shù)借鑒臺式計(jì)算機(jī)的工作模式,把操作系統(tǒng)引入到電路板的設(shè)計(jì)中。這樣,就可以利用操作系統(tǒng),對電路板軟硬件進(jìn)行管理。而且也可以從互聯(lián)網(wǎng)上下載開源軟件,安裝在電路板上,省去了開發(fā)者自己寫代碼的過程,大大加快產(chǎn)品開發(fā)周期。[0003]在電路板上啟動操作系統(tǒng)的過程可以借鑒臺式計(jì)算機(jī)啟動操作系統(tǒng)的過程:臺式計(jì)算機(jī)在開機(jī)后,CPU首先運(yùn)行CMOS軟件,CMOS初始化計(jì)算機(jī)的各個(gè)硬件模塊,并效驗(yàn)這些硬件模塊能否正常工作,然后跳到啟動硬盤的零道零扇區(qū),執(zhí)行操作系統(tǒng)引導(dǎo)程序,操作系統(tǒng)引導(dǎo)程序把硬盤內(nèi)的操作系統(tǒng)載入內(nèi)存,最后啟動操作系統(tǒng)。[0004]嵌入式系統(tǒng)沒有硬盤,包括操作系統(tǒng)在內(nèi)的所有軟件都存儲在芯片中,人們在存儲芯片的入口地址放置一段程序,這段程序被稱為Bootloader。Bootloader的作用類似于計(jì)算機(jī)中的引導(dǎo)程序,它負(fù)責(zé)把嵌入式操作系統(tǒng)和文件系統(tǒng)載入內(nèi)存,然后啟動操作系統(tǒng)。由于Bootloader是嵌入式系統(tǒng)最先執(zhí)行的代碼,它最初的一些代碼與處理器硬件相關(guān),而且須用匯編語言進(jìn)行編程,是嵌入式開發(fā)中難度最大的部分。[0005]目前Bootloader來源途徑一般是互聯(lián)網(wǎng)上的開源軟件,常用的有U-boot、Blob、0penB10S>LinuxB1S等。開源Bootloader不需要開發(fā)者自己編程,它們具有來源方便、應(yīng)用快捷的特點(diǎn)。有的開源Bootloader還盡量做到通用,如U_boot可以支持嵌入式Linux系統(tǒng)的引導(dǎo),另外,它還支持VxWorks,并且支持PowerPC,MIPS,x86,ARM,N1s等諸多常用系列的處理器。OpenB1S支持x86、Alpha、AMD64和IPF等體系結(jié)構(gòu)的處理器。但另一方面,開源Bootloader也有無法克服的缺點(diǎn),由于開源,就沒人在技術(shù)上對用戶負(fù)責(zé);另外,由于Bootloader是位于硬件電路之上最低層的軟件,和硬件關(guān)系密切。用戶開發(fā)的硬件電路各式各樣,移植開源Bootloader需要修改各種配置,有時(shí)甚至需要讀懂Bootloader源代碼,對源代碼進(jìn)行修改,或者編寫支持用戶硬件的設(shè)備驅(qū)動程序,所以,移植開源Bootloader不是一件容易的事情?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明的目的在于避免對不同CPU嵌入式開發(fā)板做不同的Bootloader配置,和進(jìn)行低層的與CPU相關(guān)的Bootloader編程,而提出的一種具有通用性的嵌入式Linux操作系統(tǒng)啟動辦法。[0007]嵌入式開發(fā)板都具有系統(tǒng)PCI總線,不具有系統(tǒng)IDE總線,本發(fā)明的目的是通過如下措施來達(dá)到,在嵌入式開發(fā)板上,通過PCI到IDE橋接電路,擴(kuò)展出IDE總線;利用具有IDE接口的閃存,并在閃存上安裝嵌入式Linux操作系統(tǒng)及文件系統(tǒng);現(xiàn)有啟動嵌入式Linux操作系統(tǒng)的方法是通過Bootloader,由Bootloader把嵌入式Linux操作系統(tǒng)和文件系統(tǒng)載入內(nèi)存,然后把操作權(quán)交給嵌入式Linux操作系統(tǒng),從而啟動嵌入式Linux操作系統(tǒng);本發(fā)明和現(xiàn)有技術(shù)相同的地方是都達(dá)到啟動嵌入式Linux操作系統(tǒng)的目的,其改進(jìn)之處在于,放棄了Bootloader的使用;所述橋接電路橋接系統(tǒng)PCI總線和IDE總線,橋接電路包括一個(gè)PCI總線到IDE總線的橋接芯片,一個(gè)為IDE閃存提供電源的電源電路,該橋接芯片的型號是PC87415;所述系統(tǒng)PCI總線的32條地址數(shù)據(jù)復(fù)用信號線連接橋接芯片的32條地址數(shù)據(jù)復(fù)用信號端口;所述系統(tǒng)PCI總線的4條命令/字節(jié)使能信號線連接橋接芯片的4條命令/字節(jié)使能端口;所述系統(tǒng)PCI總線的奇偶效驗(yàn)信號線連接橋接芯片的奇偶效驗(yàn)端口;所述系統(tǒng)PCI總線的表明PCI總線處于忙碌狀態(tài)的框架信號線和主設(shè)備準(zhǔn)備好信號線連接橋接芯片的框架信號端口和主設(shè)備準(zhǔn)備好信號端口;所述系統(tǒng)PCI總線的目標(biāo)設(shè)備準(zhǔn)備好信號線連接橋接芯片的目標(biāo)設(shè)備準(zhǔn)備好信號端口;所述系統(tǒng)PCI總線的目標(biāo)設(shè)備停止傳輸請求信號線連接橋接芯片的目標(biāo)設(shè)備停止傳輸請求信號端口;所述系統(tǒng)PCI總線的設(shè)備選擇信號線連接橋接芯片的設(shè)備選擇信號端口;所述系統(tǒng)PCI總線的初始化地址選擇信號線連接橋接芯片的初始化地址選擇信號端口;所述系統(tǒng)PCI總線的奇偶效驗(yàn)錯(cuò)誤信號線連接橋接芯片的奇偶效驗(yàn)錯(cuò)誤信號端口;所述系統(tǒng)PCI總線的系統(tǒng)錯(cuò)誤信號線連接橋接芯片的系統(tǒng)錯(cuò)誤信號端口;所述系統(tǒng)PCI總線的中斷請求信號線連接橋接芯片的中斷請求信號端口;所述系統(tǒng)PCI總線的總裁請求信號線連接橋接芯片的總裁請求信號端口;所述系統(tǒng)PCI總線的總裁獲得信號線連接橋接芯片的總裁獲得信號端口;所述系統(tǒng)PCI總線的時(shí)鐘信號線連接橋接芯片的時(shí)鐘信號端口;所述系統(tǒng)PCI總線的復(fù)位信號線連接橋接芯片的復(fù)位信號端口;所述IDE電源電路信號端口I連接12伏正電平;所述IDE電源電路信號端口2和端口3連接地;所述IDE電源電路信號端口4連接一個(gè)電解電容的正極;所述電解電容的正極與5伏正電平連接;另外所述電解電容的負(fù)極連接地電平;所述橋接芯片IDE界面數(shù)據(jù)總線與閃存3-18腳相連接;所述橋接芯片IDE界面地址線0_2與閃存35、33、36腳相連接;所述橋接芯片IDE界面驅(qū)動輸入輸出準(zhǔn)備好信號與閃存27腳相連接;所述橋接芯片IDE界面驅(qū)動輸入輸出讀寫信號與閃存驅(qū)動25、23腳相連接;所述橋接芯片IDE界面驅(qū)動復(fù)位信號與閃存I腳相連接;所述橋接芯片II)E界面通道I片選I和3信號與閃存37,38腳相連接;所述橋接芯片IDE界面通道I中斷請求與閃存31腳相連接;所述橋接芯片IDE界面DMA請求與閃存21腳相連接;所述橋接芯片IDE界面DMA應(yīng)答與閃存29腳相連接;所述閃存2、19、22、24、26、30、40腳接地;所述橋接芯片作為主設(shè)備占用PCI總線的標(biāo)記為,框架信號線和主設(shè)備準(zhǔn)備好信號線都為有效;一旦主設(shè)備已使主設(shè)備準(zhǔn)備好信號線有效,在當(dāng)前數(shù)據(jù)相位完成前,不能改變框架信號線和主設(shè)備準(zhǔn)備好信號線的狀態(tài);在完成最后一個(gè)數(shù)據(jù)相位之后的時(shí)鐘周期主設(shè)備必須使主設(shè)備準(zhǔn)備好信號失效。[0008]從方案中可以看出,通過PCI總線和IDE總線的橋接電路,符合IDE協(xié)議的閃存操作命令被翻譯解讀成了符合PCI協(xié)議的內(nèi)容,對閃存進(jìn)行啟動標(biāo)記設(shè)置的分區(qū)之后,建立ext2文件系統(tǒng),然后在閃存中寫入嵌入式Linux操作系統(tǒng)和文件系統(tǒng),在B1S驅(qū)動下,嵌入式Linux操作系統(tǒng)就啟動起來;避免了Bootloader的使用,和針對特定硬件程序的編寫;提高了在不同嵌入式開發(fā)平臺上啟動嵌入式Linux操作系統(tǒng)的通用性?!靖綀D說明】[0009]圖1——本發(fā)明PCI總線到IDE總線擴(kuò)展原理框圖[0010]圖2——PCI橋接電路原理圖[0011]圖3——產(chǎn)生初始化內(nèi)存盤文件系統(tǒng)的可執(zhí)行腳本文件[0012]圖4——產(chǎn)生實(shí)際根文件系統(tǒng)的可執(zhí)行腳本文件【具體實(shí)施方式】[0013]一種啟動嵌入式Linux操作系統(tǒng)的方法,通過PCI總線到IDE總線的橋接電路(參考圖1),擴(kuò)展出IDE接口,在該IDE接口上,連接IDE閃存,通過系統(tǒng)B1S驅(qū)動,啟動閃存上的嵌入式Linux操作系統(tǒng);所述PCI到IDE的橋接電路包括一個(gè)橋接芯片和一個(gè)為IDE閃存提供電源的電源電路;本發(fā)明中,橋接芯片與系統(tǒng)PCI的連接如下所述(參考圖2)=PCI總線的AD[31:0]連接橋接芯片的AD[31:0],PCI總線的C/BE[3:0]連接橋接芯片的C/BE[3:O],PCI總線的PAR連接橋接芯片的PAR,PCI總線的FRAME#連接橋接芯片的FRAME#,PCI總線的TRDY#連接橋接芯片的TRDY#,PCI總線的IRDY#連接橋接芯片的IRDY#,PCI總線的STOP#連接橋接芯片的STOP#,PCI總線的DEVSEL#連接橋接芯片的DEVSEL#,PCI總線的IDSEL#連接橋接芯片的IDSEL#,PCI總線的PERR#連接橋接芯片的PERR#,PCI總線的SERR#連接橋接芯片的SERR#,PCI總線的TRDY#連接橋接芯片的TRDY#,PCI總線的INTA#連接橋接芯片的INTA#,PCI總線的REQ#連接橋接芯片的REQ#,PCI總線的GNT#連接橋接芯片的GNT#,PCI總線的CLK連接橋接芯片的CLK,PCI總線的RST#連接橋接芯片的RST#;本發(fā)明中,橋接芯片與IDE總線的連接如下所述(參考圖2):橋接芯片DD[15:0]與閃存3_18腳相連接,橋接芯片DA[3:0]與閃存35、33、36腳相連接,橋接芯片D1RDY與閃存27腳相連接,橋接芯片D1R#、DIOff#與閃存25、23腳相連接,橋接芯片DRST#與閃存I腳相連接,橋接芯片CH1_CS1#、CH1_CS3#與閃存37、38腳相連接,橋接芯片CH1_INTRQ與閃存31腳相連接,橋接芯片CH1_DMARQ與閃存21腳相連接,橋接芯片CH1_DMACK#與閃存29腳相連接,閃存2、19、22、24、26、30、40腳接地;為IDE閃存提供電源的電源電路連接如下所述(參考圖2):該電源電路信號端口I連接VDD12,該電源電路端口2和端口3連接GND,該電源電路信號端口4連接CAP的正端,該CAP的正端與VDD5連接,另外該CAP的負(fù)端連接GND。[0014]在本【具體實(shí)施方式】中,P1單扇區(qū)數(shù)據(jù)的讀取包括驅(qū)動器識別,緩沖區(qū)讀和扇區(qū)讀。P1單扇區(qū)數(shù)據(jù)的讀取過程為:1.CPU把與讀IDE閃存有關(guān)的參數(shù)寫入特征寄存器(地址1F1)、扇區(qū)序數(shù)寄存器(地址1F2)、扇區(qū)數(shù)目寄存器(地址1F3)、磁道和驅(qū)動頭寄存器(地址1F4,1F5,1F6);2.CPU把命令(20H或21H)寫入命令寄存器(地址1F0);3.當(dāng)所要求的數(shù)據(jù)被讀出來之后,驅(qū)動器向CPU發(fā)出中斷請求;4.CPU檢測到中斷請求之后,讀取狀態(tài)寄存器(地址1F7),然后,從數(shù)據(jù)寄存器(地址1F0)讀出一個(gè)扇區(qū)的數(shù)據(jù),驅(qū)動器撤銷中斷請求作為CPU讀取狀態(tài)寄存器的回應(yīng);5.如果CPU讀取的數(shù)據(jù)不止一個(gè)扇區(qū),從3重復(fù)這個(gè)過程。[0015]在本【具體實(shí)施方式】中,P1單扇區(qū)寫數(shù)據(jù)包括:格式化閃存、寫緩沖區(qū)和寫扇區(qū)。P1單扇區(qū)寫數(shù)據(jù)過程為:1.CPU把與寫IDE閃存有關(guān)的參數(shù)寫入特征寄存器(地址1F1)、扇區(qū)序數(shù)寄存器(地址1F2)、扇區(qū)數(shù)目寄存器(地址1F3)、磁道和驅(qū)動頭寄存器(地址1F4,1F5,1F6);2.CPU把命令(格式化磁道50H,扇區(qū)寫30H或31H)寫入命令寄存器(地址1F0);3.CPU通過檢測狀態(tài)寄存器(地址1F7)以確認(rèn)驅(qū)動器已準(zhǔn)備好,準(zhǔn)備好的標(biāo)記為狀態(tài)寄存器的DRQ位置位;4.CPU向數(shù)據(jù)寄存器寫一個(gè)扇區(qū)的數(shù)據(jù);5.在驅(qū)動器完成一個(gè)扇區(qū)的處理之后,向CPU發(fā)出中斷請求信號;6.CPU檢測到中斷請求之后,讀取狀態(tài)寄存器(地址1F7),驅(qū)動器撤銷中斷請求作為CPU讀取狀態(tài)寄存器的回應(yīng);7.如果CPU讀取的數(shù)據(jù)不止一個(gè)扇區(qū),從3重復(fù)這個(gè)過程。[0016]在本【具體實(shí)施方式】中,DMA模式包括DMA讀和DMA寫。DMA模式處理過程為:1.命令階段,CPU初始化DMA引擎,CPU更新命令塊寄存器,CPU在命令寄存器中寫入命令碼(DMA讀為C8或C9,DMA寫為CA或CB);2.數(shù)據(jù)階段;3.狀態(tài)階段,驅(qū)動器向CPU發(fā)出一個(gè)中斷請求,CPU向驅(qū)動器發(fā)出STOP命令,CPU讀狀態(tài)寄存器(地址1F7)和錯(cuò)誤寄存器(地址1F1)。[0017]在本【具體實(shí)施方式】中,在IDE閃存第一個(gè)分區(qū)中放置bootableflag啟動標(biāo)志,應(yīng)用命令mke2fs在分區(qū)設(shè)備上建立ext2文件系統(tǒng)。Linux啟動采用兩階段的引導(dǎo),第一階段為初始initrd作為根文件系統(tǒng)進(jìn)行掛載,創(chuàng)建initrd的過程為:創(chuàng)建一個(gè)空文件,使用/dev/zero作為輸入,并將其寫入到initrd.1mg文件中,所生成的文件大小是4MB。然后使用mke2fs命令在這個(gè)空文件上創(chuàng)建ext2文件系統(tǒng),現(xiàn)在這個(gè)文件成為ext2格式的文件系統(tǒng),使用loop設(shè)備將這個(gè)文件掛載到/mnt/initrd,這個(gè)掛載點(diǎn)上有了一個(gè)目錄,它以ext2文件系統(tǒng)的形式呈現(xiàn)出來,對initrd文件進(jìn)行拼裝,拼裝結(jié)束后,采用圖3所示的可執(zhí)行腳本程序得到initrd.1mg.gz。第二階段為實(shí)際根文件系統(tǒng)在RAM盤中的掛載,采用RAM盤作為根文件系統(tǒng)掛載設(shè)備,可以在Linux非正常關(guān)機(jī)的情況下,保持文件系統(tǒng)的完好性,圖4是得到實(shí)際根文件系統(tǒng)的可執(zhí)行腳本文件。[0018]由本【具體實(shí)施方式】可以看出,由于在嵌入式開發(fā)平臺PCI總線上擴(kuò)展了IDE總線,為應(yīng)用IDE閃存提供了硬件平臺,在系統(tǒng)B1S和引導(dǎo)扇區(qū)中的引導(dǎo)程序作用下,Linux操作系統(tǒng)可以得到啟動,摒棄了低層的Bootloader配置和開發(fā),并且該方法為與開發(fā)平臺無關(guān)的通用性方法?!局鳈?quán)項(xiàng)】1.一種啟動嵌入式Linux操作系統(tǒng)的方法,其硬件電路為在系統(tǒng)PCI總線上擴(kuò)展出IDE總線的橋接電路,該橋接電路包括橋接芯片和具有IDE總線接口的閃存;在該閃存上載入嵌入式Linux操作系統(tǒng)和文件系統(tǒng)。2.根據(jù)權(quán)利要求1所述橋接芯片的PCI端與PCI總線相連接的電路,其特征在于,PCI總線的AD31=ADO連接橋接芯片的AD31:AD0,PCI總線的C/BE3:C/BE0連接橋接芯片的C/BE3:C/BE0,PCI總線的PAR連接橋接芯片的PAR,PCI總線的FRAME#連接橋接芯片的FRAME#,PCI總線的TRDY#連接橋接芯片的TRDY#,PCI總線的IRDY#連接橋接芯片的IRDY#,PCI總線的STOP#連接橋接芯片的STOP#,PCI總線的DEVSEL#連接橋接芯片的DEVSEL#,PCI總線的IDSEL#連接橋接芯片的IDSEL#,PCI總線的PERR#連接橋接芯片的PERR#,PCI總線的SERR#連接橋接芯片的SERR#,PCI總線的TRDY#連接橋接芯片的TRDY#,PCI總線的INTA#連接橋接芯片的INTA#,PCI總線的REQ#連接橋接芯片的REQ#,PCI總線的GNT#連接橋接芯片的GNT#,PCI總線的CLK連接橋接芯片的CLK,PCI總線的RST#連接橋接芯片的RSTS03.根據(jù)權(quán)利要求1所述橋接芯片的IDE端與閃存相連接的電路,其特征在于,橋接芯片DD15=DDO與閃存3-18腳相連接,橋接芯片DA3=DAO與閃存35、33、36腳相連接,橋接芯片D1RDY與閃存27腳相連接,橋接芯片D10R#、D10W#與閃存25、23腳相連接,橋接芯片DRST#與閃存I腳相連接,橋接芯片CH1_CS1#、CH1_CS3#與閃存37、38腳相連接,橋接芯片CH1_INTRQ與閃存31腳相連接,橋接芯片CH1_DMARQ與閃存21腳相連接,橋接芯片CH1_DMACK#與閃存29腳相連接,閃存2、19、22、24、26、30、40腳接地。4.根據(jù)權(quán)利要求1所述,在所述閃存上載入嵌入式Linux操作系統(tǒng)和文件系統(tǒng),其特征在于,在該IDE閃存第一個(gè)分區(qū)中放置bootableflag啟動標(biāo)志,應(yīng)用命令mke2fs在分區(qū)設(shè)備上建立ext2文件系統(tǒng);Linux啟動采用兩階段的引導(dǎo),第一階段為初始initrd作為根文件系統(tǒng)進(jìn)行掛載,創(chuàng)建initrd的過程為:創(chuàng)建一個(gè)空文件,使用/dev/zero作為輸入,并將其寫入到initrd.1mg文件中,所生成的文件大小是4MB;然后使用mke2fs命令在這個(gè)空文件上創(chuàng)建ext2文件系統(tǒng),現(xiàn)在這個(gè)文件成為ext2格式的文件系統(tǒng),使用loop設(shè)備將這個(gè)文件掛載到/mnt/initrd,這個(gè)掛載點(diǎn)上有了一個(gè)目錄,它以ext2文件系統(tǒng)的形式呈現(xiàn)出來,對initrd文件進(jìn)行拼裝;第二階段為實(shí)際根文件系統(tǒng)在RAM盤中的掛載,采用RAM盤作為根文件系統(tǒng)掛載設(shè)備?!疚臋n編號】G06F9/44GK105893300SQ201410798740【公開日】2016年8月24日【申請日】2014年12月22日【發(fā)明人】倪曉【申請人】重慶大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1