版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第四章第四章最小系統(tǒng):引導(dǎo)與驅(qū)動(dòng)最小系統(tǒng):引導(dǎo)與驅(qū)動(dòng)2教材內(nèi)容4.1 引導(dǎo)層建立引導(dǎo)層建立 4.1.1 引導(dǎo)部分 4.1.2 驅(qū)動(dòng)部分 4.1.3 BIOS 4.2 引導(dǎo)模式引導(dǎo)模式 4.2.1 非片內(nèi)引導(dǎo) 4.2.2 片內(nèi)引導(dǎo) 4.3 中斷、中斷、I/O、MMU初始化初始化 4.3.1 中斷初始化 4.3.2 I/O初始化 4.3.3 MMU初始化4.4 驅(qū)動(dòng)部分(驅(qū)動(dòng)部分(BSP)的設(shè)計(jì))的設(shè)計(jì) 4.4.1 BSP的設(shè)計(jì)開發(fā) 4.4.2 BSP與BIOS 嵌入式系統(tǒng)的引導(dǎo)與驅(qū)動(dòng)程序構(gòu)成了覆蓋在物理層上的引導(dǎo)層,它使得千差萬別的硬件電路都具有相同外表。從上看,系統(tǒng)體現(xiàn)出平整一致的形態(tài)。34
2、.1 引導(dǎo)層建立引導(dǎo)層建立 平整度:引導(dǎo)層對(duì)于上級(jí)中間件所提供的操作接口的統(tǒng)一平整度:引導(dǎo)層對(duì)于上級(jí)中間件所提供的操作接口的統(tǒng)一性和友好性。性和友好性。 融合度:引導(dǎo)層對(duì)于下級(jí)硬件層控制和兼容能力。融合度:引導(dǎo)層對(duì)于下級(jí)硬件層控制和兼容能力。 厚度:引導(dǎo)層的規(guī)模,包括引導(dǎo)層的體積(軟件容量)的厚度:引導(dǎo)層的規(guī)模,包括引導(dǎo)層的體積(軟件容量)的大小和運(yùn)行所需時(shí)間大小和運(yùn)行所需時(shí)間 厚度增大厚度增大平整度、融合度提高平整度、融合度提高 引導(dǎo)時(shí)間增長,系統(tǒng)此期間不可控,不穩(wěn)定引導(dǎo)時(shí)間增長,系統(tǒng)此期間不可控,不穩(wěn)定性增大。性增大。4 引導(dǎo)層的基本任務(wù)就是讓相對(duì)通用的操作系統(tǒng)等軟件能夠引導(dǎo)層的基本任務(wù)就
3、是讓相對(duì)通用的操作系統(tǒng)等軟件能夠在各種各樣的硬件上執(zhí)行。為了達(dá)到這一目的:在各種各樣的硬件上執(zhí)行。為了達(dá)到這一目的: 操作系統(tǒng)等軟件要求盡可能高的通用性,而不同硬件系統(tǒng)的存儲(chǔ)操作系統(tǒng)等軟件要求盡可能高的通用性,而不同硬件系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)不同。因此,在所有其它軟件運(yùn)行之前還必須根據(jù)硬件的器結(jié)構(gòu)不同。因此,在所有其它軟件運(yùn)行之前還必須根據(jù)硬件的情況為它們提供可使用的存儲(chǔ)空間和入口地址等。情況為它們提供可使用的存儲(chǔ)空間和入口地址等。 在所有其它軟件運(yùn)行之前須對(duì)特定的硬件進(jìn)行檢測和初始化,使在所有其它軟件運(yùn)行之前須對(duì)特定的硬件進(jìn)行檢測和初始化,使硬件系統(tǒng)進(jìn)入一種待命狀態(tài),由于硬件不同,所以不同嵌入式系
4、硬件系統(tǒng)進(jìn)入一種待命狀態(tài),由于硬件不同,所以不同嵌入式系統(tǒng)需要相應(yīng)的初始化程序;統(tǒng)需要相應(yīng)的初始化程序; 在操作系統(tǒng)等軟件正常運(yùn)行過程中不可避免地要操作硬件,為了在操作系統(tǒng)等軟件正常運(yùn)行過程中不可避免地要操作硬件,為了能夠以相同的方式操作不同型號(hào)的同類硬件,需要對(duì)這些硬件進(jìn)能夠以相同的方式操作不同型號(hào)的同類硬件,需要對(duì)這些硬件進(jìn)行封裝,隱藏其差異,提供相同的操作界面。行封裝,隱藏其差異,提供相同的操作界面。54.1.1 引導(dǎo)部分引導(dǎo)部分 引導(dǎo)程序引導(dǎo)程序BootLoader:在操作系統(tǒng)內(nèi)核運(yùn)行之前執(zhí):在操作系統(tǒng)內(nèi)核運(yùn)行之前執(zhí)行的一段特殊程序,負(fù)責(zé)初始化系統(tǒng)硬件、建立內(nèi)存行的一段特殊程序,負(fù)責(zé)初
5、始化系統(tǒng)硬件、建立內(nèi)存空間映射表,將操作系統(tǒng)從擴(kuò)展存儲(chǔ)器中讀至內(nèi)存中。空間映射表,將操作系統(tǒng)從擴(kuò)展存儲(chǔ)器中讀至內(nèi)存中。 硬件檢測硬件檢測 初始化硬件初始化硬件 配置內(nèi)核配置內(nèi)核 調(diào)用操作系統(tǒng)內(nèi)核調(diào)用操作系統(tǒng)內(nèi)核 引導(dǎo)程序須適配于相應(yīng)的處理器硬件體系。引導(dǎo)程序須適配于相應(yīng)的處理器硬件體系。 大多數(shù)引導(dǎo)程序分為階段大多數(shù)引導(dǎo)程序分為階段I和和II兩部分。兩部分。 階段階段I針對(duì)不同的設(shè)備為不同的操作系統(tǒng)針對(duì)不同的設(shè)備為不同的操作系統(tǒng)提供同一的接口,如設(shè)備初始化,通常采用提供同一的接口,如設(shè)備初始化,通常采用匯編語言完成,影響融合度。匯編語言完成,影響融合度。 階段階段II通常用通常用C語言完成,可
6、實(shí)現(xiàn)復(fù)雜的語言完成,可實(shí)現(xiàn)復(fù)雜的功能,涉及系統(tǒng)的平整度。功能,涉及系統(tǒng)的平整度。64.1.2 驅(qū)動(dòng)部分驅(qū)動(dòng)部分 BSP(板級(jí)支持包):針對(duì)具體的硬件平臺(tái)所編寫的設(shè)(板級(jí)支持包):針對(duì)具體的硬件平臺(tái)所編寫的設(shè)備驅(qū)動(dòng)程序集。針對(duì)某一特定設(shè)備,備驅(qū)動(dòng)程序集。針對(duì)某一特定設(shè)備,BSP包含其初始化包含其初始化和部分驅(qū)動(dòng)。和部分驅(qū)動(dòng)。 BSP可直接與底層硬件建立聯(lián)系,同時(shí)可在操作系統(tǒng)層可直接與底層硬件建立聯(lián)系,同時(shí)可在操作系統(tǒng)層面,與其相關(guān)的接口驅(qū)動(dòng)也可加入。面,與其相關(guān)的接口驅(qū)動(dòng)也可加入。BSP對(duì)硬件的驅(qū)動(dòng)操作設(shè)計(jì)參對(duì)硬件的驅(qū)動(dòng)操作設(shè)計(jì)參數(shù)越多,操作的靈活性和功能數(shù)越多,操作的靈活性和功能越豐富,但驅(qū)動(dòng)
7、效率會(huì)下降,越豐富,但驅(qū)動(dòng)效率會(huì)下降,即引導(dǎo)層厚度增加。即引導(dǎo)層厚度增加。74.1.3 BIOS1.由來由來 MS為為IBM設(shè)計(jì)設(shè)計(jì)PC DOS時(shí)將時(shí)將DOS的整個(gè)設(shè)備驅(qū)動(dòng)層放在的整個(gè)設(shè)備驅(qū)動(dòng)層放在了了EPROM中稱為中稱為BIOS(基本輸入輸出系統(tǒng))(基本輸入輸出系統(tǒng)) 重大變革:重大變革: 硬件與軟件分離,不同種類硬件與軟件分離,不同種類PC機(jī)也可以使用機(jī)也可以使用DOS,軟件獨(dú)立發(fā)展。,軟件獨(dú)立發(fā)展。 出現(xiàn)了硬件擴(kuò)展,促使設(shè)備開放出現(xiàn)了硬件擴(kuò)展,促使設(shè)備開放 BIOS將計(jì)算機(jī)程序中原有與硬件緊密相關(guān)的部分剝離出來,固化將計(jì)算機(jī)程序中原有與硬件緊密相關(guān)的部分剝離出來,固化在計(jì)算機(jī)上,對(duì)于程
8、序設(shè)計(jì)者,各種計(jì)算機(jī)看上去都一樣。在計(jì)算機(jī)上,對(duì)于程序設(shè)計(jì)者,各種計(jì)算機(jī)看上去都一樣。8 BIOS在DOS中的地位9 2.功能功能 自檢及初始化程序自檢及初始化程序 檢查存儲(chǔ)器、鍵盤、顯示器等是否正常;檢查存儲(chǔ)器、鍵盤、顯示器等是否正常; 創(chuàng)建中斷向量,設(shè)置寄存器,對(duì)外部設(shè)備進(jìn)行設(shè)置,設(shè)置運(yùn)行創(chuàng)建中斷向量,設(shè)置寄存器,對(duì)外部設(shè)備進(jìn)行設(shè)置,設(shè)置運(yùn)行參數(shù)參數(shù) 引導(dǎo)操作系統(tǒng)進(jìn)入內(nèi)存引導(dǎo)操作系統(tǒng)進(jìn)入內(nèi)存 最后轉(zhuǎn)交控制權(quán)最后轉(zhuǎn)交控制權(quán) 程序服務(wù)處理程序服務(wù)處理 執(zhí)行各種硬件設(shè)備操作任務(wù),如讀寫磁盤、打印輸出等執(zhí)行各種硬件設(shè)備操作任務(wù),如讀寫磁盤、打印輸出等 中斷處理中斷處理 響應(yīng)計(jì)算機(jī)程序的請(qǐng)求,所有端
9、口設(shè)備以軟中斷的形式體現(xiàn),響應(yīng)計(jì)算機(jī)程序的請(qǐng)求,所有端口設(shè)備以軟中斷的形式體現(xiàn),啟動(dòng)時(shí)啟動(dòng)時(shí)BIOS即給出所有設(shè)備的中斷號(hào),當(dāng)應(yīng)用程序發(fā)出某一中即給出所有設(shè)備的中斷號(hào),當(dāng)應(yīng)用程序發(fā)出某一中斷請(qǐng)求時(shí)即根據(jù)中斷號(hào)執(zhí)行相應(yīng)的硬件驅(qū)動(dòng)斷請(qǐng)求時(shí)即根據(jù)中斷號(hào)執(zhí)行相應(yīng)的硬件驅(qū)動(dòng)10 嵌入式系統(tǒng)嵌入式系統(tǒng)BIOS例:電子閱讀器的例:電子閱讀器的BIOS 系統(tǒng)自檢系統(tǒng)自檢 完成完成MASK ROM、FLASH、SRAM、按鍵等硬件的檢測工作。、按鍵等硬件的檢測工作。 SM卡系統(tǒng)升級(jí)卡系統(tǒng)升級(jí) 在加電進(jìn)入自檢菜單后,可以進(jìn)入在加電進(jìn)入自檢菜單后,可以進(jìn)入SM卡系統(tǒng)升級(jí)狀態(tài),卡系統(tǒng)升級(jí)狀態(tài),BIOS根根據(jù)據(jù)SM卡的
10、類型,自動(dòng)完成系統(tǒng)升級(jí)工作的服務(wù)。卡的類型,自動(dòng)完成系統(tǒng)升級(jí)工作的服務(wù)。 程序自舉程序自舉 加電無按鍵加電無按鍵 BIOS程序在完成初始化程序在完成初始化 對(duì)對(duì)SM卡等進(jìn)行安全性檢測卡等進(jìn)行安全性檢測 將程序引導(dǎo)到操作系統(tǒng)和應(yīng)用程序,并將控制權(quán)移交操作系統(tǒng)將程序引導(dǎo)到操作系統(tǒng)和應(yīng)用程序,并將控制權(quán)移交操作系統(tǒng) USB功能功能 在進(jìn)入自檢主菜單后,自動(dòng)完成在進(jìn)入自檢主菜單后,自動(dòng)完成USB端口檢測,對(duì)端口檢測,對(duì)SM卡進(jìn)行讀寫卡進(jìn)行讀寫操作操作114.2 引導(dǎo)模式引導(dǎo)模式 研究引導(dǎo)模式的目的研究引導(dǎo)模式的目的 成本:減少高速存儲(chǔ)器的使用量成本:減少高速存儲(chǔ)器的使用量 安全安全 功耗功耗 非片內(nèi)引
11、導(dǎo)非片內(nèi)引導(dǎo) 把內(nèi)核從非揮發(fā)介質(zhì)中復(fù)制到把內(nèi)核從非揮發(fā)介質(zhì)中復(fù)制到RAM 從從RAM中運(yùn)行內(nèi)核中運(yùn)行內(nèi)核 片內(nèi)引導(dǎo)片內(nèi)引導(dǎo) 將數(shù)據(jù)段復(fù)制到將數(shù)據(jù)段復(fù)制到RAM 直接從非揮發(fā)介質(zhì)中運(yùn)行內(nèi)核直接從非揮發(fā)介質(zhì)中運(yùn)行內(nèi)核124.2.1 非片內(nèi)引導(dǎo)非片內(nèi)引導(dǎo) 無論怎樣,系統(tǒng)執(zhí)行的第一條指令一定在非揮發(fā)性存儲(chǔ)器無論怎樣,系統(tǒng)執(zhí)行的第一條指令一定在非揮發(fā)性存儲(chǔ)器中,因此即使是非片內(nèi)引導(dǎo)也只是引導(dǎo)程序的一部分須復(fù)中,因此即使是非片內(nèi)引導(dǎo)也只是引導(dǎo)程序的一部分須復(fù)制到制到RAM內(nèi)執(zhí)行。由此可見,非片內(nèi)引導(dǎo)包括兩個(gè)部分內(nèi)執(zhí)行。由此可見,非片內(nèi)引導(dǎo)包括兩個(gè)部分(階段):(階段):1.完成系統(tǒng)時(shí)鐘設(shè)置、中斷控制寄存器
12、設(shè)置等運(yùn)行前必備的基本設(shè)完成系統(tǒng)時(shí)鐘設(shè)置、中斷控制寄存器設(shè)置等運(yùn)行前必備的基本設(shè)置工作,完成內(nèi)存映射,初始化置工作,完成內(nèi)存映射,初始化MMU。 這部分在非揮發(fā)性存儲(chǔ)器內(nèi)運(yùn)行,采用匯編完成,由于再無其它這部分在非揮發(fā)性存儲(chǔ)器內(nèi)運(yùn)行,采用匯編完成,由于再無其它前期引導(dǎo),所以這段指令必存放在處理器的復(fù)位入口處前期引導(dǎo),所以這段指令必存放在處理器的復(fù)位入口處(0 x00000000/0 xFFFFFFFF)。)。2.裝載內(nèi)核。裝載內(nèi)核。 這部分須復(fù)制到這部分須復(fù)制到RAM中運(yùn)行,采用中運(yùn)行,采用C完成。完成。13 問題問題 占用內(nèi)存占用內(nèi)存 啟動(dòng)速度慢啟動(dòng)速度慢 不穩(wěn)定:程序運(yùn)行于內(nèi)存中,處于可修改
13、狀態(tài)不穩(wěn)定:程序運(yùn)行于內(nèi)存中,處于可修改狀態(tài)優(yōu)點(diǎn)優(yōu)點(diǎn) 可更新可更新 通用性通用性 靈活性靈活性144.2.2 片內(nèi)引導(dǎo)片內(nèi)引導(dǎo) 片內(nèi)引導(dǎo)省去了程序指令復(fù)制的過程,因此引導(dǎo)速度快。片內(nèi)引導(dǎo)省去了程序指令復(fù)制的過程,因此引導(dǎo)速度快。 兩種運(yùn)行方式兩種運(yùn)行方式 將固化在將固化在Flash中的內(nèi)核先中的內(nèi)核先映射映射到到RAM的某一段地址區(qū)間,的某一段地址區(qū)間,PC(程序計(jì)數(shù)器)指向起始地址(程序計(jì)數(shù)器)指向起始地址 直接在直接在Flash中運(yùn)行操作系統(tǒng)內(nèi)核中運(yùn)行操作系統(tǒng)內(nèi)核15 引導(dǎo)過程與非片內(nèi)引導(dǎo)相似,只是省去了第引導(dǎo)過程與非片內(nèi)引導(dǎo)相似,只是省去了第1階段中階段中復(fù)制第復(fù)制第2階段程序的內(nèi)容。階
14、段程序的內(nèi)容。 164.3 中斷、中斷、I/O、MMU初始化初始化 系統(tǒng)啟動(dòng)后即要執(zhí)行對(duì)系統(tǒng)軟硬件的初始化工作,準(zhǔn)備應(yīng)系統(tǒng)啟動(dòng)后即要執(zhí)行對(duì)系統(tǒng)軟硬件的初始化工作,準(zhǔn)備應(yīng)用任務(wù)的執(zhí)行。初始化的主要內(nèi)容包括中斷系統(tǒng)、擴(kuò)展端用任務(wù)的執(zhí)行。初始化的主要內(nèi)容包括中斷系統(tǒng)、擴(kuò)展端口(并行總線、口(并行總線、IIC、SPI等)、等)、MMU(內(nèi)存管理單元)、(內(nèi)存管理單元)、I/O設(shè)備(并行端口、設(shè)備(并行端口、A/D、D/A、計(jì)數(shù)器)、計(jì)數(shù)器) 關(guān)于這些初始化的程序,可以配置在操作系統(tǒng)內(nèi)核中,也關(guān)于這些初始化的程序,可以配置在操作系統(tǒng)內(nèi)核中,也可配置在引導(dǎo)程序中。由于它們與硬件直接相關(guān),因此這可配置在引導(dǎo)
15、程序中。由于它們與硬件直接相關(guān),因此這里將它們歸入引導(dǎo)層。里將它們歸入引導(dǎo)層。174.3.1 中斷初始化中斷初始化1.中斷中斷 由系統(tǒng)硬件或軟件發(fā)出一定的所謂中斷信號(hào),由系統(tǒng)硬件或軟件發(fā)出一定的所謂中斷信號(hào),CPU一旦一旦接受到中斷信號(hào),即暫停正在執(zhí)行的程序,轉(zhuǎn)而根據(jù)中斷來接受到中斷信號(hào),即暫停正在執(zhí)行的程序,轉(zhuǎn)而根據(jù)中斷來源等相應(yīng)寄存器內(nèi)的數(shù)據(jù)執(zhí)行相應(yīng)的稱為中斷服務(wù)的子程序,源等相應(yīng)寄存器內(nèi)的數(shù)據(jù)執(zhí)行相應(yīng)的稱為中斷服務(wù)的子程序,該子程序完成后轉(zhuǎn)回原來的位置繼續(xù)執(zhí)行被暫停的程序。該子程序完成后轉(zhuǎn)回原來的位置繼續(xù)執(zhí)行被暫停的程序。18 中斷來源:嵌入式系統(tǒng)的中斷可分為硬中斷硬中斷和軟中斷軟中斷,
16、前者由硬件產(chǎn)生,也稱為外部中斷外部中斷,后者由軟件指令產(chǎn)生。常見的外部中斷包括外部信號(hào)電平/沿觸發(fā)中斷、定時(shí)器溢出/捕捉、UART、IIC接口等。部分硬件中斷可屏蔽(關(guān)閉),也有不可屏蔽中斷,如硬復(fù)位。外部中斷具有優(yōu)先級(jí),高級(jí)中斷可暫停低級(jí)中斷的執(zhí)行。軟中斷是一種信號(hào)機(jī)制,由內(nèi)核機(jī)制的觸發(fā)事件引起的中斷,如:進(jìn)程運(yùn)行超時(shí),程序陷阱。CPU為每個(gè)中斷分配編號(hào),即中斷號(hào)中斷號(hào),每個(gè)中斷號(hào)對(duì)應(yīng)了一個(gè)特定的地址位置,該地址存放了服務(wù)程序的入口地址,稱為中斷向量中斷向量。19 中斷過程:中斷過程: 中斷信號(hào)給出中斷信號(hào)給出 完成一條機(jī)器指令時(shí)完成一條機(jī)器指令時(shí)CPU響應(yīng)中斷響應(yīng)中斷 現(xiàn)場保護(hù):現(xiàn)場保護(hù):
17、PC壓棧、寄存器壓棧壓棧、寄存器壓棧 進(jìn)入中斷向量進(jìn)入中斷向量 執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序 恢復(fù)現(xiàn)場:寄存器出棧、恢復(fù)現(xiàn)場:寄存器出棧、PC出棧出棧 繼續(xù)執(zhí)行原進(jìn)程繼續(xù)執(zhí)行原進(jìn)程20 2.中斷初始化中斷初始化(1)設(shè)置中斷向量表)設(shè)置中斷向量表 中斷向量表是存儲(chǔ)空間中的一個(gè)特定地址區(qū)域,該地址中斷向量表是存儲(chǔ)空間中的一個(gè)特定地址區(qū)域,該地址分別存放各中斷服務(wù)程序的入口地址。分別存放各中斷服務(wù)程序的入口地址。 PC機(jī)內(nèi)存空間前機(jī)內(nèi)存空間前1024字節(jié)保存著字節(jié)保存著256個(gè)中斷向量。每個(gè)個(gè)中斷向量。每個(gè)向量向量4字節(jié),分別保存了服務(wù)程序的入口地址偏移量和入口字節(jié),分別保存了服務(wù)程序的入口地
18、址偏移量和入口段地址。段地址。 ARM的中斷向量表放置在從的中斷向量表放置在從0開始、連續(xù)開始、連續(xù)84字節(jié)的空字節(jié)的空間內(nèi),表內(nèi)包含一系列指令跳轉(zhuǎn)到中斷服務(wù)程序。間內(nèi),表內(nèi)包含一系列指令跳轉(zhuǎn)到中斷服務(wù)程序。21 (2)中斷初始化)中斷初始化 中斷初始化的基本任務(wù)就是向所有向量地址中寫入合適的中斷初始化的基本任務(wù)就是向所有向量地址中寫入合適的跳轉(zhuǎn)指令(程序入口),以在中斷時(shí)調(diào)用相應(yīng)的服務(wù)程序。跳轉(zhuǎn)指令(程序入口),以在中斷時(shí)調(diào)用相應(yīng)的服務(wù)程序。 PC機(jī)中斷向量地址處于機(jī)中斷向量地址處于RAM空間,啟動(dòng)時(shí)為空,運(yùn)行應(yīng)空間,啟動(dòng)時(shí)為空,運(yùn)行應(yīng)用之前須由引導(dǎo)程序動(dòng)態(tài)為各中斷配置適當(dāng)?shù)闹袛喾?wù)程序用之
19、前須由引導(dǎo)程序動(dòng)態(tài)為各中斷配置適當(dāng)?shù)闹袛喾?wù)程序入口。入口。 嵌入式系統(tǒng)的中斷向量位置通常在嵌入式系統(tǒng)的中斷向量位置通常在ROM空間,空間,在程序設(shè)計(jì)載入時(shí)已經(jīng)確定,不需要?jiǎng)討B(tài)設(shè)置,靜在程序設(shè)計(jì)載入時(shí)已經(jīng)確定,不需要?jiǎng)討B(tài)設(shè)置,靜態(tài)設(shè)置須修改態(tài)設(shè)置須修改C代碼。代碼。 多個(gè)中斷源使用一個(gè)向量時(shí)須多個(gè)中斷源使用一個(gè)向量時(shí)須在代碼中增加分向量的聲明,將在代碼中增加分向量的聲明,將要使用中斷的各設(shè)備的服務(wù)程序要使用中斷的各設(shè)備的服務(wù)程序與相應(yīng)的中斷分向量聯(lián)系起來。與相應(yīng)的中斷分向量聯(lián)系起來。每個(gè)向量對(duì)應(yīng)了一個(gè)列表,保存每個(gè)向量對(duì)應(yīng)了一個(gè)列表,保存與之相關(guān)的所有硬件設(shè)備的信息與之相關(guān)的所有硬件設(shè)備的信息
20、(中斷請(qǐng)求隊(duì)列)。為保證系統(tǒng)(中斷請(qǐng)求隊(duì)列)。為保證系統(tǒng)的靈活性,中斷請(qǐng)求隊(duì)列需引導(dǎo)的靈活性,中斷請(qǐng)求隊(duì)列需引導(dǎo)程序或操作系統(tǒng)內(nèi)核動(dòng)態(tài)完成。程序或操作系統(tǒng)內(nèi)核動(dòng)態(tài)完成。224.3.2 I/O初始化初始化1.I/OI/O指系統(tǒng)與外界環(huán)境進(jìn)行信息交換的各種接口,包括并指系統(tǒng)與外界環(huán)境進(jìn)行信息交換的各種接口,包括并行數(shù)字端口、行數(shù)字端口、A/D、D/A、頻率計(jì)數(shù)等。、頻率計(jì)數(shù)等。與與PC機(jī)不同,嵌入式系統(tǒng)的外圍設(shè)備與處理器的連接方機(jī)不同,嵌入式系統(tǒng)的外圍設(shè)備與處理器的連接方式多種多樣,這使得系統(tǒng)與外圍設(shè)備之間也需要一定接式多種多樣,這使得系統(tǒng)與外圍設(shè)備之間也需要一定接口,如口,如IIC、SPI等。等
21、。 可見可見I/O包括:輸入輸出設(shè)備、設(shè)備控制器、輸入輸出操包括:輸入輸出設(shè)備、設(shè)備控制器、輸入輸出操作有關(guān)的軟硬件作有關(guān)的軟硬件I/O系統(tǒng)的主要工作任務(wù)系統(tǒng)的主要工作任務(wù) 信息編址信息編址 信息通路信息通路 信息傳送信息傳送 格式轉(zhuǎn)換格式轉(zhuǎn)換 狀態(tài)控制信息狀態(tài)控制信息23 I/O系統(tǒng)的分類系統(tǒng)的分類 按傳輸速率分類按傳輸速率分類 低速設(shè)備:數(shù)百字節(jié)低速設(shè)備:數(shù)百字節(jié)/秒秒 鍵盤、鼠標(biāo)鍵盤、鼠標(biāo) 中速設(shè)備:數(shù)十中速設(shè)備:數(shù)十K字節(jié)字節(jié)/秒秒 打印機(jī)、激光打印機(jī)打印機(jī)、激光打印機(jī) 高速設(shè)備:數(shù)十兆字節(jié)高速設(shè)備:數(shù)十兆字節(jié)/秒秒 磁帶機(jī)、磁盤機(jī)、光盤機(jī)磁帶機(jī)、磁盤機(jī)、光盤機(jī) 超高速設(shè)備:數(shù)百兆字節(jié)
22、超高速設(shè)備:數(shù)百兆字節(jié)/秒秒 萬兆網(wǎng)萬兆網(wǎng) 按信息交換的單位分類按信息交換的單位分類 塊設(shè)備:信息的存取以數(shù)據(jù)塊為單位塊設(shè)備:信息的存取以數(shù)據(jù)塊為單位 磁盤:磁盤:512B4KB 字符設(shè)備:以字符為基本單位字符設(shè)備:以字符為基本單位 顯示器、鍵盤、打印機(jī)顯示器、鍵盤、打印機(jī)24 設(shè)備控制器設(shè)備控制器 :CPU與與I/O設(shè)備間的接口設(shè)備間的接口 控制控制I/O設(shè)備設(shè)備可編址可編址I/O通道(通道(I/O控制器)控制器)優(yōu)點(diǎn)優(yōu)點(diǎn) 承擔(dān)繁雜的承擔(dān)繁雜的I/O任務(wù)任務(wù) CPU減輕負(fù)擔(dān)減輕負(fù)擔(dān)缺點(diǎn)缺點(diǎn) 價(jià)格昂貴價(jià)格昂貴 I/O瓶頸瓶頸I/O控制的方式控制的方式程序程序I/O CPU等待等待I/O設(shè)備完成
23、數(shù)據(jù)傳送設(shè)備完成數(shù)據(jù)傳送中斷中斷I/O 當(dāng)傳輸完一個(gè)數(shù)據(jù)之后,當(dāng)傳輸完一個(gè)數(shù)據(jù)之后,CPU做中斷處理做中斷處理 適合于字符設(shè)備適合于字符設(shè)備DMA 適合于數(shù)據(jù)轉(zhuǎn)換速率要求高的系統(tǒng)適合于數(shù)據(jù)轉(zhuǎn)換速率要求高的系統(tǒng) 不需要不需要CPU干預(yù)干預(yù) 不需要中間媒介不需要中間媒介25 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序 接收上層軟件發(fā)來的抽象接收上層軟件發(fā)來的抽象要求要求 發(fā)送具體要求給設(shè)備控制發(fā)送具體要求給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行器,啟動(dòng)設(shè)備去執(zhí)行 將設(shè)備控制器發(fā)來的信號(hào)將設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件傳送給上層軟件 設(shè)備中斷程序,設(shè)備中斷程序,I/O完成后完成后的收尾工作的收尾工作26 2.I/O初始化初始
24、化定義一系列數(shù)據(jù)結(jié)構(gòu)定義一系列數(shù)據(jù)結(jié)構(gòu) 系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表SDT 設(shè)備控制表設(shè)備控制表 設(shè)備類型,設(shè)備標(biāo)識(shí)符,設(shè)備狀態(tài)(等待設(shè)備類型,設(shè)備標(biāo)識(shí)符,設(shè)備狀態(tài)(等待/不等待),指不等待),指向控制器表的指針,設(shè)備隊(duì)列的隊(duì)首指針,重復(fù)執(zhí)行次數(shù)向控制器表的指針,設(shè)備隊(duì)列的隊(duì)首指針,重復(fù)執(zhí)行次數(shù)或時(shí)間。或時(shí)間。 控制器表控制器表COCT 控制器標(biāo)識(shí)符,控制器狀態(tài),與控制器連接的通道表指控制器標(biāo)識(shí)符,控制器狀態(tài),與控制器連接的通道表指針,控制器隊(duì)列的隊(duì)首指針,控制器隊(duì)列的隊(duì)尾指針。針,控制器隊(duì)列的隊(duì)首指針,控制器隊(duì)列的隊(duì)尾指針。 通道表通道表 通道標(biāo)識(shí)符、通道狀態(tài)、與通道連接的控制器表首地址、通道標(biāo)識(shí)符
25、、通道狀態(tài)、與通道連接的控制器表首地址、通道隊(duì)列首地址、通道隊(duì)列尾地址通道隊(duì)列首地址、通道隊(duì)列尾地址27 初始化過程初始化過程 I/O端口的檢查和登記端口的檢查和登記 DMA和和IRQ的初始化檢查和登記的初始化檢查和登記 緩沖區(qū)、設(shè)備請(qǐng)求隊(duì)列的初始化緩沖區(qū)、設(shè)備請(qǐng)求隊(duì)列的初始化 設(shè)備控制寄存器的檢查和初始化設(shè)備控制寄存器的檢查和初始化 對(duì)設(shè)備自身相關(guān)的數(shù)據(jù)結(jié)構(gòu)的初始化,填寫一些設(shè)備特定對(duì)設(shè)備自身相關(guān)的數(shù)據(jù)結(jié)構(gòu)的初始化,填寫一些設(shè)備特定的數(shù)據(jù)的數(shù)據(jù)284.3.3 MMU初始化初始化1.MMU及其功能及其功能 MMU(Memory Management Unit)內(nèi)存管理單元)內(nèi)存管理單元 小型簡
26、單的嵌入式系統(tǒng)中內(nèi)存管理任務(wù)通常很簡單,不需單獨(dú)設(shè)小型簡單的嵌入式系統(tǒng)中內(nèi)存管理任務(wù)通常很簡單,不需單獨(dú)設(shè)計(jì)計(jì)MMU。只有復(fù)雜的系統(tǒng),尤其是存在大量動(dòng)態(tài)任務(wù)的系統(tǒng),要。只有復(fù)雜的系統(tǒng),尤其是存在大量動(dòng)態(tài)任務(wù)的系統(tǒng),要求應(yīng)用軟件與系統(tǒng)物理存儲(chǔ)器之間完全隔離,這時(shí)要求有一個(gè)專求應(yīng)用軟件與系統(tǒng)物理存儲(chǔ)器之間完全隔離,這時(shí)要求有一個(gè)專門的系統(tǒng)用于實(shí)現(xiàn)解決邏輯地址與物理地址之間的轉(zhuǎn)換。門的系統(tǒng)用于實(shí)現(xiàn)解決邏輯地址與物理地址之間的轉(zhuǎn)換。 MMU即這樣一種實(shí)現(xiàn)地址空間管理的組件,它可以是硬件單元,即這樣一種實(shí)現(xiàn)地址空間管理的組件,它可以是硬件單元,也可能是一個(gè)軟件模塊(引導(dǎo)層驅(qū)動(dòng)軟件的一部分)。也可能是一個(gè)
27、軟件模塊(引導(dǎo)層驅(qū)動(dòng)軟件的一部分)。 功能功能 支持存儲(chǔ)空間動(dòng)態(tài)分配,提供存儲(chǔ)空間保護(hù)。支持存儲(chǔ)空間動(dòng)態(tài)分配,提供存儲(chǔ)空間保護(hù)。 MMU關(guān)掉時(shí),虛地址直接輸出到物理地址總線。關(guān)掉時(shí),虛地址直接輸出到物理地址總線。 支持虛擬存儲(chǔ)器,將虛地址轉(zhuǎn)換成物理地址。支持虛擬存儲(chǔ)器,將虛地址轉(zhuǎn)換成物理地址。 系統(tǒng)的某些地址段是不允許被訪問的,否則會(huì)產(chǎn)生不可預(yù)料的后系統(tǒng)的某些地址段是不允許被訪問的,否則會(huì)產(chǎn)生不可預(yù)料的后果果,為了避免這類錯(cuò)誤為了避免這類錯(cuò)誤,可以通過可以通過MMU匹配表的設(shè)置將這些地址段匹配表的設(shè)置將這些地址段設(shè)為用戶不可存取類型。設(shè)為用戶不可存取類型。29 MMU支持基于段(支持基于段(S
28、ection)或頁()或頁(Page)的存儲(chǔ)器訪問。)的存儲(chǔ)器訪問。 段訪問支持段訪問支持1MB的存儲(chǔ)模塊的存儲(chǔ)模塊 頁支持如下各種大小不同的頁:頁支持如下各種大小不同的頁: 大頁(大頁(Large page):由):由64KB存儲(chǔ)塊組成。大頁支持存儲(chǔ)塊組成。大頁支持進(jìn)行大存儲(chǔ)區(qū)域的映射,附加的訪問控制機(jī)制被擴(kuò)展成進(jìn)行大存儲(chǔ)區(qū)域的映射,附加的訪問控制機(jī)制被擴(kuò)展成16KB的子頁。的子頁。 小頁(小頁(Small page):由):由4KB存儲(chǔ)塊組成。附加的訪存儲(chǔ)塊組成。附加的訪問控制機(jī)制被擴(kuò)展成問控制機(jī)制被擴(kuò)展成1KB的子頁。的子頁。 微頁(微頁(Tiny page):由):由1KB存儲(chǔ)塊組成。
29、存儲(chǔ)塊組成。 MMU對(duì)存儲(chǔ)器地址的訪問分為兩級(jí):一級(jí)表是段地址的對(duì)存儲(chǔ)器地址的訪問分為兩級(jí):一級(jí)表是段地址的轉(zhuǎn)換表,二級(jí)表是大頁、小頁和微頁的地址轉(zhuǎn)換。轉(zhuǎn)換表,二級(jí)表是大頁、小頁和微頁的地址轉(zhuǎn)換。30 2.MMU的初始化的初始化 關(guān)閉關(guān)閉MMU MMU寄存器的初始化,建立其內(nèi)部的各種索引表格,如寄存器的初始化,建立其內(nèi)部的各種索引表格,如TLB等等 打開打開MMU314.4 驅(qū)動(dòng)部分(驅(qū)動(dòng)部分(BSP)的設(shè)計(jì))的設(shè)計(jì)4.4.1 BSP的設(shè)計(jì)開發(fā)的設(shè)計(jì)開發(fā) BSP與上層軟件直接相關(guān),因此與具體的操作系統(tǒng)關(guān)系緊與上層軟件直接相關(guān),因此與具體的操作系統(tǒng)關(guān)系緊密,不同的操作系統(tǒng)密,不同的操作系統(tǒng)BSP
30、的定義方式也不同。的定義方式也不同。321.VxWorks BSP系統(tǒng)引導(dǎo)部分:硬件初始化、處理器設(shè)置、內(nèi)存初始化系統(tǒng)引導(dǎo)部分:硬件初始化、處理器設(shè)置、內(nèi)存初始化設(shè)備驅(qū)動(dòng)部分:驅(qū)動(dòng)字符型設(shè)備、塊存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備設(shè)備驅(qū)動(dòng)部分:驅(qū)動(dòng)字符型設(shè)備、塊存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備33 系統(tǒng)引導(dǎo)部分系統(tǒng)引導(dǎo)部分 處理器工作狀態(tài)設(shè)定處理器工作狀態(tài)設(shè)定 配置寄存器配置寄存器 設(shè)定處理器的工作方式,如是否打開設(shè)定處理器的工作方式,如是否打開Cache 設(shè)置堆棧區(qū)的指針、處理器的運(yùn)行頻率等設(shè)置堆棧區(qū)的指針、處理器的運(yùn)行頻率等 內(nèi)存的初始化和配置內(nèi)存的初始化和配置 根據(jù)硬件設(shè)計(jì)配置內(nèi)存的大小根據(jù)硬件設(shè)計(jì)配置內(nèi)存的大小 不同
31、內(nèi)存空間起始的地址范圍不同內(nèi)存空間起始的地址范圍 內(nèi)存空間的劃分等內(nèi)存空間的劃分等34 設(shè)備驅(qū)動(dòng)程序部分設(shè)備驅(qū)動(dòng)程序部分 字符型設(shè)備驅(qū)動(dòng):如串行通信接口字符型設(shè)備驅(qū)動(dòng):如串行通信接口 塊存儲(chǔ)設(shè)備驅(qū)動(dòng):塊存儲(chǔ)設(shè)備驅(qū)動(dòng): 塊存儲(chǔ)設(shè)備:結(jié)構(gòu)化管理的,數(shù)據(jù)以塊的形式存儲(chǔ)和訪問的設(shè)備塊存儲(chǔ)設(shè)備:結(jié)構(gòu)化管理的,數(shù)據(jù)以塊的形式存儲(chǔ)和訪問的設(shè)備如硬盤、如硬盤、FLASH設(shè)備等。設(shè)備等。 塊設(shè)備的驅(qū)動(dòng)程序:提供讀塊,寫塊,復(fù)位設(shè)備、執(zhí)行塊設(shè)備的驅(qū)動(dòng)程序:提供讀塊,寫塊,復(fù)位設(shè)備、執(zhí)行I/O控制和控制和檢查設(shè)備狀態(tài)的例程檢查設(shè)備狀態(tài)的例程 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng):網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng): 網(wǎng)絡(luò)設(shè)備主要是指掛接在網(wǎng)絡(luò)設(shè)備主要是指掛接在
32、VxWorks的網(wǎng)絡(luò)層下的設(shè)備,如以太網(wǎng)的網(wǎng)絡(luò)層下的設(shè)備,如以太網(wǎng)的網(wǎng)絡(luò)驅(qū)動(dòng)設(shè)備等。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)為的網(wǎng)絡(luò)驅(qū)動(dòng)設(shè)備等。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)為VxWorks的網(wǎng)絡(luò)層提供服務(wù)。的網(wǎng)絡(luò)層提供服務(wù)。352.Linux BSP Linux引導(dǎo)加載程序的系統(tǒng)引導(dǎo)工作;引導(dǎo)加載程序的系統(tǒng)引導(dǎo)工作; Linux引導(dǎo)加載程序的驅(qū)動(dòng)程序;引導(dǎo)加載程序的驅(qū)動(dòng)程序; Linux操作系統(tǒng)的驅(qū)動(dòng)程序;操作系統(tǒng)的驅(qū)動(dòng)程序; 前兩者是在前兩者是在Linux尚未執(zhí)行時(shí)需要的,由于尚未執(zhí)行時(shí)需要的,由于Linux內(nèi)核與引內(nèi)核與引導(dǎo)不在一起,所以,引導(dǎo)需要獨(dú)自的硬件驅(qū)動(dòng)。通常此時(shí)導(dǎo)不在一起,所以,引導(dǎo)需要獨(dú)自的硬件驅(qū)動(dòng)。通常此時(shí)所需的驅(qū)動(dòng)包括串口、網(wǎng)口以及顯示操作等。所需的驅(qū)動(dòng)包括串口、網(wǎng)口以及顯示操作等。36 系統(tǒng)引導(dǎo)部分系統(tǒng)引導(dǎo)部分 處理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物業(yè)租賃合同格式范本
- 2024年江蘇省常州市中考數(shù)學(xué)真題卷及答案解析
- 個(gè)人外匯交易策略:市場分析
- 林業(yè)保護(hù)基礎(chǔ)測繪計(jì)劃管理辦法
- 洗衣店鍋爐維修服務(wù)合同
- 賓館屋頂防水施工協(xié)議
- 國際教師簽證管理辦法
- 醫(yī)療資產(chǎn)捐贈(zèng)制度手冊(cè)
- 公路建設(shè)挖機(jī)租賃合同協(xié)議
- 水利基本建設(shè)資金技術(shù)創(chuàng)新
- 2024年農(nóng)村公寓房屋買賣協(xié)議書參考樣本3篇
- 2024年山東省政府采購專家入庫考試真題(共五套 第一套)
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 初中濟(jì)南版生物實(shí)驗(yàn)報(bào)告單
- 北京郵電大學(xué)《自然語言處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年廣西安全員A證考試題及答案
- 艾滋病、乙肝、梅毒健康宣教
- 《國有企業(yè)管理人員處分條例》學(xué)習(xí)解讀課件
- 中國竹編藝術(shù)智慧樹知到期末考試答案章節(jié)答案2024年浙江廣廈建設(shè)職業(yè)技術(shù)大學(xué)
- 國家糧食和物資儲(chǔ)備局招聘考試試題及答案
- 國開電大-工程數(shù)學(xué)(本)-工程數(shù)學(xué)第4次作業(yè)-形考答案
評(píng)論
0/150
提交評(píng)論