成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux2.6內核嵌入式系統應用心得

系統 Linux
嵌入式系統就是用于控制、監視或者輔助操作機器和設備的裝置。以應用為中心,以計 嵌入式Web技術算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。下文就介紹下Linux 2.6的應用。

  隨著Linux2.6內核嵌入式系統的開發和使用,我在應用部分有些心得,供大家參考。

  1. 建立交叉編譯環境

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

  2. 內核修改

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

  表1 NAND FLASH分區表

  分區名 起始地址 大 小

  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,使內核在啟動時初始化NAND FLASH信息。

  3. 內核編譯加載

  對內核進行適當的配置是一個量體裁衣的過程。由于2.6內核會根據本地系統配置進行初始設置,可以導入內核源碼默認s3c2410的配置文件,方便加載內核基本配置,然后再選擇所需選項。對MTD配置選擇支持MTD設備驅動以及NAND FLASH驅動;選擇支持要用到的各類文件系統(DEVFS、TMPFS、CRAMFS、YAFFS、EXT2、NFS)以及網絡設備和協議,本系統加載了網絡芯片CS8900以及USB支持;在H.264多媒體系統中還需要加載Frame buffer以支持LCD顯示功能。使用交叉編譯工具編譯內核源碼后, 會在arch/arm/boot/下生成名為zImage的內核映像,在Boot loader的命令提示模式下使用下載命令完成內核加載到開發板的存儲設備FLASH中。編譯過程(相對以前版本的編譯過程,2.6內核編譯有所簡化):

  make mrproper

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

  make

  make bzImage

  4. 文件系統

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

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

  mkcramfs rootfs rootfs.ramfs

  YAFFS文件系統格式的支持需要將驅動加入到內核代碼樹下fs/yaffs/,修改內核配置文件,就可以在內核編譯中加載對該文件系統的支持。使用mkyaffs工具將NAND FLASH分區格式化為YAFFS分區,將mkyaffsimage生成的應用程序鏡像燒寫進YAFFS分區,在啟動時通過寫入fstab自動加載YAFFS分區即可。

5. 網絡設備驅動

  系統中采用CS8900A的10M網絡芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相應修改linux/arch/arm/mach-s3c2410/irq.c,并在mach-smdk2410.c的smdk2410_iodesc[]中增加{SMDK2410_ETH_IO,S3C2410_CS2, SZ_1M, MT_DEVICE},內核源碼中加入芯片的驅動程序drivers/net/arm/cs8900.h和cs8900.c,并且配置網絡設備驅動的Makefile和Kconfig文件,加入CS8900A的配置選項,這樣可以在內核編譯時加載網絡設備的驅動。

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

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

【編輯推薦】

  1. 嵌入式linux系統開發總結
  2. 如何成為微軟嵌入式MVP最有價值專業人士
  3. 2011年移動嵌入式產業的八大趨勢
  4. Linux操作系統內核工作原理介紹
  5. Linux內核編譯之高手教程
  6. 眼見為實 近看Sandy Bridge內核真身
  7. Linux就這樣被黑客入侵
  8. 如何學好Linux 十一大建議

 

 

責任編輯:趙鵬
相關推薦

2011-01-14 13:05:25

Linux內核嵌入式

2009-04-11 15:22:24

Linux 2.6內核應用

2012-07-30 14:13:11

Linux 2.6內核嵌入式

2017-03-02 19:13:52

LinuxPengutronix內核

2021-12-19 22:34:45

Linux容器系統

2022-01-03 23:33:40

Linux組件系統

2009-12-17 18:38:56

Fedora 7嵌入式

2011-01-14 13:13:23

嵌入式Linux開發

2020-07-03 07:00:00

Linux組件

2011-01-06 15:11:09

嵌入式linux

2011-04-25 10:25:43

OpenEmbedde嵌入式Linux

2017-12-21 10:43:44

Linux嵌入式終端

2020-06-15 07:00:00

Linux嵌入式系統

2009-08-21 15:33:56

應用技巧嵌入式LinuxLinux操作系統

2009-12-09 10:12:28

嵌入式Linux

2009-12-16 15:41:40

嵌入式Linux入門

2009-12-17 10:33:05

嵌入式Linux

2010-01-21 09:15:05

Linux嵌入式文件系

2009-06-26 16:05:04

嵌入式Linux

2011-03-17 17:36:01

iptables嵌入式Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品精品久久久久久 | 国产精品久久久久久久岛一牛影视 | 在线视频成人 | 国产精品一区二区在线播放 | 久久久无码精品亚洲日韩按摩 | 福利一区二区在线 | 国产精品污www一区二区三区 | 美女天天干 | 黑人粗黑大躁护士 | 久久免费精品 | 日韩av视屏| 最新超碰 | 亚洲精品视频一区 | 99热这里都是精品 | 成人欧美一区二区三区黑人孕妇 | 国产中的精品av涩差av | 国产一区不卡 | 免费的一级视频 | 欧美午夜精品久久久久免费视 | 一区二区三区高清不卡 | 免费成人在线网站 | 日韩免费视频 | 精品一区二区三区91 | 韩日精品一区 | 欧美一区日韩一区 | 成人二区三区 | 日韩视频在线观看一区二区 | 一区二区三区视频免费观看 | 国产精品高潮呻吟久久 | 欧美伊人| 99热精品国产 | 久久久久久久久99精品 | 不卡一区 | 中文字幕欧美一区二区 | 91av大全| 午夜精品久久久久久久 | 欧美成人手机在线 | 黄色免费av | 毛片大全 | 欧美一级在线观看 | 搞黄网站在线观看 |