熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于S3C2410的嵌入式Linux系統構建

基于S3C2410的嵌入式Linux系統構建

時間:2008-02-28 11:34:00來源:mahaiyan

導語:?本文選用的微處理器S3C2410是基于32位ARM920T內核的微處理器,基于此處理器構造一Linux嵌入式操作系統,將其移植到基于32位的ARM920T內核的系統中,在此基礎上進行應用程序開發
目前,在嵌入式系統中基于ARM微核的嵌入式處理器已經成為市場主流。隨著ARM技術的廣泛應用,建立面向ARM構架的嵌入式操作系統成為當前研究的熱點問題。已經涌現出許多嵌入式操作系統,如VxWork,windows-CE,PalmOS,Linux等。在眾多的嵌入式操作系統中,Linux以其開源代碼及免費使用倍受開發人員的喜愛。本文選用的微處理器S3C2410是基于32位ARM920T內核的微處理器,基于此處理器構造一Linux嵌入式操作系統,將其移植到基于32位的ARM920T內核的系統中,在此基礎上進行應用程序開發。 1 開發環境介紹 1.1 基于S3C2410 ARM920T的硬件平臺 該系統的硬件平臺為深圳旋極公司提供,硬件的核心部件為三星$3C2410 ARM920T芯片,外圍還包括:64 M NAND FLASH和RAM外圍存儲芯片;串口、網口和USB外圍接口;CSTN LCD和觸摸屏外圍顯示設備;UDAl34lTS的外圍音頻設備。S3C2410處理器和外圍設備共同構成了基于ARM920T的開發板。 1.2嵌入式Limlx軟件系統 該嵌入式Linux的軟件系統包括以下4個部分:引導加載程序vivi;Linux2.6.14內核;YAFFS2文件系統以及用戶程序。他們的可執行映像依次存放在系統存儲設備上,如圖1所示:
與通常的嵌入式系統布局有所不同,本系統在引導加載程序和內核映像之間還增加了一個啟動參數區,在這個區里存放著系統啟動參數。引導加載程序通過調用這些參數來決定啟動模式、啟動等待時間等,這些啟動參數的增加加強了系統的靈活性。本系統采用64 M NANDFLASH的存儲設備,其布局如表1所示。 2嵌入式Linux系統設計與實現 2.1 引導加載程序vivi 2.1.1 vivi的基本功能 該系統使用的:Bootloader是vivi,vivi是韓國MIZIResearch公司為其開發的SMDK2410開發板編寫的一款引導程序。vivi是CPU加電后運行的第一段程序,其基本功能是初始化硬件設備、建立內存空間的映射圖,從而為調用嵌入式Linux內核做好準備。 vivi由2部分組成:一部分是依賴于CPU體系結構的代碼,用匯編語言實現對硬件環境的初始化,并為第二部分代碼的執行做好準備;另部分是用C語言實現內存空間的映射,并將Linux內存映像和根文件系統映像從FLASH上讀到RAM空間中,設置好啟動參數,最后調用內核。 2.1.2 Bootloadcrvivi移植 從網站www.mizi.com下載vivi源碼并解壓,按以下步驟進行移植,該系統使用ARM-GCC一2.95.2對vivi進行編譯。 (1)指定/vivi/Makefile文件中的CROSS-COM-PILE,Linux-INCLUDE-DIR,ARM-GCC-LIBS,如下面的參考路徑: Linux_INCLUDE_DIR=/opt/host/armv41/include/; CROSS_COMPILE=/opt/host/armv41/bin/armv41一UD- known-Linux一: ARM-GCC-LIBS=/opt/host/armv41/lib/gcc-lib/ar- mv41一unknown-Linux/2.95.2: (2)修改/vivi/arch/s3c2410/smdk.C文件里的mtd-par-tition-t default-mtd-partitions[]分區內容如表1所示; (3)增加/vivi/lib/loadyaffs.C文件,實現燒寫yaffs2 映像文件;修改/vivi/lib/Config_cmd.in,增加如下一行:bool‘load yaffs tO flash command‘CONFIG-LOAD-YAFFS,使得loadyaffs命令可作為可選項; (4)執行make distclean:清理vivi編譯環境;執行make menuconfig進行對vivi裁剪,根據實際情況進行選擇,注意要選上"[*]load yaffs tO flash command"因為這里用的是YAFFS2文件系統,需要vivi支持YAFFS2映像下載;執行make生成所需要的文件vivi; (5)采用JTAG燒寫映像到目標板NAND FLASH的零地址處,實現引導程序的裝載。 2.2 Linux2.6.14內核的移植 2.2.1 內核的選擇 Linux內核版本的更新速度非常快,但Linux的內核版本發行同Linux對嵌入式處理器支持程度的發展是不同步的,因此,需要對特定的處理器體系結構選擇合適的內核,并且根據其硬件功能部件加上相應的補丁。根據$3C2410的體系結構以及外圍硬件特性,該系統采用Linux2.6.14內核,所用的編譯器為ARM-Linux-GCC一3.4.1版本;由于該系統采用的是YAFFS2文件系統,因此需要從網上下載yaffs2.tar.gz文件,解壓并執行"./patch.ker.sh/I.inux2.6.14"命令,對I.inux內核打補丁使其支持YAFFS2文件系統。 2.2.2 內核的修改 (1)修改內核源碼中Makefile的交義編譯項: ARM=arm;CROSS一COMPILE?=/usr/local/arm/3.4.1/bin/arm-Linux一; (2)在arch/arm/mach-s3c2410/devs.C文件中: ①增加頭文件定義: #include #include #inelude ②增加static struct mtd-partition partition-info[]函數,建立分區表信息,分區內容如表1所示; ③加入Nand Flash分區:struet s3c24 1 O-nand-set nandset一{nr_partitions:5,partitions:partition-info,}; ④建立Nand Flash 芯片支持struct s3c24 10-platform-nand superlpplatform={tacls:O,twrph0:30,twrphl:0,sets:&.nandset,nr-sets:1,}; ⑤在Nand Flash驅動里加入Nand Flash芯片支持:在s3C-device-nand中增加.dev一{.platforM一data一&super-lpplatform}。 (3)在arch/arm/machs3c2410/machsmdk2410.C中的一initdata部分增加&s3c-device-nand,使內核啟動時初始化NAND FLASH信息。 (4)為了使內核支持devfs并在啟動時在/sbin/init運行之前自動掛載/dev為devfs文件系統.修改fs/Kconfig.并在menu"Pseudo filesystetns"下添加如下語句:config DEVFS_FSbooI"/dev flie system support(OBOLETE)default yconfig DEVFS-MOUNTbool"Automatically mount at boot"default ydepends on DEVFS FS 2.2.3 內核的編譯和加載 (1)執行make mrproper:編譯內核前清理編譯環境。 (2)執行make menuconfig:對內核進行配置是量體裁衣的過程.是十分復雜的過程,配置適合自已的內核可能需要多次重復的配置操作。以下根據該系統對部分配置做簡單介紹: Boot options一一一>Default kernel command st ring Noinitrd root=/dev/mtdblock3 init=/Linuxrc console——ttySAC0.1 15200 說明:mtdblock3代表NAND FASH第4個分區,他足該系統的root分區; Floating point emulation一一一> [*]NwFPE math emulation #選擇在內核中使用NWFPE浮點模擬 File systems一一一> <>Second extended fs support #去除對ext2的支持 Pseudo filesystems一一 > [*]/proc file system support [*]Virtual memory file system support(former shm fs) [*]/dev file system support(OBSOLETE) [*]Automatically mount at boot(NEW) 這里會看到前面修改fs/Kconfig的結果,devfs已經被支持。 Miscellaneous filesystems一—— > #選擇YAFFS2根文件系統 <*>YAFFS2 file system support ——————51 2 byte/page devices [*]Lets Yaffs do its own ECC [ ]Use the same ecc byte order as Steven Hill‘S nand-ecc.C 一一一2048 byte (or larger)/page devices [*]Autoselect yaffs2 format [*]Disable lazy loading (1 0)Reserved blocks for checkpointing [*]Turn off wide tnodes []Force chunk erase check []Cache short names in RAM Network File Systems——-〉 <*〉NFS file system support (3)執行make bzlmage,成功編譯后將在arch/arm/boot/下生成需要的文件zImage。 (4)在vivi提示符下,輸入"load flash kernel x"命令通過串口下載內核映像到NAND FLASH的KERNEL分區中。 2.3 文件系統 Linux采用文件系統組織系統中的文件和設備,為設備和用戶程序提供統一接口。他支持CRAMFS,JFFS2.RAMDISK等多種文件系統。本系統使用可讀寫的YAFFS2根文件系統。 2.3.1 YAFFS2文件系統簡介 YAFFS2是YAFFS(Yet Another FLASH File Sys tem)的升級版,能更好地支持NAND FLASH,是一種類似于JFFS的專門為FLASH設計的嵌入式文件系統。與JFFS相比,他減少了一些功能,因此速度更快、占用內存更少。NAND FLASH大多采用MTD+YAFFS的模式,通過YAFFS文件系統,可以像操作硬盤上的文件一樣操作FLASH中的數據,在系統斷電后數據仍然存儲在FLASH芯片中. 2.3.2 根文件制作 (1)建立根文件系統目錄root,在root目錄下建訌子日錄bin,sbin,dev,etc,proc,lib,user; /bin:保存大多數如init.busybox,shell.文件管理實用程序等二進制文件; /sbin:保存系統啟動過程通常需要的命令; /dev:包含用在設備中的所有沒備節點; /etc:包含系統的所有配置文件; /proc:這是一個必須設置的特殊目錄,在系統運行之后他下面有許多內容,在某些情況下,可以通過他進行系統設置,許多工具能從這里獲得信息。在編譯內核時要選擇文件系統proc的支持; /lib:包含所有必要的庫; /user:存放用戶程序。 (2)編譯busybox.busyh。x足一個著名的開源軟件.他以極小型的應用程序集成了一百多個最常用的Linux命令,閃此享有"嵌入式Linux的瑞士軍刀"的美臀。首先,從網上下載busybox源碼.該系統使用的是1.1.3版本;其次,執行nlakemenuconfig命令.根據實際需求進行功能配置,該系統將busybox編詳為靜態連接;最后:執行FIlakc a11 install進行編譯、安裝;編譯器為:ARM-Linux-GCC一3.4.1,安裝路徑與上述root為同一路徑。這樣在root目錄下將有腳本Linuxrc.在/bin,/sbin日錄下將訂busvbox提供的指向busybox的符號連接命令集。 (3)編寫啟動腳本:一般系統啟動時都會按要求執行相應的初始化操作。寫住命令仃的init=/Liunxrc·這個Linuxrc足指向/etc/init.d/rcS文件的一個符號連接。在rcs文件中列出了 Linux仞始化要執行的文件.例如.初始化進程init、掛載根系統、掛載模塊化設備驅動等。rcs的作用相當于windoWS中的autocxec.bat文什,由于對于不同的應用rcS的內容變化很大,因此應根據實際需要編寫rcS的內容。 (4)制作YAFFs2映象:利用實用程序nlkyaffsinlage(mkvaffmage與root 目錄在同一路徑下)制作YAFFS2映像root.img命令為: #./inkyaffsimage root root. Inlgroot.img就是所需要的YAFFS2文件系統; (5)文件系統映像下載:在vivi提示符下,執仃"loadyaffs root x"選擇root.inlg將文件通過串口下載到NAND FLASH的root分區中.然后復化或重啟開發板,就可以啟動Linux系統。 3 結 語 通過對嵌入式系統ARNI平臺的構建,分析bootloadervivj的功能.闡述了Linux內核的移植,同時也解釋r制作YAFFS2文件系統的步驟和方法.意在給嵌入式系統平臺的搭建有個整體的把握和認識,以降低進入ARM嵌入式開發應用領域的門檻,進一步推進嵌入式軟硬件開發的進程。

標簽:

點贊

分享到:

上一篇:基于工控機的位置伺服同步系...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 商城县| 宜宾市| 山东| 莱阳市| 富锦市| 常州市| 崇明县| 江都市| 新化县| 靖宇县| 泸州市| 晋州市| 和平县| 会东县| 嘉义市| 西乌| 饶阳县| 新密市| 明溪县| 樟树市| 周宁县| 铁力市| 沈阳市| 屯留县| 阿勒泰市| 竹北市| 天长市| 洪雅县| 秦安县| 闽侯县| 耒阳市| 遂溪县| 新邵县| 老河口市| 康保县| 察雅县| 黔西县| 浦江县| 阿拉尔市| 怀化市| 蒙城县|