




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)嵌入式Linux通過閱讀文學(xué)作品,我們能提高文學(xué)鑒賞水平,培養(yǎng)文學(xué)情趣;嵌入式系統(tǒng)嵌入式Linux通過閱讀文學(xué)作品,我們能提高文學(xué)鑒1一、嵌入式Linux的定義嵌入式Linux(EmbeddedLinux)是指對(duì)Linux經(jīng)過小型化裁剪后,能夠固化在容量只有幾K字節(jié)或幾M字節(jié)的存儲(chǔ)器芯片或單片系統(tǒng)中,應(yīng)用于特定嵌入式場(chǎng)合的專用Linux操作系統(tǒng)一、嵌入式Linux的定義嵌入式Linux(Embedded2嵌入式Linux的優(yōu)勢(shì)Linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開放強(qiáng)大的網(wǎng)絡(luò)支持功能Linux具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越嵌入式系統(tǒng)開發(fā)中仿真工具的障礙Linux具有廣泛的硬件支持特性嵌入式Linux的優(yōu)勢(shì)Linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開3嵌入式Linux面臨的挑戰(zhàn)1、擴(kuò)充Linux的實(shí)時(shí)系統(tǒng)2、改變Linux內(nèi)核的體系結(jié)構(gòu)3、完善Linux的集成開發(fā)環(huán)境嵌入式Linux面臨的挑戰(zhàn)1、擴(kuò)充Linux的實(shí)時(shí)系統(tǒng)41、擴(kuò)充Linux的實(shí)時(shí)系統(tǒng)內(nèi)核不支持事件優(yōu)先級(jí)和搶占實(shí)時(shí)特性對(duì)Linux實(shí)時(shí)性的擴(kuò)展可以從兩方面進(jìn)行:向外擴(kuò)展(讓實(shí)時(shí)系統(tǒng)支持的范圍更廣,支持的設(shè)備更多)向上擴(kuò)展(擴(kuò)充Linux內(nèi)核,從功能上擴(kuò)充Linux的實(shí)時(shí)處理和控制系統(tǒng))1、擴(kuò)充Linux的實(shí)時(shí)系統(tǒng)內(nèi)核不支持事件優(yōu)先級(jí)和搶占實(shí)時(shí)特5RT-Linux的做法Linux本身的任務(wù)以及Linux內(nèi)核本身作為一個(gè)優(yōu)先級(jí)最低的任務(wù)實(shí)時(shí)任務(wù)作為優(yōu)先級(jí)最高的任務(wù)實(shí)時(shí)任務(wù)以Linux的內(nèi)核模塊(LoadableKernelModule,LKM)的形式存在RT-Linux的做法62、改變Linux內(nèi)核的體系結(jié)構(gòu)Monolithic內(nèi)核體系MicroKernel體系執(zhí)行效率內(nèi)核的體積升級(jí)、維護(hù)和移植2、改變Linux內(nèi)核的體系結(jié)構(gòu)Monolithic內(nèi)核體系7微內(nèi)核技術(shù)缺點(diǎn):操作系統(tǒng)的服務(wù)模塊在獨(dú)立的地址空間運(yùn)行,使得進(jìn)程間通信和上下文切換的系統(tǒng)開銷大大增加,降低了系統(tǒng)效率。微內(nèi)核技術(shù)缺點(diǎn):操作系統(tǒng)的服務(wù)模塊在獨(dú)立的地址空間運(yùn)行,使得83、完善Linux的集成開發(fā)環(huán)境Linux在基于圖形界面的特定系統(tǒng)定制平臺(tái)的研究上,與Windows操作系統(tǒng)相比還存在差距3、完善Linux的集成開發(fā)環(huán)境Linux在基于圖形界面的特9POSIX實(shí)時(shí)擴(kuò)展POSIX(PortableOperatingSystemInterface)是為標(biāo)準(zhǔn)化類UNIX操作系統(tǒng)所必須具有的特征和接口而制定,其思想就是為了增強(qiáng)為類UNIX操作系統(tǒng)編寫的軟件的可移植性POSIX實(shí)時(shí)擴(kuò)展POSIX(PortableOperat10二、嵌入式linux開發(fā)最小的嵌入式Linux系統(tǒng)僅需要三個(gè)基本元素:引導(dǎo)實(shí)用程序Linux微內(nèi)核,由內(nèi)存管理、進(jìn)程管理和定時(shí)服務(wù)構(gòu)成初始化過程
硬件驅(qū)動(dòng)程序一個(gè)或多個(gè)應(yīng)用進(jìn)程,以提供所需功能二、嵌入式linux開發(fā)最小的嵌入式Linux系統(tǒng)僅需要11面向嵌入式Linux系統(tǒng)的圖形用戶界面MicroWindows/NanoX開放源碼無(wú)任何硬件加速能力圖形引擎中存在許多低效算法代碼質(zhì)量較差OpenGUI可移植性稍差Qt/Embedded
低的程序效率、大的資源消耗MiniGUI面向嵌入式Linux系統(tǒng)的圖形用戶界面MicroWindo12嵌入式Linux開發(fā)了解硬件針對(duì)所用CPU的編譯器/匯編器/連接器,相應(yīng)的庫(kù)工具,目標(biāo)文件分析/管理工具,符號(hào)查看器編程器,下載工具和查錯(cuò)器安排內(nèi)存地址編寫啟動(dòng)代碼和機(jī)器相關(guān)代碼:硬件初始化,裝載內(nèi)核及安裝根文件系統(tǒng)以及開始內(nèi)核執(zhí)行驅(qū)動(dòng)程序嵌入式Linux開發(fā)了解硬件13嵌入式Linux的一般開發(fā)步驟:精簡(jiǎn)內(nèi)核系統(tǒng)啟動(dòng)驅(qū)動(dòng)程序開發(fā)界面開發(fā):將X-Window換成MicroWindows
嵌入式Linux的一般開發(fā)步驟:精簡(jiǎn)內(nèi)核14精簡(jiǎn)內(nèi)核
構(gòu)造內(nèi)核的常用命令包括:makeconfig、dep、clean、mrproper、zImage、bzImage、modules、modules_install。使用makeconfig去掉多余功能。
./Makefile
./arch/i386/kernel/
Makefile
精簡(jiǎn)內(nèi)核構(gòu)造內(nèi)核的常用命令包括:makeconfig、15系統(tǒng)啟動(dòng)
系統(tǒng)啟動(dòng)的相關(guān)文件如下:
./arch/$ARCH/boot/
bootsect.s
./arch/$ARCH/boot/setup.s
./init/main.c
bootsect.S及setup.S
系統(tǒng)啟動(dòng)系統(tǒng)啟動(dòng)的相關(guān)文件如下:
./arch/$16驅(qū)動(dòng)程序在Linux系統(tǒng)里,設(shè)備驅(qū)動(dòng)程序提供一組入口點(diǎn),它們由一個(gè)結(jié)構(gòu)在設(shè)備驅(qū)動(dòng)程序初始化的時(shí)候向系統(tǒng)進(jìn)行登記,以便系統(tǒng)在適當(dāng)?shù)臅r(shí)候調(diào)用。Linux系統(tǒng)里,通過調(diào)用register_chrdev向系統(tǒng)注冊(cè)字符型設(shè)備驅(qū)動(dòng)程序。
驅(qū)動(dòng)程序在Linux系統(tǒng)里,設(shè)備驅(qū)動(dòng)程序提供一組入口點(diǎn),它們17添加驅(qū)動(dòng)程序1.直接修改系統(tǒng)核心的源代碼,把設(shè)備驅(qū)動(dòng)程序加進(jìn)核心里2.把設(shè)備驅(qū)動(dòng)程序作為可加載的模塊,由系統(tǒng)管理員動(dòng)態(tài)地加載它,使之成為核心的一部分。添加驅(qū)動(dòng)程序1.直接修改系統(tǒng)核心的源代碼,把設(shè)備驅(qū)動(dòng)程序加進(jìn)18驅(qū)動(dòng)程序模塊Linux中,模塊可以用C語(yǔ)言編寫,用gcc編譯成目標(biāo)文件(不進(jìn)行鏈接,作為*.o文件存在)。為此需要在gcc命令行里加上-c的參數(shù)。在成功地向系統(tǒng)注冊(cè)了設(shè)備驅(qū)動(dòng)程序后(調(diào)用register_chrdev),就可以用mknod命令來(lái)把設(shè)備映射為一個(gè)特別文件。其它程序需要使用這個(gè)設(shè)備的時(shí)候,對(duì)此特別文件進(jìn)行操作。
驅(qū)動(dòng)程序模塊Linux中,模塊可以用C語(yǔ)言編寫,用gcc編譯19三、linux啟動(dòng)流程1加電或復(fù)位2BIOS的啟動(dòng)3BootLoader4操作系統(tǒng)初始化三、linux啟動(dòng)流程1加電或復(fù)位201加電或復(fù)位冷啟動(dòng)過程開始,中央處理器進(jìn)入復(fù)位狀態(tài),將內(nèi)存中的所有數(shù)據(jù)清零,對(duì)內(nèi)存進(jìn)行校驗(yàn),如果沒錯(cuò),CS寄存器將置入FFFF,IP寄存器置入0000,這個(gè)CS:IP組合指向的是BIOS的入口。系統(tǒng)就是這樣進(jìn)入BIOS啟動(dòng)過程的。1加電或復(fù)位冷啟動(dòng)過程開始,中央處理器進(jìn)入復(fù)位狀態(tài),將內(nèi)存212BIOS啟動(dòng)上電自檢POST(PowerOnSelfTest)對(duì)系統(tǒng)內(nèi)的硬件設(shè)備進(jìn)行監(jiān)測(cè)和連接最后,BIOS將從軟盤或硬盤上讀入BootLoader.如果從硬盤啟動(dòng),BIOS將讀入該盤的零柱面零磁道1扇區(qū)(MBR),這個(gè)扇區(qū)上就放著BootLoader.2BIOS啟動(dòng)上電自檢POST(PowerOnSelf222BIOS啟動(dòng)除了啟動(dòng)程序,BIOS還提供了一組中斷以便于對(duì)硬件設(shè)備的訪問。我們知道,當(dāng)鍵盤上的某一鍵被按下,CPU就會(huì)產(chǎn)生一個(gè)中斷并把這個(gè)鍵的信息讀入。在操作系統(tǒng)沒有被裝入以前(Bootsect.S還沒有被讀入),中斷的響應(yīng)程序由BIOS提供。2BIOS啟動(dòng)除了啟動(dòng)程序,BIOS還提供了一組中斷以便于233BootLoaderBootLoader是一段匯編代碼,存放在MBR中,它的主要作用就是將系統(tǒng)啟動(dòng)代碼讀入內(nèi)存。3BootLoaderBootLoader是一段匯編代243BootLoader因?yàn)樵趩?dòng)過程中,BIOS會(huì)把BootLoader讀入內(nèi)存,并把控制權(quán)交給它。MBR(硬盤啟動(dòng))內(nèi)的代碼就是BootLoader或者它的一部分,為了說明Bootloader的實(shí)現(xiàn),先解釋磁盤結(jié)構(gòu)。3BootLoader因?yàn)樵趩?dòng)過程中,BIOS會(huì)把Bo253BootLoader一個(gè)硬盤在DOS文件系統(tǒng)下可被分為四個(gè)基本分區(qū),可以把一個(gè)基本分區(qū)定義為一個(gè)擴(kuò)展分區(qū),然后再把這個(gè)基本分區(qū)分為一個(gè)或多個(gè)邏輯分區(qū)。整個(gè)硬盤的分區(qū)表存放在硬盤的第一個(gè)扇區(qū)(MBR),每個(gè)擴(kuò)展分區(qū)也對(duì)應(yīng)一個(gè)分區(qū)表,它存放在該擴(kuò)展分區(qū)對(duì)應(yīng)的第一個(gè)扇區(qū)里。除主引導(dǎo)扇區(qū)外,每個(gè)基本分區(qū)和擴(kuò)展分區(qū)也有自己的引導(dǎo)扇區(qū),結(jié)構(gòu)與MBR相同,但邏輯分區(qū)的引導(dǎo)扇區(qū)不能用于啟動(dòng)。3BootLoader一個(gè)硬盤在DOS文件系統(tǒng)下可被分為263BootLoader如果是硬盤啟動(dòng),BootLoader將查找主分區(qū)表中標(biāo)記為活動(dòng)分區(qū)的表項(xiàng),把該表項(xiàng)對(duì)應(yīng)的分區(qū)的引導(dǎo)扇區(qū)讀入,然后將控制權(quán)交給該扇區(qū)內(nèi)的引導(dǎo)程序。3BootLoader如果是硬盤啟動(dòng),BootLoad273BootLoader 如果計(jì)算機(jī)上裝有不只一個(gè)操作系統(tǒng),僅僅MS-DOS的BootLoader無(wú)法完成這種工作,需要一個(gè)可以多重起動(dòng)的工具,下面介紹Linux下最常用的LILO.3BootLoader 如果計(jì)算機(jī)上裝有不只一個(gè)操作系統(tǒng)283BootLoaderLILO實(shí)際上是一個(gè)在Linux環(huán)境下編寫的BootLoader程序,主要功能是引導(dǎo)Linux操作系統(tǒng)的啟動(dòng)。LILO的功能實(shí)際上是有幾個(gè)程序共同實(shí)現(xiàn)的,它們是:(1)MapInstaller這是LILO用于管理啟動(dòng)文件的程序。它將bootloader寫入引導(dǎo)分區(qū),創(chuàng)建紀(jì)錄文件以映射內(nèi)核的啟動(dòng)。(2)Thebootloader它負(fù)責(zé)把Linux內(nèi)核或其他操作系統(tǒng)的引導(dǎo)分區(qū)讀入內(nèi)存。還提供命令行接口,讓用戶選擇從哪個(gè)操作系統(tǒng)啟動(dòng)和加入啟動(dòng)參數(shù)。(3)其他文件:主要包括用于存放MapInstaller記錄的map文件和存放LILO配置信息的配置文件。3BootLoaderLILO實(shí)際上是一個(gè)在Linux環(huán)294進(jìn)入操作系統(tǒng)BootLoader做了這么多工作,一言以蔽之,只是把操作系統(tǒng)的代碼調(diào)入內(nèi)存,所以當(dāng)它執(zhí)行完后,自然該把控制權(quán)交給操作系統(tǒng),由操作系統(tǒng)的啟動(dòng)程序來(lái)完成剩下的工作。4進(jìn)入操作系統(tǒng)BootLoader做了這么多工作,一言304進(jìn)入操作系統(tǒng)把控制權(quán)交給Setup.S這段程序進(jìn)入保護(hù)模式,同時(shí)把控制權(quán)交給Head.SHead.S調(diào)用/init/main.C中的start_kernel函數(shù),啟動(dòng)程序從start_kernel()函數(shù)繼續(xù)執(zhí)行4進(jìn)入操作系統(tǒng)把控制權(quán)交給Setup.S這段程序314進(jìn)入操作系統(tǒng)
(1)Setup.S首先,Setup.S對(duì)已經(jīng)調(diào)入內(nèi)存的操作系統(tǒng)代碼進(jìn)行檢查,如果沒錯(cuò),它會(huì)通過BIOS中斷獲取內(nèi)存容量,硬盤等信息(實(shí)模式)準(zhǔn)備讓CPU進(jìn)入保護(hù)模式a.先屏蔽中斷信號(hào)b.調(diào)用指令lidt和lgdtc.對(duì)8259中斷控制器進(jìn)行編程d.協(xié)處理器重新定位完成這幾件事后,Setup.S設(shè)置保護(hù)模式的標(biāo)志,重取指令,再用一條跳轉(zhuǎn)指令jmpi0x100000,KERNEL_CS。進(jìn)入保護(hù)模式下的啟動(dòng)階段,控制權(quán)交給Head.S.4進(jìn)入操作系統(tǒng)
(1)Setup.S首先,Setup.S對(duì)324進(jìn)入操作系統(tǒng)
(2)Head.S也要先做屏蔽中斷一類的工作然后對(duì)中斷向量表做一定的處理BootLoader讀入內(nèi)存的啟動(dòng)參數(shù)和命令行參數(shù),Head.S把它們保存在empty_zero_page頁(yè)中檢查CPU類型對(duì)協(xié)處理器進(jìn)行檢查
頁(yè)初始化,調(diào)用setup_paging這個(gè)子函數(shù)
因?yàn)橐堰M(jìn)入保護(hù)模式,段機(jī)制的多任務(wù)屬性體現(xiàn)
4進(jìn)入操作系統(tǒng)
(2)Head.S也要先做屏蔽中斷一類的工334進(jìn)入操作系統(tǒng)
(3)main.c中的初始化Head.S調(diào)用/init/main.c中的start_kernel函數(shù),把控制權(quán)交給它,這個(gè)函數(shù)是整個(gè)操作系統(tǒng)初始化的最重要的函數(shù),一旦它執(zhí)行完,整個(gè)操作系統(tǒng)的初始化也就完成了。4進(jìn)入操作系統(tǒng)
(3)main.c中的初始化Head.S調(diào)344進(jìn)入操作系統(tǒng)
(3)main.c中的初始化計(jì)算機(jī)在執(zhí)行start_kernel前以進(jìn)入了保護(hù)模式,使處理器完全進(jìn)入了全面執(zhí)行操作系統(tǒng)代碼的狀態(tài)。但直到目前為止,這都是針對(duì)處理器的。而一旦start_kernel開始執(zhí)行,Linux內(nèi)核就一步步展現(xiàn)。Start_kernel執(zhí)行后,就可以以一個(gè)用戶的身份登陸和使用Linux了4進(jìn)入操作系統(tǒng)
(3)main.c中的初始化計(jì)算機(jī)在執(zhí)行s354進(jìn)入操作系統(tǒng)
(3)main.c中的初始化較為重要的函數(shù)如下Setup_arch()最基本硬件的初始化Paging_init()線性地址空間映射Trap_init()中斷向量表初始化Int_IRQ與中斷有關(guān)的初始化Sched_init()進(jìn)程調(diào)度初始化Console_init()對(duì)中斷的初始化4進(jìn)入操作系統(tǒng)
(3)main.c中的初始化較為重要的函數(shù)364進(jìn)入操作系統(tǒng)
(3)main.c中的初始化對(duì)文件系統(tǒng)的初始化Inode_init()i節(jié)點(diǎn)管理機(jī)制初始化Name_cache_init()目錄緩存機(jī)制初始化Buffer_init()塊緩存機(jī)制初始化4進(jìn)入操作系統(tǒng)
(3)main.c中的初始化對(duì)文件系統(tǒng)的初374進(jìn)入操作系統(tǒng)
(3)main.c中的初始化啟動(dòng)到了目前這種狀態(tài),只剩下運(yùn)行/etc下的啟動(dòng)配置文件。這時(shí)初始化程序并沒有完成操作系統(tǒng)各個(gè)部分的初始化,更關(guān)鍵的文件系統(tǒng)的安裝還沒有涉及,這是在init進(jìn)程建立后完成的。就是start_kernel()最后部分內(nèi)容。4進(jìn)入操作系統(tǒng)
(3)main.c中的初始化啟動(dòng)到了目前這384進(jìn)入操作系統(tǒng)
(4)建立init進(jìn)程Linux要建立的第一個(gè)進(jìn)程是init進(jìn)程啟動(dòng)所需的Shell腳本文件a.Linux系統(tǒng)啟動(dòng)所必須的b.用戶登陸后自己設(shè)定的系統(tǒng)啟動(dòng)所必須的腳本存放在系統(tǒng)默認(rèn)的配置文件目錄/etc下。首先調(diào)用的是/etc/inittab.4進(jìn)入操作系統(tǒng)
(4)建立init進(jìn)程Linux要建立的第39四、Linux系統(tǒng)移植的兩大部分內(nèi)核部分和系統(tǒng)部分(1)內(nèi)核部分初始化和控制所有硬件設(shè)備(嚴(yán)格說不是所有,而是絕大部分),為內(nèi)存管理、進(jìn)程管理、設(shè)備讀寫等工作做好一切準(zhǔn)備。(2)系統(tǒng)部分加載必需的設(shè)備,配置各種環(huán)境以便用戶可以使用整個(gè)系統(tǒng)。
四、Linux系統(tǒng)移植的兩大部分內(nèi)核部分和系統(tǒng)部分40(1)內(nèi)核移植Linux內(nèi)核可以視為由五個(gè)功能部分組成:進(jìn)程管理(包括調(diào)度和通信)、內(nèi)存管理、設(shè)備管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)需要改動(dòng)的就是進(jìn)程管理、內(nèi)存管理和設(shè)備管理中被獨(dú)立出來(lái)的那部分即硬件相關(guān)部分的代碼(1)內(nèi)核移植Linux內(nèi)核可以視為由五個(gè)功能部分組成:進(jìn)程41修改的代碼進(jìn)程管理底層代碼BIOS接口代碼時(shí)鐘、中斷等板上設(shè)備支持代碼特殊結(jié)構(gòu)代碼:SMP內(nèi)存管理修改的代碼進(jìn)程管理底層代碼42(2)系統(tǒng)移植一個(gè)最小系統(tǒng)的重建過程類似Linux系統(tǒng)應(yīng)急盤DiskOnChip包括:init、libc庫(kù)、驅(qū)動(dòng)模塊、必需的應(yīng)用程序和系統(tǒng)配置腳本。(2)系統(tǒng)移植一個(gè)最小系統(tǒng)的重建過程43五、一些Real-TimeLinux簡(jiǎn)介NMTRT-LinuxMontaVistaLinuxucLinuxBlueCat
LinuxOpenWRT,DD-WRTGoogleAndroid五、一些Real-TimeLinux簡(jiǎn)介NMTRT-L441、NMTRT-LinuxNMT是新墨西哥科技大學(xué)(NewMexicoTechnology)的縮寫Real-timeLinux的鼻祖硬實(shí)時(shí)一個(gè)實(shí)時(shí)內(nèi)核負(fù)責(zé)處理硬件消息,接管中斷,實(shí)時(shí)任務(wù)可在該內(nèi)核上直接運(yùn)行1、NMTRT-LinuxNMT是新墨西哥科技大學(xué)(Ne45可載入式核心模組(loadablekernelmodule)。
可載入式核心模組(loadablekernelmodu46RTAIReal-TimeApplicationInterfaceLKM在Linux上定義了一組RTHAL(Real-TimeHardwareAbstractionLayer)RTAI只使用RTHAL和Linux溝通RTAIReal-TimeApplicationInte47LXRTRTAI無(wú)法直接使用Linux的系統(tǒng)調(diào)用解決的方法:使用RT-FIFO將一個(gè)RTAIreal-timekernelmodule和真正的Linux進(jìn)程連接在一起代理:LXRTproxyLXRTRTAI無(wú)法直接使用Linux的系統(tǒng)調(diào)用48嵌入式系統(tǒng)嵌入式Linux492、MontaVista
LinuxMontaVista軟件公司全球三大嵌入式Linux操作系統(tǒng)及解決方案供應(yīng)商之一MontaVista
Linux支持6種體系結(jié)構(gòu)的20款處理器,x86/IA-32、PowerPC、StrongARM、XScale、ARM、MIPSMontaVista
Linux包括KDevelop
IDE、目標(biāo)配置工具(Target
Configuration
Tool)、庫(kù)優(yōu)化工具(Library
Optimizer
tool)。另外,它還提供超過215個(gè)應(yīng)用軟件包。2、MontaVista
LinuxMontaVista軟件50基于Linux
2.4.X穩(wěn)定內(nèi)核,提供支持x86、MIPS、SH以及PowerPC體系結(jié)構(gòu)的實(shí)時(shí)搶占式內(nèi)核??缙脚_(tái)開發(fā),支持14個(gè)主機(jī)開發(fā)環(huán)境,包括Red
Hat、Yellow
Dog
Linux、SuSE、Mandrake、Solaris以及VMWare
on
Windows
NT/2000該版本提供了215多個(gè)主機(jī)配套工具和嵌入式目標(biāo)平臺(tái)開發(fā)組件軟件包,包括thttpd嵌入式服務(wù)器和802.11b無(wú)線通信標(biāo)準(zhǔn)附加包?;贚inux
2.4.X穩(wěn)定內(nèi)核,提供支持x86、MIPS51擴(kuò)展了針對(duì)嵌入式跨平臺(tái)開發(fā)的各類開放源代碼工具的支持,提供了首個(gè)基于KDevelop的MontaVista開發(fā)環(huán)境;支持x86和PowerPC平臺(tái)的Linux跟蹤工具(包括內(nèi)核性能和執(zhí)行分析器);ext3日志文件系統(tǒng)。
擴(kuò)展了針對(duì)嵌入式跨平臺(tái)開發(fā)的各類開放源代碼工具的支持,提供了523、uClinux專為無(wú)(MMU)的微控制器打造的嵌入式Linux操作系統(tǒng)。uClinux已移植支持的微控制器和微處理器摩托羅拉DragonBall
(M68EZ328),
M68328,
M68EN322,
ColdFire,
QUICC
(Quad
Integrated
Communications
Controller)
Motorola
MC68328:
DragonBall集成微處理器
ARM7TDMI
MC68EN302
Axis
ETRAX
Intel
i960
PRISMA
Atari
68k
ETRAX
3、uClinux專為無(wú)(MMU)的微控制器打造的嵌入式Li53特點(diǎn)UClinux的內(nèi)核要比原Linux內(nèi)核小的多1.
內(nèi)存管理不能使用處理器的虛擬內(nèi)存管理技術(shù)分頁(yè)管理對(duì)于內(nèi)存的訪問是直接的,所有程序中訪問的地址都是實(shí)際的物理地址。對(duì)內(nèi)存空間沒有保護(hù),各個(gè)進(jìn)程實(shí)際上共享一個(gè)運(yùn)行空間。一個(gè)進(jìn)程在執(zhí)行前,系統(tǒng)必須為進(jìn)程分配足夠的連續(xù)地址空間,然后全部載入主存儲(chǔ)器的連續(xù)空間中。特點(diǎn)UClinux的內(nèi)核要比原Linux內(nèi)核小的多542.uCLinux兩種可選的的內(nèi)核加載方式Flash運(yùn)行方式:把內(nèi)核的可執(zhí)行映像文件燒到flash上,系統(tǒng)啟動(dòng)時(shí)從flash的某個(gè)地址開始逐句執(zhí)行。內(nèi)核加載方式:把內(nèi)核的壓縮文件存放在flash上,系統(tǒng)啟動(dòng)時(shí)讀取壓縮文件在內(nèi)存里解壓,然后開始執(zhí)行,運(yùn)行速度更快2.uCLinux兩種可選的的內(nèi)核加載方式553.uCLinux的romfs文件文件系統(tǒng)內(nèi)核支持romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼超級(jí)塊(superblock)需要更少的存儲(chǔ)空間。4.uCLinux的應(yīng)用程序庫(kù)uClibc對(duì)libc做了精簡(jiǎn)靜態(tài)鏈接3.uCLinux的romfs文件文件系統(tǒng)56uClinux的主要特色通用的Linux
API
u
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流運(yùn)輸借款協(xié)議方合同
- 二零二五年度航空航天用高溫合金委托生產(chǎn)協(xié)議
- 二零二五年度智能共享單車無(wú)償使用合同范本
- 2025年度門診部護(hù)士長(zhǎng)聘任與管理服務(wù)合同
- 職業(yè)插畫師插畫設(shè)計(jì)服務(wù)合同
- 房地產(chǎn)經(jīng)紀(jì)人獨(dú)家代理合同書
- 產(chǎn)品創(chuàng)意與策劃流程手冊(cè)
- 歷史文物保護(hù)與遺址發(fā)掘試題及答案
- 人工智能輔助的智能環(huán)境保護(hù)監(jiān)測(cè)系統(tǒng)開發(fā)協(xié)議
- 大健康產(chǎn)業(yè)數(shù)字化健康服務(wù)平臺(tái)建設(shè)
- 個(gè)人應(yīng)聘簡(jiǎn)歷電工
- 2025年上半年河南省高校畢業(yè)生“三支一扶”招募1100人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 高血壓的用藥指導(dǎo)任務(wù)三高血壓的藥物治療講解
- 云南省大理白族自治州2024-2025學(xué)年八年級(jí)上學(xué)期1月期末考試英語(yǔ)試卷(無(wú)答案)
- 無(wú)人機(jī)行業(yè)市場(chǎng)分析指南
- 踇外翻病人護(hù)理查房
- 廣西河池市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版專題練習(xí)(上學(xué)期)試卷及答案
- 施工安全管理培訓(xùn)資料
- 第16課數(shù)據(jù)管理與編碼(教案)四年級(jí)全一冊(cè)信息技術(shù)人教版
- 《節(jié)水評(píng)價(jià)技術(shù)導(dǎo)則》
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎(chǔ)理論
評(píng)論
0/150
提交評(píng)論