freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的linux系統(tǒng)移植畢業(yè)設(shè)計(編輯修改稿)

2025-07-16 13:15 本頁面
 

【文章內(nèi)容簡介】 選擇與FL2440開發(fā)板相連接的PC機(jī)串口,這里選擇了串口1,最后,最重要的一步是設(shè)置串口,注意必須選擇‘流控制’為‘無’,否則,將會導(dǎo)致收發(fā)不正常,另外FL2440工作時的串口波特率是‘115200’。 當(dāng)所有的連接參數(shù)都設(shè)置好以后,超級終端會顯示如下所示主窗口,此時超級終端應(yīng)該是空白的。選擇超級終端“文件”菜單下的“另存為…”,保存該連接設(shè)置,以便于以后再連接時就不必重新執(zhí)行以上設(shè)置了。當(dāng)開發(fā)板上電后,終端上就會顯示Bootloader的相關(guān)信息。 本章小結(jié)本章首先整體的介紹了開發(fā)板的整體結(jié)構(gòu),然后深入介紹了開發(fā)板采用的S3C2440A 芯片的體系結(jié)構(gòu)、系統(tǒng)管理器、FLASH啟動、存儲器等與之相關(guān)的結(jié)構(gòu)以及開發(fā)板的主要時鐘、控制器、工作頻率、工作電壓和主要接口等外部條件,最后簡要的介紹了電腦設(shè)備所需驅(qū)動以及安裝步驟和主要用到的軟件的安裝和設(shè)置。第3章 BootLoader引導(dǎo)程序 嵌入式系統(tǒng)BootLoader簡介對于一個稍微深入接觸計算機(jī)的人大概都有一個模糊的概念,計算機(jī)加點(diǎn)后在操作系統(tǒng)內(nèi)核啟動或者用戶應(yīng)用程序運(yùn)行之前,首先要運(yùn)行一段引導(dǎo)程序,我們稱之為BootLoader。對于電腦機(jī)的引導(dǎo)系統(tǒng)在完成硬件檢測和資源分配后,將外存也就是硬盤中的引導(dǎo)程序讀到系統(tǒng)的內(nèi)存中,然后將控制權(quán)交給操作系統(tǒng)。但是在嵌入式產(chǎn)品中由于規(guī)格大小的限制往往沒有那么多固件,所以有的嵌入式會將一段短小的啟動程序嵌入到CPU中去以節(jié)省空間和資源,于是整個操作系統(tǒng)的正常啟動的任務(wù)就完全交給了嵌入式的引導(dǎo)程序[8]。對于ARM體系結(jié)構(gòu)的CPU來說,第一條指令從0x00000000開始執(zhí)行。在嵌入式開發(fā)板中需要把存儲器件ROM或者Flash映射到這個地址,而在這個地址處通常安排的是系統(tǒng)地BootLoader。簡單地說,引導(dǎo)程序就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通常,引導(dǎo)程序是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的引導(dǎo)程序幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫σ龑?dǎo)程序歸納出一些通用的概念來,以指導(dǎo)用戶特定的引導(dǎo)程序設(shè)計與實(shí)現(xiàn)[9]。引導(dǎo)程序所支持的CPU 和嵌入式板。每種不同的CPU 體系結(jié)構(gòu)都有不同的引導(dǎo)程序。有些引導(dǎo)程序也支持多種體系結(jié)構(gòu)的CPU,比如UBoot 就同時支持ARM 體系結(jié)構(gòu)和MIPS 體系結(jié)構(gòu)。除了依賴于CPU 的體系結(jié)構(gòu)外,引導(dǎo)程序?qū)嶋H上也依賴于具體的嵌入式板級設(shè)備的配置[10]。這也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU 而構(gòu)建的,要想讓運(yùn)行在一塊板子上的引導(dǎo)程序也能運(yùn)行在另一塊板子上,通常也都需要修改引導(dǎo)程序。引導(dǎo)程序的安裝媒介(Installation Medium)。系統(tǒng)加電或復(fù)位后,所有的CPU 通常都從某個由CPU 制造商預(yù)先安排的地址上取指令。比如,基于ARM7TDMI core 的CPU 在復(fù)位時通常都從地址0x00000000 取它的第一條指令[11]。而基于CPU 構(gòu)建的嵌入式系統(tǒng)通常都有某種類型的固態(tài)存儲設(shè)備(比如:ROM、EEPROM 或FLASH 等)被映射到這個預(yù)先安排的地址上。因此在系統(tǒng)加電后,CPU 將首先執(zhí)行Boot Loader 程序。用來控制引導(dǎo)程序的設(shè)備或機(jī)制。主機(jī)和目標(biāo)機(jī)之間一般通過串口建立連接,引導(dǎo)程序軟件在執(zhí)行時通常會通過串口來進(jìn)行I/O,比如:輸出打印信息到串口,從串口讀取用戶控制字符等。引導(dǎo)程序的啟動過程是單階段(Single Stage)還是多階段。通常多階段的引導(dǎo)程序能提供更為復(fù)雜的功能,以及更好的可移植性[12]。從固態(tài)存儲設(shè)備上啟動的引導(dǎo)程序大多都是2 階段的啟動過程,也即啟動過程可以分為stage 1 和stage 2 兩部分[13]。引導(dǎo)系統(tǒng)的操作模式(Operation Mode)大多數(shù)引導(dǎo)程序都包含兩種不同的操作模式:啟動加載模式和下載模式,這種區(qū)別僅對于開發(fā)人員才有意義。但從最終用戶的角度看,引導(dǎo)系統(tǒng)的作用就是用來加載操作系統(tǒng),而并不存在所謂的啟動加載模式與下載工作模式的區(qū)別。啟動加載(Boot loading)模式:這種模式也稱為“自主”(Autonomous)模式。也即Boot Loader 從目標(biāo)機(jī)上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到RAM 中運(yùn)行,整個過程并沒有用戶的介入[14]。這種模式是引導(dǎo)程序的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時侯,引導(dǎo)系統(tǒng)顯然必須工作在這種模式下。下載(Downloading)模式:在這種模式下,目標(biāo)機(jī)上的引導(dǎo)程序 將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)(Host)下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被引導(dǎo)程序保存到目標(biāo)機(jī)的RAM 中,然后再被引導(dǎo)系統(tǒng)寫到目標(biāo)機(jī)上的FLASH 類固態(tài)存儲設(shè)備中[15]。引導(dǎo)程序的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時被使用;此外,以后的系統(tǒng)更新也會使用引導(dǎo)程序的這種工作模式。工作于這種模式下的引導(dǎo)系統(tǒng)通常都會向它的終端用戶提供一個簡單的命令行接口[16]。像Blob 或UBoot 等這樣功能強(qiáng)大的Boot Loader 通常同時支持這兩種工作模式,而且允許用戶在這兩種工作模式之間進(jìn)行切換。比如,Blob 在啟動時處于正常的啟動加載模式,但是它會延時10 秒等待終端用戶按下任意鍵而將blob 切換到下載模式[17]。如果在10 秒內(nèi)沒有用戶按鍵,則blob 繼續(xù)啟動Linux內(nèi)核。BootLoader 與主機(jī)之間進(jìn)行文件傳輸所用的通信設(shè)備及協(xié)議最常見的情況就是,目標(biāo)機(jī)上的Boot Loader 通過串口與主機(jī)之間進(jìn)行文件傳輸,傳輸協(xié)議通常是xmodem/ymodem/zmodem 協(xié)議中的一種。但是,串口傳輸?shù)乃俣仁怯邢薜?,因此通過以太網(wǎng)連接并借助TFTP 協(xié)議來下載文件是個更好的選擇[18]。此外,在論及這個話題時,主機(jī)方所用的軟件也要考慮。比如,在通過以太網(wǎng)連接和TFTP 協(xié)議來下載文件時,主機(jī)方必須有一個軟件用來的提供TFTP 服務(wù)[19]。 FL2440的BootLoader開發(fā)板連接好串口線,打開DNW 進(jìn)行設(shè)置,開發(fā)板上電如圖31所示。圖31 DNW設(shè)置在DNW 為當(dāng)前有效窗口時,敲PC 鍵盤的任意鍵(須在上圖藍(lán)圈所示的時間范圍內(nèi),上圖為7 秒此值可在Boot 參數(shù)處修改)可進(jìn)入bootloader 菜單界面如下圖32。圖32 Bootloader菜單FL2440 開發(fā)板所帶的bootloader 主要功能有通過串口或USB 口下載文件(配合DNW 使用)、NAND FLASH 燒寫、啟動FLASH 中的程序、設(shè)置啟動參數(shù)。用USB 下載要先在PC 端裝好驅(qū)動程序,保證USB 連接好,有時PC 端出現(xiàn)‘發(fā)現(xiàn)無法識別的USB 設(shè)備’時,此時可按ESC 鍵取消下載,等幾秒鐘再輸入‘0’或者‘1’啟動USB下載。另外需要注意的是,在啟用USB 下載時,如不能下載需要將USB 重新插拔!選擇菜單說明功能[0]:通過USB DEVICE 下載程序,并運(yùn)行功能[1]:通過USB DEVICE 下載程序,下載完后會自動寫入NAND FLASH功能[2]:通過串口下載程序,BIOS 內(nèi)部固定了下載地址為0x30400000功能[3]:啟動無操作系統(tǒng)應(yīng)用程序(),即分區(qū)4 中的程序功能[4]:啟動LINUX 操作系統(tǒng)功能[5]:啟動WINCE 操作系統(tǒng)功能[6]:擦除NAND FLASH 分區(qū)功能[7]:配置一些系統(tǒng)參數(shù)和Linux 啟動參數(shù) 燒寫B(tài)ootLoader到開發(fā)板、連接好JTAG 線、串口線、usb 線、連接好后給開發(fā)板上電。使用JLINK 仿真器的用戶,插好轉(zhuǎn)接板;使用并口的用戶應(yīng)使用JTAG 板的wiggler 接口打開AXD,進(jìn)行配置。使用并口的用戶需要打開HJTAG 檢測CPU。Operations—Detect Target如下圖33所示。圖33 HJTAG配置正常檢測到CPU 時,應(yīng)如下圖34,檢測到之后將其最小化即可,該軟件會在PC 右下角的托盤中。圖34 檢測CPU打開AXD,在AXD 的菜單:Operations—Configure Target如下圖35所示。圖35 AXD設(shè)置使用并口的用戶,;使用JLINK ,然后按‘OK’上面的操作無誤后會在AXD 的左側(cè)有如圖36 顯示。圖36 ADX操作界面接下來開始裝載文件。在File 菜單下‘load image’,如圖37。 圖37 裝載文件運(yùn)行片刻后停下,正常的情況下應(yīng)該停在如圖38所示的位置圖38 AXD編程界面然后用同樣的方法裝載‘’并運(yùn)行,此時串口在DNW 上會有輸出如圖39:【USB:OK】表示USB 線已經(jīng)連接好了。圖39 串口輸出按任意鍵使其停在‘select menu’下如圖310。圖310 選擇菜單選‘1’通過USB 來燒寫程序如圖311。圖311 flash菜單選‘0 ’即可通過USB 文件,在燒寫之前應(yīng)將下載地址修改為‘0x30800000’,DNW 菜單欄Configuration—Operation 。如312。圖312 配置DNW在DNW 菜單欄USB Port—Transmit 。圖313 燒寫成功后,會提示“Progran nand flash parttition success”如圖314。圖314 燒寫成功 本章小結(jié)本章主要介紹了Bootloader的簡要概念以及他在計算機(jī)啟動過稱中的作用,簡要的介紹了其主要結(jié)構(gòu)、安裝媒介和操作模式。然后介紹了該開發(fā)辦的Bootloader的啟動界面以及界面?zhèn)€參數(shù)的意義,接著詳細(xì)的闡述了燒寫B(tài)ootloader所需文件和對軟硬件的配置,最后詳細(xì)的敘述了燒寫B(tài)ootloader的步驟。第4章 Linux啟動過程及編譯 1.支持更多處理器,比如AMD6一些大型機(jī)及嵌入式等,同時改進(jìn)了對已有處理器的支持;2.采用搶占式內(nèi)核,使交互式操作的響應(yīng)速度大大提高;3.修改了I/0子系統(tǒng)部分,保證在各種工作負(fù)荷下I/0都有很好的響應(yīng)速度;4.增加了IDE/ATA、SCSI等存儲總線,解決和改善了以前的一些問題。 IDE CD/RW設(shè)備,而不必像以前一樣要使用一個特別的SCSI模擬驅(qū)動程序;5.大量改進(jìn)文件系統(tǒng)。比如支持Windows的邏輯卷管理器、重寫對NTFS文件系統(tǒng)的支持、改進(jìn)HPFS等;6.改進(jìn)和部分重寫了Modules功能,使之更穩(wěn)定;7.改進(jìn)對USB的支持,使之能夠支持當(dāng)前多數(shù)主流的USB設(shè)備;8.加強(qiáng)對無線設(shè)備的支持;9.增加了ALSA(Advanced Linux Sound Architecture)。ALSA是有希望取代舊式 0SS(Open Sound System)的另一種聲音系統(tǒng),能支持全杜比錄音及回放、無縫混音、支持聲音合成設(shè)備、USB聲卡等;10.支持更多種類和型號的多媒體設(shè)備;11.網(wǎng)絡(luò)方面新增了對IPSec協(xié)議的支持,改進(jìn)了對IPv6的支持。 Linux內(nèi)核啟動流程在移植的調(diào)試階段,在沒有在線仿真器的情況下,可以通過板上LED的狀態(tài)輸出或串口輸出的調(diào)試信息進(jìn)行錯誤定位,所以有必要了解一下內(nèi)核的啟動流程,圖41內(nèi)核啟動流程圖對此做來解釋。本文通過DNW軟件在來觀察內(nèi)核的啟動流程。內(nèi)核在啟動的過程中按下圖步驟一步一步啟動,了解啟動的順序,有利于掌握好內(nèi)核移植的工作安排過程。圖41 內(nèi)核啟動流程圖 Linux目錄文件Linux 內(nèi)核主要由5 個模塊構(gòu)成,它們分別是:進(jìn)程調(diào)度模塊、內(nèi)存管理模塊、文件系統(tǒng)模塊、進(jìn)程間通信模塊和網(wǎng)絡(luò)接口模塊。由于Linux 內(nèi)核是一種單內(nèi)核模式的系統(tǒng),因此,內(nèi)核中所有的程序幾乎都有緊密的聯(lián)系,它們之間的依賴和調(diào)用關(guān)系非常密切。所以在閱讀一個源代碼文件時往往需要參閱其它相關(guān)的文件。因此有必要先熟悉一下源代碼文件的目錄結(jié)構(gòu)和安排。linux├─boot 系統(tǒng)引導(dǎo)匯編程序├─fs 文件系統(tǒng)├─include 頭文件(*.h)│├─asm 與CPU 體系結(jié)構(gòu)相關(guān)的部分│├─linux Linux 內(nèi)核專用部分│└─sys 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)部分├─init 內(nèi)核初始化程序├─kernel 內(nèi)核進(jìn)程調(diào)度、信號處理、系統(tǒng)調(diào)用等程序│├─blk_drv 塊設(shè)備驅(qū)動程序│├─chr_drv 字符設(shè)備驅(qū)動程序│└─math 數(shù)學(xué)協(xié)處理器仿真處理程序├─lib 內(nèi)核庫函數(shù)├─mm 內(nèi)存管理程序└─tools 生成內(nèi)核Image 文件的工具程序linux 目錄是源代碼的主目錄,在該主目錄中除了包括所有的14 個子目錄以外,還含有唯一的一個makefile 文件。boot 目錄中含有3 個匯編語言文件,是內(nèi)核源代碼文件中最先被編譯的程序。fs是文件系統(tǒng)實(shí)現(xiàn)程序的目錄,共包含17 個C 語言程序。include頭文件目錄中總共有32 頭文件。體系結(jié)構(gòu)相關(guān)頭文件子目錄include/asm這些頭文件主要定義了一些與CPU 體系結(jié)構(gòu)密切相關(guān)的數(shù)據(jù)結(jié)構(gòu)、宏函數(shù)和變量。Linux內(nèi)核專用頭文件子目錄include/linux。系統(tǒng)專用數(shù)據(jù)結(jié)構(gòu)子目錄include/sys。內(nèi)核初始化程序目錄init。內(nèi)核程序主目錄kernellinux/kernel 目錄中共包含12 個代碼文件和一個Makefile 文件,另外還有3 個子目錄。塊設(shè)備驅(qū)動程序子目錄kernel/blk_dev。字符設(shè)備驅(qū)動程序子目錄kernel/chr_dev。協(xié)處理器仿真和操作程序子目錄kernel/math。內(nèi)核庫函數(shù)目錄lib。內(nèi)存管理程序目錄mm。編譯內(nèi)核工具程序目錄tools等。 內(nèi)核編譯代碼修改1.修改機(jī)
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1