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

正文內(nèi)容

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

2025-07-16 13:15 本頁(yè)面
 

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