




已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
II Abstract With the development of the information technology, embedded systems has been broadly applied in each field of famlily and industry. And the increasingly wide range of applications,the complexity of embedded systems is constantly increasing. Now,the embedded operating system has become one of the most important part of the embedded system. In the embedded operating systems,The Linux operating system has become more and more attened,because of its open source,small core,good performance;whats more,Linux2.6 introduces many new features that make it an excellent and suitable operating system for embedded computing. Undoubtedly, the embedded Linux operating systemwill bring large economic value and application prospects. This thesis is accomplished based on the automatic meter reading system for a power company in Nanjing, and the main contribution is to introduce transplantation of the embedded Linux system, as well as the driver development of corresponding peripheral device. This paper accomplish the transplantation of the embedded Linux system based on AT91SAM9260EK,and including build the development platform,build the embedded cross-compile environment; Based on the analysis of the booting and loading processBootLoader of the embedded system,implements the transplantation of Uboot on the platform. After the detailed analysis of the kernel structure and booting process of Linux system, according to the terminal hardware platform,analyze the process of transplantation and cut of the Linux kernel. In accordance with the application requirements,we select the YAFFS2 as our root file syetem,and detailedly introduce the process of the implementation of the YAFFS2 file system. Finally,develop the drivers of the related equipment, especially the LCD(UC1698U), improve the original way of direct access GPIO port,and combining the GPIO and framebuffer to develop the new driver. The framebuffer is the cache for display, write data to the cache, the controller will automatically read the data from the cache and display. The development of GUI based on Qt/Embedded need the support of framebuffer technology. But for the type of LCD, the display controller can not automatically read the data from the cache, use the kernel timer to update the framebuffer for real-time display and develop the GUI of test based on Qt/Embedded. Key words: embedded Linux system, ARM9,YAFFS2,driver,FrameBuffer I 摘要 隨著信息技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用于工業(yè)和家庭的各個(gè)領(lǐng)域。其復(fù)雜性也隨之不斷增加,嵌入式操作系統(tǒng)成為了嵌入式系統(tǒng)中最重要的組成部分之一。 在嵌入式操作系統(tǒng)中,Linux 操作系統(tǒng)得到了越來(lái)越多的關(guān)注,Linux 系統(tǒng)開(kāi)源、具有精簡(jiǎn)的內(nèi)核以及優(yōu)異的性能。另外,Linux2.6 包含許多新的特性,為其在嵌入式領(lǐng)域的應(yīng)用提供了更多更好的支持,嵌入式 Linux系統(tǒng)將會(huì)有巨大的市場(chǎng)價(jià)值以及應(yīng)用前景。 本文基于南京某電力公司自動(dòng)抄表系統(tǒng),對(duì)負(fù)荷控制管理終端平臺(tái)進(jìn)行了 Linux 系統(tǒng)移植以及對(duì) LCD 等外圍設(shè)備的驅(qū)動(dòng)開(kāi)發(fā)。本系統(tǒng)的 CPU 采用 ATMEL 公司的以 ARM926T為內(nèi)核的 AT91SAM9260EK 處理器。采用了基于 2.6 內(nèi)核版本的嵌入式 ARM Linux,最終完成基于 ARM9 的嵌入式 Linux 系統(tǒng)移植開(kāi)發(fā)。具體包括搭建開(kāi)發(fā)平臺(tái),建立嵌入式交叉編譯環(huán)境;在分析嵌入式系統(tǒng)引導(dǎo)加載程序 BootLoader 的基礎(chǔ)上,結(jié)合本目標(biāo)板修改 Uboot源碼并進(jìn)行 Uboot 的編譯和移植;通過(guò)分析嵌入式 Linux 系統(tǒng)的內(nèi)核結(jié)構(gòu)和啟動(dòng)流程,實(shí)現(xiàn)了針對(duì)本目標(biāo)板的內(nèi)核源碼修改、編譯以及移植;同時(shí)按照應(yīng)用需求,選擇 YAFFS2 文件系統(tǒng)作為根文件系統(tǒng),并給出根文件系統(tǒng)實(shí)現(xiàn)的過(guò)程;最后開(kāi)發(fā)終端外圍設(shè)備相應(yīng)的驅(qū)動(dòng)程序,重點(diǎn)圍繞 LCD(UC1698U)展開(kāi),改進(jìn)原來(lái)直接讀寫(xiě) GPIO 口的驅(qū)動(dòng)方式,采取直接讀寫(xiě) GPIO 和幀緩沖相結(jié)合的方式開(kāi)發(fā)新的驅(qū)動(dòng)程序。幀緩沖是一塊顯示緩存,通過(guò)向該緩存中寫(xiě)入數(shù)據(jù),顯示控制器就會(huì)自動(dòng)的從中讀取數(shù)據(jù)并顯示出來(lái),在 LCD 設(shè)備上基于Qt 的圖形用戶界面的開(kāi)發(fā)也需要幀緩沖技術(shù)的支持。但對(duì)于本類型的 LCD,顯示控制器并不能自動(dòng)完成緩沖區(qū)數(shù)據(jù)讀取,本文從軟件的角度借助內(nèi)核定時(shí)器最終完成緩沖區(qū)更新并實(shí)時(shí)顯示,最后開(kāi)發(fā)基于 Qt/Embedded 的用戶圖形測(cè)試界面。 關(guān)鍵詞: 嵌入式 Linux 系統(tǒng),ARM9 ,YAFFS2 文件系統(tǒng),驅(qū)動(dòng),幀緩沖 III 目錄 第一章 緒論 . 1 1.1 選題背景以及研究?jī)?nèi)容 . 1 1.1.1 選題背景 . 1 1.1.2 研究?jī)?nèi)容 . 2 1.2 課題來(lái)源以及論文的主要工作 . 4 第二章 搭建嵌入式 Linux 開(kāi)發(fā)平臺(tái). 5 2.1 開(kāi)發(fā)平臺(tái)硬件參數(shù) . 5 2.2 開(kāi)發(fā)宿主機(jī)交叉編譯環(huán)境的建立 . 5 2.2.1 arm-none-Linux-gnueabi-gcc 的安裝 . 6 2.2.2 TFTP 和 NFS 的配置. 6 2.3 本章小結(jié) . 6 第三章 BootLoader 的設(shè)計(jì)與移植 . 7 3.1 BootLoader 概述 . 7 3.2 BootLoader 的操作模式 . 8 3.3 Uboot 的源碼結(jié)構(gòu) . 8 3.4 Uboot 的編譯及其在目標(biāo)板上的移植 . 9 3.4.1 Uboot 的源碼修改以及編譯. 9 3.4.2 Uboot 的移植.12 3.5 本章小結(jié) .13 第四章 Linux 內(nèi)核的編譯及其移植.14 4.1 嵌入式操作系統(tǒng)選擇 .14 4.2 Linux 內(nèi)核結(jié)構(gòu)及啟動(dòng)過(guò)程.15 4.2.1 Linux 內(nèi)核的啟動(dòng)過(guò)程 .15 4.3 Linux 內(nèi)核源碼的修改、編譯及移植.17 4.3.1 基于目標(biāo)板修改 Linux 內(nèi)核源碼 .17 4.3.2 根據(jù)需求裁剪 Linux 內(nèi)核.22 4.3.3 Linux 內(nèi)核的移植 .25 4.4 本章小結(jié) .27 第五章 嵌入式 Linux 根文件系統(tǒng) .29 5.1 嵌入式 Linux 的文件系統(tǒng)的結(jié)構(gòu) .29 5.2 文件系統(tǒng)選擇及編譯工具簡(jiǎn)介 .30 5.2.1 根文件系統(tǒng)選擇 .30 5.2.2 Busybox 簡(jiǎn)介 .30 5.2.3 Busybox 簡(jiǎn)介函數(shù)庫(kù)及其安裝 .31 5.3 YAFFS2 文件系統(tǒng)移植的實(shí)現(xiàn) .31 5.3.1 YAFFS2 文件系統(tǒng)的創(chuàng)建 .31 5.3.2 YAFFS2 文件系統(tǒng)的移植 .34 5.4 本章小結(jié) .35 第六章 嵌入式 Linux 設(shè)備驅(qū)動(dòng)程序.36 6.1 嵌入式 Linux 設(shè)備驅(qū)動(dòng)程序概述 .36 6.1.1 嵌入式 Linux 驅(qū)動(dòng)程序簡(jiǎn)介 .36 6.1.2 設(shè)備驅(qū)動(dòng)程序框架 .37 6.2 初始集中器 LCD 設(shè)備驅(qū)動(dòng)程序分析 .39 6.3 改進(jìn)的基于幀緩沖的 LCD 驅(qū)動(dòng)程序 .41 Research on System Transplantation and Driver Development of Embedded Linux Based on ARM9 Thesis Submitted to Nanjing University of Posts and Telecommunications for the Degree of Master of Engineering By Nie Heping Supervisor: Prof. Qiu Xiaohui April 2013 京郵電大學(xué)碩士研究生學(xué)位論文 第一章 緒論 3 為了滿足集中器的要求,充分發(fā)揮集中器承上啟下的作用,我們選擇嵌入式 Linux 操作系統(tǒng)做為集中器的操作系統(tǒng)。主要的研究?jī)?nèi)容如下: (1)根據(jù)終端需要對(duì)嵌入式 Linux內(nèi)核進(jìn)行修改。 確定了操作系統(tǒng),在對(duì) Linux源碼以及啟動(dòng)流程的基礎(chǔ)上,還要對(duì)選擇的嵌入式 Linux系統(tǒng)進(jìn)行定制以達(dá)到我們的要求。比如涉及到的集中器的通信方式方面,集中器遠(yuǎn)程抄表的通信方式既有無(wú)線方式,又包含有線方式1314。無(wú)線方式主要和手持終端進(jìn)行近距離的通信,比如紅外通信、藍(lán)牙通信等。有線方式包括各種串行總線技術(shù)(RS232、RS485、CAN總線等)、電力線載波、公共電話網(wǎng)等。相比其他有線通信方式,RS485 通信方式支持多節(jié)點(diǎn)、遠(yuǎn)距離以及靈敏度高,且只對(duì)接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議,RS485 已成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)氖走x15-17。所以本集中器也應(yīng)支持 RS485 通信方式,這就需要對(duì)內(nèi)核源碼進(jìn)行修改以驅(qū)動(dòng)終端外圍的 RS485 端口。 (2)YAFFS2 文件系統(tǒng)選擇 下一步要選擇一個(gè)合適的文件系統(tǒng)來(lái)管理文件。YAFFS 文件系統(tǒng)是專門針對(duì) NAND 閃存設(shè)計(jì)的嵌入式文件系統(tǒng),目前有 YAFFS 和 YAFFS2 兩個(gè)版本,因?yàn)?YAFFS2 能更好的支持大容量的 NAND FLASH 芯片,同時(shí)考慮集中器的進(jìn)一步的發(fā)展,需要大容量的 NAND FLASH 來(lái)滿足業(yè)務(wù)需求,在這里我們選擇 YAFFS2 文件系統(tǒng)。 (3)圍繞 UC1698U 開(kāi)發(fā)基于幀緩沖技術(shù)的驅(qū)動(dòng)程序 成功編譯和移植 BootLoader 以及嵌入式 Linux 內(nèi)核和文件系統(tǒng)后,嵌入式 Linux 系統(tǒng)就可以正常啟動(dòng)和運(yùn)行。為了驅(qū)動(dòng)外設(shè)能正常工作,還要針對(duì)本集中器所有外設(shè),開(kāi)發(fā)相應(yīng)的驅(qū)動(dòng)程序,本文以 LCD 設(shè)備為例來(lái)討論驅(qū)動(dòng)的開(kāi)發(fā)過(guò)程。針對(duì)本目標(biāo)板的 LCD,對(duì)原來(lái)采用的直接讀寫(xiě) GPIO 口驅(qū)動(dòng)的方式進(jìn)行改進(jìn),采用基于直接讀寫(xiě) GPIO 口驅(qū)動(dòng)與幀緩沖驅(qū)動(dòng)相結(jié)合的方式進(jìn)行。在驅(qū)動(dòng)支持幀緩沖技術(shù)的基礎(chǔ)上,在 LCD 設(shè)備上就可以開(kāi)發(fā)基于Qt/Embedded 或者 MiniGui、GtkFB 的圖形用戶界面,相比于靠描點(diǎn)繪制的圖形用戶界面,界面會(huì)較友好,有層次感,更方便用戶和集中器的交互,用戶體驗(yàn)較好,同時(shí)可移植性也較強(qiáng)。除此之外,基于 Qt/Embedded 或者 MiniGui、GtkFB 更方便開(kāi)發(fā)高級(jí)圖形界面或圖形用戶程序。FrameBuffer 譯作幀緩沖,是基礎(chǔ)圖形設(shè)備,是一種專門為開(kāi)發(fā)高級(jí)圖形界面或者圖形應(yīng)用程序提供基本函數(shù)庫(kù)的驅(qū)動(dòng)程序接口。在此技術(shù)中,顯示設(shè)備會(huì)被抽象成為一段內(nèi)存緩沖區(qū),我們通過(guò)不停的向內(nèi)存緩沖區(qū)中寫(xiě)入數(shù)據(jù), 顯示控制器就自動(dòng)的從中讀取數(shù)據(jù)并顯示出來(lái)1819,這樣就屏蔽了顯示設(shè)備底層的差異,對(duì)應(yīng)用程序的開(kāi)發(fā)人員來(lái)講,就不需要對(duì)底層的驅(qū)動(dòng)深入了解,應(yīng)用程序開(kāi)發(fā)人員的開(kāi)發(fā)效率也會(huì)提高。通過(guò)閱讀本 LCD京郵電大學(xué)碩士研究生學(xué)位論文 第一章 緒論 1 第一章 緒論 1.1 選題背景以及研究?jī)?nèi)容 1.1.1 選題背景 傳統(tǒng)電力網(wǎng)供電系統(tǒng)依靠人力對(duì)商業(yè)用電和生活用電進(jìn)行抄讀,不僅人工成本高,而且報(bào)表生成周期長(zhǎng)、效率低,根據(jù)報(bào)表的統(tǒng)計(jì)結(jié)果分析用戶需求也因此比較慢,不能及時(shí)反映系統(tǒng)用電量的需求分布情況,致使抄表結(jié)果對(duì)供應(yīng)系統(tǒng)網(wǎng)絡(luò)的優(yōu)化缺乏參考價(jià)值,不但降低供電效率,而且還會(huì)影響供電質(zhì)量12。此外,傳統(tǒng)抄表方式依靠人力抄表,抄取電量數(shù)據(jù)的耗時(shí)較長(zhǎng),且無(wú)法實(shí)時(shí)的監(jiān)控所有用戶電表數(shù)據(jù),這樣就使得所獲取的電表數(shù)據(jù)不精確,所獲得的整個(gè)電網(wǎng)數(shù)據(jù)的可統(tǒng)計(jì)性比較弱,針對(duì)電網(wǎng)的改良,此數(shù)據(jù)的參考價(jià)值也不高3-5。與此同時(shí),傳統(tǒng)抄表系統(tǒng)對(duì)電網(wǎng)中漏電、竊電現(xiàn)象也不能進(jìn)行正確的評(píng)估與確認(rèn),抄表時(shí)還需要抄表人員到用戶家中抄讀電表數(shù)據(jù),這無(wú)疑給用戶帶來(lái)一定的麻煩,耗費(fèi)大量的人力財(cái)力,可能還會(huì)引起用戶的反感和不安,還有可能給犯罪分子以可乘之機(jī)6。 鑒于傳統(tǒng)人力抄表和數(shù)據(jù)分析系統(tǒng)的上述局限,迫使人們尋找一種高效率、高可靠性的抄表方式,以便能夠及時(shí)的獲得所有用戶某個(gè)時(shí)間的用電數(shù)據(jù),完成對(duì)用電數(shù)據(jù)的計(jì)算和分析。 自動(dòng)抄表系統(tǒng)(Automatic Meter Reading-AMR)7是在傳統(tǒng)人工抄表方式不能滿足生產(chǎn)和生活需要的情況下產(chǎn)生的,一般是指利用微電子、計(jì)算機(jī)網(wǎng)絡(luò)、傳感等技術(shù)自動(dòng)讀取和處理表數(shù)據(jù),將城市居民水、電、氣信息進(jìn)行綜合處理的系統(tǒng)8?,F(xiàn)在發(fā)展中的自動(dòng)抄表系統(tǒng)具有如下特點(diǎn)910: (1)高效率 電力網(wǎng)依靠人工對(duì)工農(nóng)業(yè)生活用電進(jìn)行數(shù)據(jù)采集,消耗大量人力物力,抄表周期相對(duì)比較長(zhǎng),效率極其低。而自動(dòng)抄表系統(tǒng)可以替代大量的人力物力,節(jié)約了資源,獲得了一定的經(jīng)濟(jì)效益。 (2)數(shù)據(jù)處理的周期縮短 使用自動(dòng)抄表系統(tǒng),即使是無(wú)人值守的情況下,都可以每天定點(diǎn)定時(shí)的監(jiān)控區(qū)域范圍內(nèi)的用戶用電情況,獲得用電數(shù)據(jù),同時(shí)也可以對(duì)所獲得的數(shù)據(jù)存儲(chǔ)和分析處理,整個(gè)過(guò)程基本不受人工干預(yù),比起人工統(tǒng)計(jì)抄表數(shù)據(jù)或者是生成數(shù)據(jù)報(bào)表,數(shù)據(jù)處理周期大大縮短。 (3)精確度高 參考性強(qiáng) 傳統(tǒng)人工抄表方式依靠人力抄取電量數(shù)據(jù),只能逐個(gè)的進(jìn)行抄IV 6.3.1 幀緩沖驅(qū)動(dòng)簡(jiǎn)介 .41 6.3.2 改進(jìn)的基于幀緩沖的 LCD 設(shè)備驅(qū)動(dòng)設(shè)計(jì).44 6.3.3 幀緩沖驅(qū)動(dòng)程序的測(cè)試 .47 6.4 本章小結(jié) .48 第七章 總結(jié)與展望 .49 參考文獻(xiàn).51 附錄 1 程序清單 .53 附錄 2 攻讀碩士學(xué)位期間撰寫(xiě)的論文.54 致謝.55 京郵電大學(xué)碩士研究生學(xué)位論文 第二章 搭建嵌入式 Linux 開(kāi)發(fā)平臺(tái) 5 第二章 搭建嵌入式 Linux 開(kāi)發(fā)平臺(tái) 2.1 開(kāi)發(fā)平臺(tái)硬件參數(shù) 集中器采用 ATMEL 公司的 AT91SAM9260EK 作為處理芯片,AT91SAM9260EK 是一款 ARM926EJ-S 內(nèi)核的工業(yè)級(jí)芯片,帶有 USB2.0 協(xié)議的 USB HOST 和 Device 接口,支持全功能的 9 線串口等。 開(kāi)發(fā)板硬件資源: 由 AT91SAM9260EK 數(shù)據(jù)手冊(cè)可得核心板資源參數(shù): n AT91SAM9260EK(ARM926EJ-S),主頻 180M(達(dá)到 200MIPS),工業(yè)級(jí); n 8K 字節(jié)的高速數(shù)據(jù)緩存器,8K 字節(jié)的高速指令緩沖區(qū); n 64M Bytes NAND FLASH; n 32M Bytes SDRAM; 串口 n 一個(gè) DEBUG 口; n 三個(gè)標(biāo)準(zhǔn) RS232 口; n 三個(gè)標(biāo)準(zhǔn) RS485 口; 網(wǎng)口 n 一個(gè) 100M 網(wǎng)口; USB 接口 n 一個(gè) USB HOST(USB 2.0 Full Speed)接口; n 一個(gè) USB Device(USB 2.0 Full Speed)接口; 其他設(shè)備 n 160*160 LCD 顯示設(shè)備; n RTC 實(shí)時(shí)時(shí)鐘(帶電池); n 按鍵鍵盤; 2.2 開(kāi)發(fā)宿主機(jī)交叉編譯環(huán)境的建立 交叉編譯是嵌入式開(kāi)發(fā)過(guò)程中的一項(xiàng)重要技術(shù),一般的嵌入式目標(biāo)系統(tǒng)沒(méi)有足夠的資京郵電大學(xué)碩士研究生學(xué)位論文 第一章 緒論 4 的數(shù)據(jù)手冊(cè),UC1698U 的顯示控制器并不能自動(dòng)更新這段內(nèi)存緩存區(qū),不能實(shí)時(shí)的將緩沖區(qū)的數(shù)據(jù)更新到屏幕。為了在本 LCD 上開(kāi)發(fā)出基于 Qt/Embedded 的圖形用戶界面,方便用戶和集中器的交互,在這里借助內(nèi)核的定時(shí)器將幀緩沖區(qū)的數(shù)據(jù)實(shí)時(shí)更新至屏幕,完成基于 FrameBuffer 的驅(qū)動(dòng)開(kāi)發(fā)。 1.2 課題來(lái)源以及論文的主要工作 針對(duì)嵌入式 Linux 系統(tǒng)移植存在的問(wèn)題,結(jié)合南京某公司負(fù)荷控制管理終端平臺(tái)的開(kāi)發(fā)工作,本文的章節(jié)安排如下: 第一章是緒論內(nèi)容,結(jié)合本課題選題背景引出本文研究?jī)?nèi)容。 第二章重點(diǎn)介紹搭建嵌入式 Linux開(kāi)發(fā)平臺(tái),建立交叉編譯環(huán)境,為后續(xù) BootLoader、kernel 及文件系統(tǒng)的編譯和移植做準(zhǔn)備。 第三章對(duì) BootLoader 的結(jié)構(gòu),啟動(dòng)流程進(jìn)行了分析;針對(duì)選用的 Uboot 不支持所選YAFFS2 文件系統(tǒng)燒寫(xiě)的問(wèn)題進(jìn)行了研究,修改 Uboot 源碼并重新編譯,最終將編譯生成的Uboot 鏡像移植到本目標(biāo)板中,修改后的 Uboot 可穩(wěn)定在目標(biāo)板中運(yùn)行。 第四章分析 Linux 內(nèi)核的源碼結(jié)構(gòu)以及啟動(dòng)過(guò)程2021,結(jié)合本目標(biāo)板,對(duì)內(nèi)核源代碼進(jìn)行修改:根據(jù)需要為 Linux 內(nèi)核添加分區(qū)表信息;在 Linux 內(nèi)核源碼中添加 RS485 模式串口設(shè)備驅(qū)動(dòng)代碼,使得目標(biāo)板支持 RS485 遠(yuǎn)程通信方式,;將 YAFFS2 文件系統(tǒng)的相關(guān)補(bǔ)丁添加到內(nèi)核源碼;修改內(nèi)核根目錄下的 Makefile 文件并對(duì)內(nèi)核進(jìn)行裁剪,使生成的內(nèi)核既滿足我們的要求,占用空間又小;最后借助于 TFTP 軟件在目標(biāo)板進(jìn)行移植。 第五章介紹嵌入式文件系統(tǒng)結(jié)構(gòu),尤其是 YAFFS2 文件系統(tǒng),介紹了文件系統(tǒng)制作工具 Busybox,并詳細(xì)給出了該文件系統(tǒng)的編譯和移植過(guò)程。當(dāng) Linux系統(tǒng)啟動(dòng)時(shí),可以成功的掛載 YAFFS2 文件系統(tǒng)并能穩(wěn)定的運(yùn)行。 第六章分析嵌入式設(shè)備驅(qū)動(dòng)開(kāi)發(fā)流程,重點(diǎn)對(duì)驅(qū)動(dòng)程序中的幀緩沖技術(shù)進(jìn)行了研究。針對(duì)本目標(biāo)板,采取直接讀寫(xiě) GPIO 口和幀緩沖相互結(jié)合的方式來(lái)開(kāi)發(fā)驅(qū)動(dòng),并且在該 LCD設(shè)備上,改善原來(lái)采用的描點(diǎn)方式繪制的圖形用戶界面,采取基于 Qt/Embedded 的圖形用戶界面,也需要支持幀緩沖技術(shù)。但本目標(biāo)板上的 LCD 設(shè)備顯示控制器并不支持緩沖區(qū)的自動(dòng)更新,在這里我們借助內(nèi)核定時(shí)器完成自動(dòng)更新并實(shí)時(shí)的顯示到 LCD 界面上。最終開(kāi)發(fā)了基于 Qt/Embedded 的用戶圖形界面驗(yàn)證該幀緩沖驅(qū)動(dòng)的可靠性、穩(wěn)定性,結(jié)果表明該驅(qū)動(dòng)可以穩(wěn)定的運(yùn)行于嵌入式 Linux系統(tǒng)中。 第七章總結(jié)與展望,對(duì)本文所完成的工作進(jìn)行了總結(jié);并展望嵌入式領(lǐng)域的未來(lái)。京郵電大學(xué)碩士研究生學(xué)位論文 第二章 搭建嵌入式 Linux 開(kāi)發(fā)平臺(tái) 6 源供編譯過(guò)程使用,就需要借助主機(jī),在主機(jī)中完成編譯,采用交叉編譯技術(shù),可以利用主機(jī)足夠的資源編譯成功后移植到目標(biāo)機(jī)上運(yùn)行。Linux下的交叉編譯環(huán)境包括: (1)針對(duì)目標(biāo)系統(tǒng)的編譯器 (2)針對(duì)目標(biāo)系統(tǒng)的二進(jìn)制編譯工具 (3)目標(biāo)系統(tǒng)的標(biāo)準(zhǔn) c 庫(kù) (4)目標(biāo)系統(tǒng)的 Linux 內(nèi)核頭文件 2.2.1 arm-none-Linux-gnueabi-gcc 的安裝 本系統(tǒng)中 Uboot、kernel、文件系統(tǒng)的編譯工具鏈都是統(tǒng)一的,所選擇的都是arm-none-Linux- gnueabi- gcc,我們?cè)谶@里選擇下載制作好的交叉編譯鏈,然后稍作修改就能為我們所用。下載的壓縮包:arm-2008q1-126-arm-none-Linux-gnueabi-i686-pc-Linux-gnu.tar。 解壓后里面的 arm-none-Linux-gnueabi-gcc 就是我們要用的交叉編譯鏈。 在/etc/bash.bashrc 中修改 PATH 環(huán)境變量,添加工具鏈的路徑:$ export PATH=$PATH: /home/teen/arm- linu/arm-2008q1/bin,保存退出,重新登錄 root 時(shí)新的環(huán)境變量就會(huì)生效。 2.2.2 TFTP 和 NFS 的配置 在進(jìn)行移植內(nèi)核鏡像文件和根文件系統(tǒng)時(shí),Uboot 通過(guò) TFTP 協(xié)議將二者下載到目標(biāo)板的 SDRAM 中,因此要在宿主機(jī)上設(shè)置 TFTP 服務(wù)器。當(dāng)利用 NFS 文件系統(tǒng)共享文件時(shí),還需在宿主機(jī)上設(shè)置 NFS 服務(wù)器。在本系統(tǒng)中,宿主機(jī)的 IP 為 8,網(wǎng)關(guān)為0 ,子網(wǎng)掩碼為 ,目標(biāo)板的 IP 為 9 。 NFS 目錄/home/teen/nfsroot。 2.3 本章小結(jié) 本章首先介紹了硬件開(kāi)發(fā)平臺(tái)參數(shù),然后詳細(xì)闡述了交叉編譯環(huán)境搭建的過(guò)程,同時(shí)在Linux 主機(jī)上配置了 TFTP 和 NFS 服務(wù)器,為后續(xù)嵌入式源碼編譯、調(diào)試以及最終鏡像移植做好準(zhǔn)備。京郵電大學(xué)碩士研究生學(xué)位論文 第三章 BootLoader 的設(shè)計(jì)與移植 7 第三章 BootLoader 的設(shè)計(jì)與移植 3.1 BootLoader 概述 在嵌入式 Linux系統(tǒng)中,通??煞譃樗膫€(gè)層次,這四個(gè)層次自上而下依次是:用戶應(yīng)用程序,文件系統(tǒng),操作系統(tǒng)內(nèi)核,引導(dǎo)加載程序。其中引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼,由固件中的 Boot 代碼和 BootLoader 兩大部分組成。其中 BootLoader 運(yùn)行在操作系統(tǒng)之前,為操作系統(tǒng)的調(diào)用做準(zhǔn)備。在調(diào)用操作系統(tǒng)之前,BootLoader 完成的工作主要有初始化目標(biāo)板軟硬件設(shè)備、建立內(nèi)存映射圖、設(shè)置好系統(tǒng)軟硬件環(huán)境22。圖 3.1給出了整個(gè) BootLoader 的工作流程。 經(jīng)過(guò)矢量表跳轉(zhuǎn),進(jìn)入特權(quán)模式,關(guān)閉中斷 一個(gè)事件引起 boot(例如上電、復(fù)位、看門狗超時(shí)) 初始化處理 清除指令和 cache 重定位Uboot后半部代碼到內(nèi)存,跳轉(zhuǎn)執(zhí)行 建立堆棧和初始化數(shù)據(jù)段 初始化并檢查硬件系統(tǒng)其他部件(串口、網(wǎng)口) 重定位 Uboot 后半部代碼到內(nèi)存,跳轉(zhuǎn)執(zhí)行 建立堆棧和初始化數(shù)據(jù)段,初始化并檢查硬件系統(tǒng)(串口、網(wǎng)口) 顯示各種檢測(cè)信息及 boot 菜單 尋找內(nèi)核并引導(dǎo),依次尋找下列設(shè)備(串口、網(wǎng)口、flash) 將操作系統(tǒng)內(nèi)核引導(dǎo)到 SDRAM 操作系統(tǒng)內(nèi)核拷貝到 flash? 拷貝到 flash 跳轉(zhuǎn)到 SDRAM中操作系統(tǒng)入口 N 圖 3.1 BootLoader 工作流程圖 Y 京郵電大學(xué)碩士研究生學(xué)位論文 第一章 緒論 2 讀,不能獲得某一個(gè)時(shí)刻所有用戶的用電統(tǒng)計(jì)數(shù)據(jù)。這樣得到的數(shù)據(jù)參考性不大,不方便供電部門對(duì)用電進(jìn)行合理的分配管理。正是基于自動(dòng)抄表系統(tǒng)如此多的優(yōu)勢(shì),近年來(lái)無(wú)論是國(guó)內(nèi)還是國(guó)外,對(duì)自動(dòng)抄表系統(tǒng)的研究一直是熱點(diǎn)之一。一般自動(dòng)抄表系統(tǒng)由主站、集中器、采集器、終端電能表以及數(shù)據(jù)傳輸通道構(gòu)成,一般遠(yuǎn)程電力抄表系統(tǒng)的系統(tǒng)架構(gòu)如圖 1.1 所示: 圖 1.1 自動(dòng)抄表系統(tǒng)架構(gòu) 我們?cè)谶@里研究的是自動(dòng)抄表系統(tǒng)中的集中器,因?yàn)榧衅鞯拈_(kāi)發(fā)是遠(yuǎn)程抄表系統(tǒng)開(kāi)發(fā)的核心任務(wù)之一11,集中器在整個(gè)系統(tǒng)中的地位十分重要,相當(dāng)于人體脊椎,起承上啟下作用。集中器向上連接著主站服務(wù)器,負(fù)責(zé)接收并下達(dá)主站服務(wù)器命令,對(duì)電網(wǎng)的數(shù)據(jù)進(jìn)行監(jiān)控或者抄讀采集器數(shù)據(jù);向下連接著采集器或者是終端電表,讀取采集數(shù)據(jù)或終端電表數(shù)據(jù)進(jìn)行存儲(chǔ)并上傳至主站服務(wù)器以便進(jìn)行數(shù)據(jù)處理。除此之外,集中器還應(yīng)具有顯示、統(tǒng)計(jì)以及報(bào)警功能等,以便能實(shí)現(xiàn)現(xiàn)場(chǎng)調(diào)試檢查與設(shè)置12;同時(shí),集中器也可以和不同的接口設(shè)備進(jìn)行相連,如圖 1.1 中的手持終端。鑒于集中器在整個(gè)自動(dòng)抄表系統(tǒng)中的關(guān)鍵地位,無(wú)論是對(duì)硬件平臺(tái)還是軟件平臺(tái),對(duì)集中器系統(tǒng)進(jìn)行改進(jìn)都是積極的意義。本文以南京某電力公司的集中器為背景,展開(kāi)對(duì)集中器的軟件部分的研究。 1.1.2 研究?jī)?nèi)容 本文研究的集中器,硬件平臺(tái)是南京某電力公司提供的,該集中器采用的處理芯片是ATMEL 公司生產(chǎn)的 AT91SAM9260EK,內(nèi)存 32M,配有一個(gè) 160*160 的 LCD(UC1698U)。京郵電大學(xué)碩士研究生學(xué)位論文 第三章 BootLoader 的設(shè)計(jì)與移植 8 3.2 BootLoader 的操作模式 一般來(lái)講,BootLoader 有兩種操作模式,包括啟動(dòng)加載模式和下載模式。這種操作模式的劃分是對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)的。 (1)啟動(dòng)加載模式 即自主模式,整個(gè)啟動(dòng)過(guò)程無(wú)需用戶的介入,BootLoader 自主將操作系統(tǒng)從目標(biāo)機(jī)上的存儲(chǔ)設(shè)備中加載到目標(biāo)板的 SDRAM 中運(yùn)行。這種自主啟動(dòng)加載模式,是最終發(fā)布版本,也是我們用戶在日常生活中所看到的啟動(dòng)模式。 (2)下載模式 在該模式下,目標(biāo)機(jī)的 BootLoader 將通過(guò)串口或者網(wǎng)口等方式與宿主機(jī)通信并下載文件(包括內(nèi)核鏡像文件、根文件系統(tǒng)鏡像等)。從宿主機(jī)下載的文件通常首先保存在目標(biāo)機(jī)的內(nèi)存中,然后根據(jù)實(shí)際情況在內(nèi)存中執(zhí)行或者寫(xiě)到目標(biāo)板上的 FLASH 等非易失存儲(chǔ)設(shè)備中。當(dāng) BootLoader 工作在此模式下時(shí),通常需要向它的終端用戶提供相應(yīng)的命令接口23。 本系統(tǒng)中使用的是 Uboot,既支持啟動(dòng)加載模式,又可以通過(guò)用戶的介入進(jìn)入下載模式。在兩種模式間,用戶可以根據(jù)需要進(jìn)行切換。Uboot 在啟動(dòng)時(shí),首先默認(rèn)進(jìn)入的是啟動(dòng)加載模式,但是在啟動(dòng) Uboot 后、加載內(nèi)核鏡像文件之前,Uboot 會(huì)提供一定時(shí)間等待用戶的干預(yù),該時(shí)間是由宏 CONFIGBOOTDELAY 定義的,若用戶進(jìn)行了干預(yù),則會(huì)切換到下載模式,反之繼續(xù)執(zhí)行加載內(nèi)核鏡像文件。 3.3 Uboot 的源碼結(jié)構(gòu) Uboot,全稱 Universal Boot Loader,是遵循 GPL 條款的開(kāi)放源碼項(xiàng)目。其源碼目錄以及編譯形式與 Linux內(nèi)核及其的相似。除此之外,Uboot 可靠性高、穩(wěn)定性強(qiáng)、適用性好,支持多個(gè)處理器系列、多種嵌入式操作系統(tǒng)內(nèi)核
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 絲綢產(chǎn)業(yè)國(guó)際市場(chǎng)多元化戰(zhàn)略考核試卷
- 冷藏食品的調(diào)味品添加與控制考核試卷
- 五金店全渠道零售的顧客價(jià)值評(píng)估模型構(gòu)建考核試卷
- 設(shè)備數(shù)據(jù)備份周期規(guī)劃考核試卷
- 2024年事業(yè)單位考試云南省昆明市富民縣《公共基礎(chǔ)知識(shí)》最后沖刺試題含解析
- 安全生產(chǎn)法規(guī)培訓(xùn)
- 江蘇省無(wú)錫市普通高中2024-2025學(xué)年高一下學(xué)期期末歷史試卷(含答案)
- 漢服派發(fā)禮物活動(dòng)方案
- 江盛公司團(tuán)購(gòu)活動(dòng)方案
- 樓盤政策活動(dòng)方案
- 農(nóng)貿(mào)市場(chǎng)信息化管理系統(tǒng)建設(shè)
- 人機(jī)料法環(huán)制造
- 2024新版(湘少版)三年級(jí)英語(yǔ)上冊(cè)單詞帶音標(biāo)
- 醫(yī)療器械公司組織機(jī)構(gòu)圖以及部門設(shè)置和崗位職責(zé)說(shuō)明
- 花都區(qū)2024年小升初語(yǔ)文試卷
- 汛期安全隱患重點(diǎn)排查清單
- 吉林省吉林市永吉縣2023-2024學(xué)年八年級(jí)下學(xué)期期末考試英語(yǔ)試題(解析版)
- 2024年湖北潛江市招商服務(wù)中心招聘3人歷年高頻難、易點(diǎn)(公務(wù)員考試共300題含答案)模擬試卷匯編
- 初中學(xué)校教學(xué)常規(guī)培訓(xùn)
- 咖啡拉花培訓(xùn)課程
- 2024年度醫(yī)患溝通課件
評(píng)論
0/150
提交評(píng)論