999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ARM Linux在TE2410開發板上的移植

2008-12-31 00:00:00閆國英張吉寇
電腦知識與技術 2008年31期

摘要:簡要介紹了TE2410開發板的硬件特性,重點闡述了Linux 內核在ARM9上的移植過程。其中包括:建立交叉編譯環境、系統內核的移植和根文件系統的移植等。移植后的操作系統在開發板上運行穩定,并且可以根據需要編寫應用程序,將該開發板用于工業控制。

關鍵詞:ARM Linux;TE2410;移植;Bootloader

中圖分類號:TP311.54文獻標識碼:A文章編號:1009-3044(2008)31-0915-02

Porting ARM Linux to TE2410 Board

YAN Guo-yingZHANG Ji-kou

(Hebei University, Baoding 071002, China)

Abstract:The hardware properties of TE2410 board are presented. The technique of Porting ARM Linux to TE2410 board are introduced in this paper. All the work consists of the building the cross compile environment,the Porting of ARM Linux kernel and the Porting of root File system. After finished the porting successfully,the system run stable on the board. We can design application programme to meet control requirements.

Key words: ARM Linux; TE2410; Porting; Bootloader

1 引言

ARMLinux是一個將Linux內核移植到各種基于ARM處理器的目標系統的項目,由RussellKing主持,已經為超過100種不同的目標機器成功完成了移植工作[1]。本文以TE2410 ARM9開發板為開發平臺,詳細介紹了Linux內核在ARM9上的移植過程。其中包括:建立交叉編譯環境、內核的配置和編譯、內核文件的燒寫、根文件系統的移植等。移植成功后開發人員可以直接調用Linux 已經集成好的各種函數及接口,為新產品早日上市及搶占最有利的市場提供了幫助。

2 TE2410開發板介紹

不同的硬件平臺所定制的Bootloader和Linux系統內核是不同的。本設計中用到的Bootloader是vivi,版本:0.1.4。開發主機和目標板卡通過串口相連。設計的目標平臺為TE2410-1型開發板,基于三星公司的S3C2410X處理器,采用6層板設計。S3C2410X使用ARM920T內核,內部帶有MMU(內存處理單元),適用于設計移動手持設備類產品。

TE2410-1型開發板具有以下主要特性:CPU采用S3C2410XARM9內核,穩定運行200M與258M;64M SDRAM內存;64M nandflash.采用yaffs文件系統可以安全可靠的讀寫;基于cs8900a的10M網絡;顯示最高可以達到800x600的VGA和TV輸出;基于uda1341的聲音輸入輸出;1個標準串口, 2個usb host,1個usb device,標準SD卡接口,標準20pin JTAG接口;CPU內置STN/CSTN/TFT LCD控制器,支持1024*76分辨率下的各種液晶;板上4個按鍵5個led;留出總線插座,供用戶擴展其他產品用。系統的 Bootloader和Linux內核都是基于以上硬件資源配置的。

3 移植過程

3.1建立交叉編譯環境

移植的Linux內核版本為Linux2.6.22.1,交叉編譯器(CROSS-COMPILE)版本為4.2.0,開發操作系統為Fedora 6,交叉編譯環境建立的具體步驟如下:

1)解壓文件:tar jxvf obsolete-gcc-4.2.0.tar.bz2;

2)把解壓的文件夾中的“4.2.0”文件夾拷貝到 /usr/local/arm目錄下。這里需要注意:如果沒有arm目錄就新建arm目錄,但是一定要是拷貝到這個目錄,不然不能運行;

3)在命令窗口輸入export PATH=/usr/local/arm/4.2.0/bin:$PATH;

4)如果輸入“arm-”然后按下tab鍵能自動補全命令 arm-linux-說明搭建成功。

3.2 內核配置和編譯

在TE2410板卡中,內核的配置和編譯主要涉及對下列文件的修改。

1)修改 Makefile:[root@localhost linux-2.6.22.1]# vi Makefile

ARCH ?=arm;CROSS_COMPILE ?=/usr/local/arm/arm-2007q1/bin/arm-none-eabi-

2)修改common-smdk.c文件

a. vivi 目錄下輸入vim ./arch/s3c2410/smdk.c命令,在mtd_partition_t default_mtd_partitions[] = {……}查看vivi的分區信息。

b. 根據vivi中的分區信息,在static struct mtd_partition smdk_default_nand_part[] = {……}

中設置內核分區。注意:內核分區信息必須和 vivi 的分區信息相同,否則分區表不能顯示,燒寫的內核也不能運行。TE2410 開發板的分區如表1所示。

c. 在 arch\\arm\\mach-s3c2410\\mach-smdk2410.c 文件中加入S3C2410X需要初始化的設備接口,主要包括對usb、lcd、i2c總線、nand等的初始化。命令格式如:

Startic struct platform_device *smdk2410_devices[] _initdata={

s3c_device_usb,

s3c_device_lcd;

……/*add here*/ }

3)禁止nand flash 的ECC:內核中的ECC校驗碼是由S3C2410中nand flash控制器產生的,一般內核燒寫時生成的ECC校驗碼與內核ECC不一致。所以,通常選擇禁止內核ECC校驗。步驟如下:打開drivers/mtd/nand/s3c2410.c ;搜索關鍵字NAND_ECC_SOFT,在s3c2410_nand_init_chip函數里修改NAND_ECC_SOFT為NAND_ECC_NONE。

4)支持啟動時掛載devfs:為了內核支持devfs以及在啟動時并在/sbin/init運行之前能自動掛載/dev為devfs文件系統,需要在[root@localhost linux-2.6.22]# vi fs/Kconfig找到menu \"Pseudo filesystems\"添加如下語句:

config DEVFS_FS bool \"/dev file system support (OBSOLETE)\" default y

config DEVFS_MOUNT bool \"Automatically mount at boot\" default y depends on DEVFS_FS

5)配置內核:輸入[root@localhost linux-2.6.21.1]# make xconfig命令,通過對選項的添加和去除,可以實現對內核資源的配置。主要內容如表2所示。

6)編譯內核:[root@localhost linux-2.6.22.1]# make zImage

3.3 燒寫linux內核到開發板上

1)在Windows下:將編譯生成的內核鏡像 zImage 拷貝到電腦的某個硬盤上,將和TE2410開發板配套的安裝光盤上所給的Mytftp.exe 文件拷貝到和 zImage 同一個文件夾下。

2)重啟開發板,到vivi 敲空格,然后在vivi> load flash kernel t

3)啟動 dos 命令:到zImage所在的文件夾下輸入 mytftp –i 192.168.0.12 PUT zImage

回車稍等就會出現vivi>表示燒寫成功。

3.4 根文件系統的移植

嵌入式Linux系統的根文件系統通常是以Ramdisk的方式存在的,Ramdisk的映像文件一般以壓縮的形式存放在Flash中,在內核啟動時將這個壓縮的文件解壓存放到內存中再作為根文件系統裝載。根文件系統的移植主要步驟如下:

1)下載用busybox制作好的root_china.tar.gz,解壓以后用命令進入root_china /dev,并輸入mknod console c51;

2)用制作工具mkcramfs將root_china 文件夾里的所有文件做成文件系統;

3)執行 ./mkcramfs root_chinaroot_china.cramfs將其制成可燒寫的cramfs文件系統。

4)燒寫到flash,方法與內核燒寫類似。

在步驟1中容易出現“ VFS: Mounted root (cramfs filesystem) readonly. Freeing init memory: 112K,Warning: unable to open an initial console”的現象?原因是不能正確掛接文件系統。在2.6以前的版本掛接文件系統時會在dev 文件夾下自動生成console 文件。在以后的版本不會自動生成,必須手動在此文件的節點上添加mknod console c51。

4 結論

在具有操作系統的嵌入式產品中Bootloader、操作系統內核、根文件系統是必需的,也是保證系統能運行的最小單元。本設計中TE2410開發板的配套光盤中有編譯好的Bootloader并已完成Bootloader的燒寫。本文主要實現了的Linux2.6.22.1內核和根文件系統的移植過程。移植后的操作系統在開發板上運行穩定,可以減少以后項目的開發周期。

參考文獻:

[1] 李程遠,劉文峰,李善平. ARMLinux在EP7312上的移植[J]. 計算機工程與設計,2003.7,24(7):73-76.

[2] 孫天澤等.嵌入式設計及Linux驅動開發指南—基于ARM9處理器[M].電子工業出版社,2007(1):191-214.

[3] 徐英慧.ARM9嵌入式系統設計——基于S3C2410與Linux[M].電子工業出版社, 2007(9):97-121.

主站蜘蛛池模板: 欧美伦理一区| 亚洲成AV人手机在线观看网站| 风韵丰满熟妇啪啪区老熟熟女| 亚洲一区免费看| 日本道中文字幕久久一区| 欧美区在线播放| 欧美日韩在线亚洲国产人| 亚洲国产成人综合精品2020 | 中文纯内无码H| 毛片在线区| 亚洲欧美成aⅴ人在线观看| 中文国产成人精品久久| 新SSS无码手机在线观看| 无码精品国产dvd在线观看9久| 国产视频你懂得| 少妇精品网站| 高清无码一本到东京热| 国产精品久久久久无码网站| 18禁高潮出水呻吟娇喘蜜芽| 国产精品浪潮Av| 欧美中文字幕在线视频 | 亚洲成人免费在线| 亚洲AV电影不卡在线观看| jizz亚洲高清在线观看| 国产农村精品一级毛片视频| 无码高潮喷水在线观看| 成人在线综合| 国产乱视频网站| 欧美中文字幕无线码视频| 国产精品亚洲一区二区三区在线观看| 欧美日韩第二页| 亚洲无码在线午夜电影| 国产男人天堂| 日韩免费毛片视频| 亚洲欧洲综合| 免费女人18毛片a级毛片视频| 国产精品性| 久久久亚洲国产美女国产盗摄| 欧美精品影院| 日韩天堂视频| 日本在线免费网站| 99re66精品视频在线观看 | 亚洲人成网站在线观看播放不卡| 国产欧美日韩视频一区二区三区| 97精品伊人久久大香线蕉| 亚洲女人在线| 青草国产在线视频| 亚洲国产精品无码久久一线| 九九热这里只有国产精品| 国产精品伦视频观看免费| 精品無碼一區在線觀看 | 国产你懂得| 欧美精品成人一区二区在线观看| 欧美精品高清| 2020精品极品国产色在线观看 | 9啪在线视频| www亚洲精品| 国产精品午夜电影| 欧美在线天堂| 丰满的少妇人妻无码区| 精品国产网站| 精品福利一区二区免费视频| 精品国产美女福到在线不卡f| 综合社区亚洲熟妇p| 伊人色综合久久天天| 97无码免费人妻超级碰碰碰| 欧美日韩国产一级| 亚洲午夜福利在线| 日韩欧美国产成人| 国产在线视频导航| 97国产精品视频人人做人人爱| 国产簧片免费在线播放| 色欲国产一区二区日韩欧美| 国产情精品嫩草影院88av| 欧美色图第一页| 欧美亚洲激情| 波多野结衣第一页| 青草国产在线视频| 综合五月天网| 欧美精品v| 草草影院国产第一页| 十八禁美女裸体网站|