自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux2.6內(nèi)核嵌入式系統(tǒng)應(yīng)用心得

系統(tǒng) Linux
嵌入式系統(tǒng)就是用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置。以應(yīng)用為中心,以計(jì) 嵌入式Web技術(shù)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。下文就介紹下Linux 2.6的應(yīng)用。

  隨著Linux2.6內(nèi)核嵌入式系統(tǒng)的開發(fā)和使用,我在應(yīng)用部分有些心得,供大家參考。

  1. 建立交叉編譯環(huán)境

  在RedHat9的主機(jī)上進(jìn)行內(nèi)核移植開發(fā),首先需要建立交叉編譯環(huán)境。由于2.6內(nèi)核中采用了一些新的特性和指令,需要采用較新的工具集,采用binutils-2.15、gcc-3.4.2、glibc-2.2.5、linux-2.6.8、glibc-linuxthreads-2.2.5來建立交叉編譯工具鏈,建立之后將工具鏈路徑加入系統(tǒng)路徑$PATH中。

  2. 內(nèi)核修改

  Linux 2.6.11.7內(nèi)核加入了對(duì)S3C2410芯片的支持,不再需要任何補(bǔ)丁文件。修改內(nèi)核源碼中Makefile的交叉編譯選項(xiàng)ARCH=arm,CROSS_COMPILE=arm-linux-。針對(duì)硬件配置,需要在arch/arm/mach-s3c2410/devs.c或者smdk2410.c中添加FLASH的分區(qū)信息s3c_nand_info,如表1。

  表1 NAND FLASH分區(qū)表

  分區(qū)名 起始地址 大 小

  Vivi 0x00000000 0x00020000

  Param 0x00020000 0x00010000

  Kernel 0x00030000 0x001c0000

  Root 0x00200000 0x00200000

  Usr 0x00400000 0x03c00000

  然后在s3c_device_nand中增加.dev={.platform_data= &s3c_nand_info},在arch/arm/mach-s3c2410/mach-smdk2410.c中的__initdata部分增加&s3c_device_nand,使內(nèi)核在啟動(dòng)時(shí)初始化NAND FLASH信息。

  3. 內(nèi)核編譯加載

  對(duì)內(nèi)核進(jìn)行適當(dāng)?shù)呐渲檬且粋€(gè)量體裁衣的過程。由于2.6內(nèi)核會(huì)根據(jù)本地系統(tǒng)配置進(jìn)行初始設(shè)置,可以導(dǎo)入內(nèi)核源碼默認(rèn)s3c2410的配置文件,方便加載內(nèi)核基本配置,然后再選擇所需選項(xiàng)。對(duì)MTD配置選擇支持MTD設(shè)備驅(qū)動(dòng)以及NAND FLASH驅(qū)動(dòng);選擇支持要用到的各類文件系統(tǒng)(DEVFS、TMPFS、CRAMFS、YAFFS、EXT2、NFS)以及網(wǎng)絡(luò)設(shè)備和協(xié)議,本系統(tǒng)加載了網(wǎng)絡(luò)芯片CS8900以及USB支持;在H.264多媒體系統(tǒng)中還需要加載Frame buffer以支持LCD顯示功能。使用交叉編譯工具編譯內(nèi)核源碼后, 會(huì)在arch/arm/boot/下生成名為zImage的內(nèi)核映像,在Boot loader的命令提示模式下使用下載命令完成內(nèi)核加載到開發(fā)板的存儲(chǔ)設(shè)備FLASH中。編譯過程(相對(duì)以前版本的編譯過程,2.6內(nèi)核編譯有所簡(jiǎn)化):

  make mrproper

  make menuconfig(字符界面,或者用make xconfig圖形界面,但需要Qt庫的支持,而make gconfig則需要GTK庫的支持)

  make

  make bzImage

  4. 文件系統(tǒng)

  Linux采用文件系統(tǒng)組織系統(tǒng)中的文件和設(shè)備,為設(shè)備和用戶程序提供統(tǒng)一接口。Linux 支持多種文件系統(tǒng),本系統(tǒng)使用CRAMFS格式的只讀根文件系統(tǒng),而將FLASH中的USER區(qū)使用支持可讀寫的YA FFS文件系統(tǒng)格式,方便添加自己的應(yīng)用程序。

  在根文件系統(tǒng)中,為保護(hù)系統(tǒng)的基本設(shè)置不被更改,采用CRAMFS格式。采用DEVFS來實(shí)現(xiàn)基本設(shè)備的建立掛載,同時(shí)使用BusyBox也是一個(gè)縮小根文件系統(tǒng)的辦法,提供了系統(tǒng)的基本指令;還需要建立一些必備的目錄,添加所需配置文件,如fstab、inittab等;還有一個(gè)重要的工作就是添加系統(tǒng)應(yīng)用必備的動(dòng)態(tài)函數(shù)庫。使用生成工具mkcramfs 將整個(gè)根文件目錄里的內(nèi)容制作成映像文件。

  mkcramfs rootfs rootfs.ramfs

  YAFFS文件系統(tǒng)格式的支持需要將驅(qū)動(dòng)加入到內(nèi)核代碼樹下fs/yaffs/,修改內(nèi)核配置文件,就可以在內(nèi)核編譯中加載對(duì)該文件系統(tǒng)的支持。使用mkyaffs工具將NAND FLASH分區(qū)格式化為YAFFS分區(qū),將mkyaffsimage生成的應(yīng)用程序鏡像燒寫進(jìn)YAFFS分區(qū),在啟動(dòng)時(shí)通過寫入fstab自動(dòng)加載YAFFS分區(qū)即可。

5. 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)

  系統(tǒng)中采用CS8900A的10M網(wǎng)絡(luò)芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相應(yīng)修改linux/arch/arm/mach-s3c2410/irq.c,并在mach-smdk2410.c的smdk2410_iodesc[]中增加{SMDK2410_ETH_IO,S3C2410_CS2, SZ_1M, MT_DEVICE},內(nèi)核源碼中加入芯片的驅(qū)動(dòng)程序drivers/net/arm/cs8900.h和cs8900.c,并且配置網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的Makefile和Kconfig文件,加入CS8900A的配置選項(xiàng),這樣可以在內(nèi)核編譯時(shí)加載網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)。

  在Linux2.6應(yīng)用的同時(shí),也要看到其與以前版本內(nèi)核比較存在的一些問題。在內(nèi)核的編譯時(shí)間、內(nèi)核鏡像大小、內(nèi)核占用RAM空間大小、系統(tǒng)啟動(dòng)時(shí)間相對(duì)Linux2.4而言都存在不同程度的不足,但在硬件條件日益進(jìn)步的現(xiàn)今可以接受,而且一部分也是由于功能加強(qiáng)必然帶來的。雖然Linux并非一個(gè)真正的實(shí)時(shí)操作系統(tǒng),但2.6內(nèi)核的改進(jìn)能夠滿足大部分的應(yīng)用需求,所以Linux2.6內(nèi)核將會(huì)在嵌入式系統(tǒng)領(lǐng)域大展身手。

通過上面文章,我們知道了Linux2.6應(yīng)用的廣泛,但存在不少問題,等出新的我會(huì)為大家繼續(xù)介紹。

【編輯推薦】

  1. 嵌入式linux系統(tǒng)開發(fā)總結(jié)
  2. 如何成為微軟嵌入式MVP最有價(jià)值專業(yè)人士
  3. 2011年移動(dòng)嵌入式產(chǎn)業(yè)的八大趨勢(shì)
  4. Linux操作系統(tǒng)內(nèi)核工作原理介紹
  5. Linux內(nèi)核編譯之高手教程
  6. 眼見為實(shí) 近看Sandy Bridge內(nèi)核真身
  7. Linux就這樣被黑客入侵
  8. 如何學(xué)好Linux 十一大建議

 

 

責(zé)任編輯:趙鵬
相關(guān)推薦

2011-01-14 13:05:25

Linux內(nèi)核嵌入式

2009-04-11 15:22:24

Linux 2.6內(nèi)核應(yīng)用

2012-07-30 14:13:11

Linux 2.6內(nèi)核嵌入式

2017-03-02 19:13:52

LinuxPengutronix內(nèi)核

2021-12-19 22:34:45

Linux容器系統(tǒng)

2022-01-03 23:33:40

Linux組件系統(tǒng)

2009-12-17 18:38:56

Fedora 7嵌入式

2020-07-03 07:00:00

Linux組件

2011-01-06 15:11:09

嵌入式linux

2017-12-21 10:43:44

Linux嵌入式終端

2011-04-25 10:25:43

OpenEmbedde嵌入式Linux

2011-01-14 13:13:23

嵌入式Linux開發(fā)

2020-06-15 07:00:00

Linux嵌入式系統(tǒng)

2009-08-21 15:33:56

應(yīng)用技巧嵌入式LinuxLinux操作系統(tǒng)

2010-01-21 09:15:05

Linux嵌入式文件系

2009-12-09 10:12:28

嵌入式Linux

2011-07-05 15:27:41

LinusLinux內(nèi)核

2011-03-17 17:36:01

iptables嵌入式Linux

2009-06-26 16:05:04

嵌入式Linux

2009-12-17 10:33:05

嵌入式Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)