亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式Linux系統(tǒng)在S3C2410上的移植實(shí)現(xiàn)

        2008-04-26 03:32:16趙瑞娟李敬兆
        關(guān)鍵詞:嵌入式操作系統(tǒng)移植

        趙瑞娟 李敬兆

        摘 要: 首先對(duì)嵌入式Linux操作系統(tǒng)內(nèi)核和S3C2410處理器進(jìn)行了簡(jiǎn)單介紹,在此基礎(chǔ)上,對(duì) 系統(tǒng)引導(dǎo)程序進(jìn)行了設(shè)計(jì),重點(diǎn)介紹了將Linux移植到S3C2410處理器的步驟和方法,并對(duì)移 植過程的關(guān)鍵部分進(jìn)行了詳細(xì)闡述。編譯生成的內(nèi)核在嵌入式系統(tǒng)中運(yùn)行穩(wěn)定,結(jié)果證明方 法可行,對(duì)于開發(fā)其它嵌入式系統(tǒng)具有參考意義。

        關(guān)鍵詞:嵌入式操作系統(tǒng);移植;Linux;S3C2410

        中圖分類號(hào): TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-1098(2008)03-0073-04

        1 Linux內(nèi)核和實(shí)驗(yàn)系統(tǒng)簡(jiǎn)介

        嵌入式操作系統(tǒng)作為大多數(shù)嵌入式應(yīng)用系統(tǒng)的軟件平臺(tái),它管理著系統(tǒng)的資源,為應(yīng)用 軟件提供各種必要的服務(wù)。在嵌入式應(yīng)用系統(tǒng)中使用嵌入式操作系統(tǒng),已是大勢(shì)所趨。目前 嵌入式操作系統(tǒng)的種類繁多,但Linux以其源代碼開放和可移植性強(qiáng)等特點(diǎn),被廣泛使用。 本文將介紹如何將內(nèi)核版本為2.4.18的Linux移植到基于ARM920T的S3C2410處理器上。

        1.1 Linux操作系統(tǒng)內(nèi)核

        Linux操作系統(tǒng)主要由內(nèi)核、shell、文件結(jié)構(gòu)組成,其中內(nèi)核是靈魂,負(fù)責(zé)整個(gè)系統(tǒng)的 內(nèi)存管理、進(jìn)程調(diào)度和文件管理。Linux內(nèi)核與大部分UNIX內(nèi)核一樣是單內(nèi)核體系結(jié)構(gòu)的, 能夠根據(jù)需要定制內(nèi)核映像的尺寸,具有很大靈活性,不需要重新編譯內(nèi)核和引導(dǎo)就能檢驗(yàn) 新的內(nèi)核組件,這個(gè)特性對(duì)于嵌入式而言是非常有好處的,方便用戶構(gòu)筑自己的個(gè)人內(nèi)核。 Linux內(nèi)核有五個(gè)主要的子系統(tǒng)組成:進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口和進(jìn) 程間通信。

        本文將對(duì)內(nèi)核版本為2.4.18的Linux進(jìn)行移植,其內(nèi)核代碼分布如圖1所示。

        (1) /arch目錄包含了目前Linux支持的硬件結(jié)構(gòu)——如i386、alpha、arm等的內(nèi)核代碼;

        (2) /drives目錄包含了內(nèi)核中所有的設(shè)備驅(qū)動(dòng)程序;

        (3) /fs目錄包含了所有的文件系統(tǒng)的代碼;

        (4) /include目錄包含了建立內(nèi)核代碼所需要的大部分庫(kù)文件,這個(gè)模塊利用其它模塊重建 內(nèi)核;

        (5) /init目錄包含了內(nèi)核的初始化代碼,內(nèi)核從此處運(yùn)行;

        (6) /ipc目錄包含了進(jìn)程間通信代碼;

        (7) /kernel子目錄包含了主內(nèi)核代碼;

        (8) /mm目錄包含所有獨(dú)立于CPU體系結(jié)構(gòu)的內(nèi)存管理代碼;

        (9) /net目錄包含了和網(wǎng)絡(luò)相關(guān)的代碼,如ipv4、ipv6等。

        一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件,這兩個(gè)文件都是編譯時(shí)使用 的輔助文件。

        1.2 S3C2410處理器

        S3C2410是SAMSUNG公司基于ARM920T處理器內(nèi)核開發(fā)的一款16/32位嵌入式處理器,運(yùn)行 頻率高達(dá)200多MHz,具有MMU和高速緩存等豐富片上資源,可以廣泛用于PDA、internet設(shè)備 和手持式設(shè)備。其片上集成的功能主要包括以下幾個(gè)方面:

        (1) 1.8V ARM 內(nèi)核,3.3V存儲(chǔ)器,3.3V外部I/O, 具有16kB指令緩存/16kB數(shù)據(jù)緩存和MMU 的微處理器;

        (2) 外部存儲(chǔ)控制器(SDRAM 控制和片選邏輯);

        (3) LCD控制器(支持上到4k色的STN和256k色的TFT), I通道LCD專 用DMA;

        (4) 具有外部請(qǐng)求引腳的4通道DMA;

        (5) 3通道UART, 2通道SPI;

        (6) 1通道IIC總線控制器,1通道US總線控制器;

        (7) 1.0版本的SD主機(jī)接口和兼容的2-11版本的Multi-Media卡協(xié)議;

        (8) 2端口 USB 主機(jī),1端口 USB 設(shè)備(USB1.1);

        (9) 4通道PWM定時(shí)器,1通道內(nèi)部定時(shí)器;

        (10) 看門狗電路;

        (11) 117個(gè)通用I/O口,24通道外部中斷源;

        (12) 電源控制:常規(guī)、緩慢、空閑和斷電模式;

        (13) 8通道10位ADC和觸摸屏接口;

        (14) 具有日歷功能的實(shí)時(shí)時(shí)鐘RTC;

        (15) 具有鎖相環(huán)的片上時(shí)鐘發(fā)生器。

        2 將Linux移植到S3C2410

        2.1 移植思路

        首先要為L(zhǎng)inux設(shè)計(jì)一個(gè)BootLoader,通過BootLoader來初始化硬件,引導(dǎo)Linux運(yùn)行。 Bootloader設(shè)計(jì)可以在ads中實(shí)現(xiàn)。然后,針對(duì)硬件環(huán)境和設(shè)計(jì)的 BootLoader修改Linux內(nèi) 核。接下來,在Linux操作系統(tǒng)下建立交叉編譯環(huán)境。最后,配置、編譯、連接Linu x,下 載編譯得到的映像文件到Flash,通過BootLoader 來啟動(dòng)嵌入式操作系統(tǒng)Linux。

        2.2 Boot Loader的設(shè)計(jì)

        引導(dǎo)加載程序通常稱為Boot Loader,就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序 。通過這段小程序,初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而建立適當(dāng)?shù)南到y(tǒng)軟硬件 環(huán)境,為調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備。

        本系統(tǒng)Boot Loader的第一階段主要完成基本的硬件初始化,用匯編語(yǔ)言實(shí)現(xiàn):①關(guān)閉w atchdog,屏蔽所有中斷;②設(shè)置處理器時(shí)鐘和工作頻率,CPU工作頻率為200 M Hz;③初始化外部寄存器;④初始化堆棧指針SP;⑤拷貝Boot Loader的第二階段到RAM空間 中,使用一個(gè) 跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)到第二階段的main入口函數(shù)。在完成以上操作后就為main函數(shù)的運(yùn)行建立起了 一個(gè)基本的環(huán)境。

        第二階段用C語(yǔ)言完成:①通用I/O口的設(shè)置;②完成內(nèi)存映射初始化和內(nèi)存管理單元初 始化:men璤map璤init(); mmu璤init(); 這兩個(gè)函數(shù)在/arch/s3c2410/mmu.c中;③初 始化mtd設(shè)備:mtd璤dev璤init();這個(gè)函數(shù)在/drivers/mtd/maps/s3c2410璤flash.c中 ;④拷貝flash中的kernel映像和根文件系統(tǒng)映像到RAM空間中;⑤跳轉(zhuǎn)到內(nèi)核的第 一條指令 處。跳轉(zhuǎn)時(shí)需要滿足下列條件:R0為0;R1為機(jī)器類型ID;禁止中斷(IRQ和FIQ);C PU設(shè)置 為SVC模式(SVC是供操作系統(tǒng)使用的一種保護(hù)模式);關(guān)閉MMU;關(guān)閉數(shù)據(jù)Cache。至此Boot Loader的任務(wù)結(jié)束。

        2.3 Linux內(nèi)核的修改

        假定內(nèi)核代碼放在/usr/src/Linux-2.4.18目錄下

        (1) 打開根目錄下的Makefile文件 此文件用來指定編譯規(guī)則,例如哪些需要編譯,哪些 需要先編譯。

        指定目標(biāo)平臺(tái):Arch=arm;

        指定交叉編譯器:添加CROSS璤COMPILE=arm-linux-。

        (2) 打開/arch/arm目錄下的Makefile文件 啟動(dòng)代碼的產(chǎn)生需要通過此文件,由于2.4內(nèi) 核還沒有對(duì)S3C2410的支持,在此添加如下代碼:

        ifeq((CONFIG璤ARCH璤S3C2410),y)

        TEXTADDR=0xC0008000

        MACHINE=s3c2410

        Endif

        TEXTADDR是內(nèi)核的最終運(yùn)行地址,該位置一般在RAM區(qū)起始地址偏移0x8000處(RAM起始地址 到偏移0x8000之間的32KB空間中存放一些全局?jǐn)?shù)據(jù)結(jié)構(gòu)如啟動(dòng)參數(shù)、內(nèi)存頁(yè)表等信息)。

        猜你喜歡
        嵌入式操作系統(tǒng)移植
        典型實(shí)時(shí)嵌入式操作系統(tǒng)應(yīng)用分析
        基于FreeRTOS系統(tǒng)和LwIP協(xié)議棧的網(wǎng)絡(luò)通訊
        西方音樂元素在二胡演奏中的移植
        “移植”瘦人糞便能減肥?
        基于嵌入式操作系統(tǒng)的工業(yè)采集板設(shè)計(jì)
        應(yīng)用服務(wù)型人才培養(yǎng)體系下的嵌入式操作系統(tǒng)教學(xué)改革探索
        計(jì)算機(jī)嵌入式操作系統(tǒng)研究
        色窝窝手在线视频| av网页免费在线观看| 久久综合精品人妻一区二区三区 | 亚洲高清精品一区二区| av在线播放免费观看| 邻居美少妇张开腿让我爽了一夜| 国产av无码专区亚洲av男同| 久久久久人妻精品一区蜜桃| 亚洲免费观看网站| 亚洲中文字幕久爱亚洲伊人| 国产目拍亚洲精品区一区| 99久久精品人妻少妇一| 91九色老熟女免费资源| 无码日韩精品一区二区三区免费| 日韩一区二区肥| 少妇性l交大片免费快色| 东北女人啪啪对白| 无码精品人妻一区二区三区人妻斩| 在线a亚洲视频播放在线观看 | 午夜福利理论片在线观看| 久久人妻公开中文字幕| 色琪琪一区二区三区亚洲区| 国产av在线观看一区二区三区| 国产精品久久久久一区二区三区| 麻豆高清免费国产一区| 欧美日韩综合在线视频免费看 | 国产精品日本天堂| 日本一区二区三区经典视频| 日日碰狠狠添天天爽五月婷| 91麻豆精品激情在线观看最新| 精品女同av一区二区三区| 无套内谢孕妇毛片免费看| 亚洲啪啪综合av一区 | 日韩精品一区二区在线视| 欧美性猛交99久久久久99按摩| 亚州国产av一区二区三区伊在| 国产无遮挡又黄又爽在线观看| 国产在线视频国产永久视频| 一区二区三区高清视频在线| 成 人 免 费 黄 色| 国产乱子伦一区二区三区|