• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于S3C2410X的嵌入式Linux系統(tǒng)的構(gòu)建

      2019-03-13 14:26:40鮑尚東王杰
      山東工業(yè)技術(shù) 2019年5期
      關(guān)鍵詞:驅(qū)動(dòng)程序

      鮑尚東 王杰

      摘 要:針對(duì)嵌入式系統(tǒng)的特點(diǎn),本文較詳細(xì)的給出了嵌入式linux系統(tǒng)的構(gòu)建流程和方法。主要分為開發(fā)環(huán)境的建立,linux的安裝和編譯器的制作。bootloader、linux內(nèi)核、文件系統(tǒng)的移植以及驅(qū)動(dòng)程序編寫。

      關(guān)鍵詞:linux;bootloader;根文件系統(tǒng);驅(qū)動(dòng)程序

      DOI:10.16640/j.cnki.37-1222/t.2019.05.144

      企業(yè)對(duì)嵌入式linux工程師的需求量大,所以嵌入式linux的開發(fā)是一門熱門的領(lǐng)域。嵌入式linux系統(tǒng)的開發(fā)涉及到硬件電路的設(shè)計(jì)、操作系統(tǒng)的移植、驅(qū)動(dòng)程序的編寫、應(yīng)用程序的開發(fā)等主要方面。本文研究了基于S3C2410X的嵌入式linux系統(tǒng)的構(gòu)建。

      1 系統(tǒng)總體硬件設(shè)計(jì)

      硬件系統(tǒng)采用模塊化的設(shè)計(jì)思想,核心部分是三星公司的S3C2410X處理器。外圍擴(kuò)展有LCD液晶顯示屏、UART通道、以太網(wǎng)、鍵盤、主從USB,總線接口等主要器件。

      2 開發(fā)環(huán)境的建立

      2.1 宿主機(jī)linux的安裝

      嵌入式linux開發(fā)需要在計(jì)算機(jī)上安裝linux操作系統(tǒng)提供編譯開發(fā)環(huán)境,通常稱為宿主機(jī)。有多種方案可行,一是直接在計(jì)算機(jī)上安裝雙操作系統(tǒng),二是建立獨(dú)立的linux服務(wù)器,三是在windows環(huán)境下安裝WMware虛擬機(jī)(linux)的方式,本文采用第三種方案適合初學(xué)者。在WMware中安裝Red Hat9操作系統(tǒng)[1]。

      2.2 構(gòu)建交叉開發(fā)工具鏈

      交叉工具鏈俗稱編譯器,一是直接從相關(guān)網(wǎng)站下載,二是分步式構(gòu)建交叉工具鏈,三是通過crosstool腳本工具集構(gòu)建,這里采用的是crosstool-0.43版本,查看crosstool里的匹配文本,從相關(guān)網(wǎng)站下載工具鏈所需要的軟件包,主要包含gcc、binutils、glibc、linux內(nèi)核頭文件。所有文本無需解壓直接放在相關(guān)目錄里,利用vi編輯器打開demo-arm9tdmi.sh文件進(jìn)行修改,修改完后運(yùn)行該腳本程序,最終在宿主機(jī)的linux系統(tǒng)相關(guān)目錄里生成gcc編譯器。

      3 bootloader的移植

      啟動(dòng)引導(dǎo)程序bootloader主要完成系統(tǒng)啟動(dòng)時(shí)的硬件初始化工作并能夠?qū)⒉僮飨到y(tǒng)給啟動(dòng)引導(dǎo)起來,另外其包含必要的驅(qū)動(dòng)程序和命令,能與宿主機(jī)進(jìn)行通信執(zhí)行下載等現(xiàn)關(guān)操作。u-boot可以針對(duì)多種處理器并不是為某一處理器而開發(fā)的,適用范圍更廣,但其在使用前需要針對(duì)特定硬件平臺(tái)做修改,完成移植工作。vivi是韓國mizi公司針對(duì)三星的ARM系列處理器開發(fā)的一款bootloader具有專用性,使用方便等特點(diǎn)。網(wǎng)上也有該bootloader的變種,功能更強(qiáng)大。利用vivi編輯器打開Makefile文件,修改ARCH=arm,CROSS_COMPILE=gcc的絕對(duì)路徑。執(zhí)行make menuconfig執(zhí)行相關(guān)的配置,最后運(yùn)行make生成可執(zhí)行文件vivi 。

      4 Linux-2.6內(nèi)核的移植

      linux內(nèi)核是整個(gè)系統(tǒng)的核心與靈魂。它是一種開源軟件,可以從相關(guān)網(wǎng)站下載,目前主流的處理器均能支持。在移植之前需要對(duì)其進(jìn)行修改,首先要針對(duì)特定硬件平臺(tái)的軟件部分進(jìn)行修改,由于linux社區(qū)的維護(hù)工作,這部分工作已經(jīng)大大減輕,修改Makefile文件,輸入make menuconfig對(duì)linux-2.6內(nèi)核進(jìn)行必要的配置,該項(xiàng)工作很重要,關(guān)系到可執(zhí)行內(nèi)核的大小和實(shí)用性。

      5 根文件系統(tǒng)的構(gòu)建

      文件系統(tǒng)是計(jì)算機(jī)對(duì)數(shù)據(jù)進(jìn)行某種組織和管理的方式,根文件系統(tǒng)是linux啟動(dòng)后掛載的第一個(gè)文件系統(tǒng)[2]。首先制作根目錄例如etc、dev、sbin、bin等目錄,盡可能按著文件系統(tǒng)標(biāo)準(zhǔn)來制作目錄。linux是類似于unix的命令系統(tǒng),在嵌入式開發(fā)中可以通過busybox來制作相關(guān)的命令。編寫etc目錄下的腳步配置文件,例如rcS、inittab、profile等腳步程序。

      6 驅(qū)動(dòng)程序的編寫

      驅(qū)動(dòng)程序的編寫屬于底層開發(fā),其工作量相對(duì)較小,但難度較大,要求開發(fā)者具有較深厚的硬件,C語言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。Linux驅(qū)動(dòng)程序分為字符驅(qū)動(dòng),快驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)。字符驅(qū)動(dòng)是我們經(jīng)常要編寫的驅(qū)動(dòng)程序,所有要理解字符驅(qū)動(dòng)的編寫規(guī)則。驅(qū)動(dòng)程序稱為設(shè)備文件,字符驅(qū)動(dòng)通過open()函數(shù)打開,read()、write()等對(duì)其讀寫,所有這些操作函數(shù)都是通過file_operations這個(gè)數(shù)據(jù)結(jié)構(gòu)對(duì)其進(jìn)行訪問[3]。

      7 結(jié)論

      本文針對(duì)S3C2410X處理器構(gòu)建了linux系統(tǒng),該系統(tǒng)是一個(gè)完整的嵌入式系統(tǒng),屬于底層開發(fā),能夠可靠運(yùn)行,能支持后續(xù)多種應(yīng)用程序的開發(fā)。

      參考文獻(xiàn):

      [1]陳賾等.ARM嵌入式技術(shù)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2011:288-290.

      [2]文宇波.構(gòu)建和移植嵌入式Linux的根文件系統(tǒng)[J].微計(jì)算機(jī)信息,2010年26-5-2:65-67.

      [3]韋東山.嵌入式Linux應(yīng)用開發(fā)安全手冊(cè)[M].北京:人民郵電出版社,2008:384-389.

      基金項(xiàng)目:國家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目:基于ARM的嵌入式linux研究(編號(hào):201810383059)

      作者簡介:鮑尚東(1980-),男,安徽巢湖人,碩士研究生,助教,研究方向:嵌入式系統(tǒng)。

      猜你喜歡
      驅(qū)動(dòng)程序
      計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
      電子制作(2018年17期)2018-09-28 01:56:58
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      如何為老顯卡安裝Windows7驅(qū)動(dòng)程序? 等
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序的真心話和大冒險(xiǎn)
      林芝县| 中山市| 新化县| 阿克苏市| 虹口区| 眉山市| 广汉市| 越西县| 克拉玛依市| 滦南县| 白沙| 黑山县| 行唐县| 丹凤县| 呼图壁县| 临泉县| 常宁市| 宁南县| 台中县| 荃湾区| 喀喇| 遂溪县| 隆安县| 临清市| 阳江市| 扎鲁特旗| 桃园市| 寻乌县| 额尔古纳市| 阿克| 兖州市| 无极县| 四平市| 屯昌县| 汾阳市| 新乡县| 达拉特旗| 盐城市| 商水县| 绥化市| 永城市|