www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]構(gòu)建嵌入式linux平臺下的用戶應(yīng)用

1.引言

在專用的嵌入式板子運行 GNU/Linux 系統(tǒng)已經(jīng)變得越來越流行。一個嵌入式 Linux 系統(tǒng)從軟件的角度看通??梢苑譃樗膫€層次,如圖1-1所示:

(1)引導(dǎo)程序。包括固化在固件(firmware)中的 boot 代碼(可選),和 Boot Loader 兩大部分。

(2)Linux 內(nèi)核。針對于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。

(3)文件系統(tǒng)。包括根文件系統(tǒng)和建立于 Flash 內(nèi)存設(shè)備之上文件系統(tǒng)。通常用 ram disk 來作為根文件系統(tǒng)

(4)用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個嵌入式圖形用戶界面。常用的嵌入式 GUI 有:MicroWindows 和 MiniGUI 。

下面就在linux-2.4.x內(nèi)核上如何正確組織、連接這幾個部分來自動運行用戶應(yīng)用程序進行分析。
 

2.linux的啟動過程

在系統(tǒng)復(fù)位后首先遠(yuǎn)行的程序就是引導(dǎo)程序(Boot loader)。 引導(dǎo)程序可以放在專用的ROM中,也可以和內(nèi)核影像、文件系統(tǒng)影像共用閃存芯片或固態(tài)硬盤如下圖所示。引導(dǎo)程序首先負(fù)責(zé)初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。Uboot是Sourceforge上的一個開源的引導(dǎo)程序,提供了對PowerPC(MPC5xx、MPC8xx、MPC82x、MPC7xx、MP74xx、4xx)、ARM(ARM7、ARM9、StrONgArm、Xsacle)、MIPS、x86等處理器的支持。下載站點是http://sourceforge.net/projects/u-boot

U-boot在ARM9系統(tǒng)啟動流程:

  1、跳轉(zhuǎn)到reset代碼(將CPU設(shè)置成SVC,ARM工作模式,SDRAM初始化)

  2、將U-boot代碼拷貝到RAM空間??梢哉{(diào)用C函數(shù)

  3、調(diào)用初始化函數(shù)

 ?。–PU_init(),board_init(),interrupt_init(),serial_init())

  4、初始化flash設(shè)備

  5、初始化系統(tǒng)內(nèi)存分配函數(shù)

  6、初始化NAND設(shè)備

  7、初始化顯示設(shè)備

  8、初始化網(wǎng)絡(luò)設(shè)備

  9、進入命令循環(huán),接收用戶從串口傳來的命令,如果延時10秒鐘無用戶操作則自動加載linux內(nèi)核。首先將linux內(nèi)核影像(kernel Image)拷貝到ram空間,然后跳轉(zhuǎn)到linux內(nèi)核代碼的第一條指令處,將控制權(quán)交給linux內(nèi)核。

3. 掛接自己的嵌入式文件系統(tǒng)

3.1. 嵌入式文件系統(tǒng)的層次結(jié)構(gòu)

嵌入式文件系統(tǒng)的任務(wù)是對文件進行管理,其工作包括提供對邏輯文件的操作(包括檢索、新增、修改、刪除、拷貝)接口,方便用戶操作文件和目錄。文件系統(tǒng)內(nèi)部,則根據(jù)存儲設(shè)備的特點,使用不同的文件組織模式來實現(xiàn)文件的邏輯結(jié)構(gòu),比如磁帶中使用的順序文件以及大多數(shù)操作系統(tǒng)使用的樹狀文件。此外文件系統(tǒng)也管理文件的安全性、完整性以及多進程訪問控制。文件系統(tǒng)不能實現(xiàn)對物理設(shè)備的直接控制,對物理設(shè)備的訪問是通過MTD/FTL層實現(xiàn)的。MTD/FNL層向上將閃存設(shè)備抽象成邏輯設(shè)備(邏輯頁面和塊),為文件系統(tǒng)提供對物理設(shè)備操作接口;向下實現(xiàn)對閃存設(shè)備的讀寫、清零、ECC校驗等工作。在linux系統(tǒng)中實現(xiàn)了對閃存操作的底層函數(shù)。下圖給出了文件系統(tǒng)的層次關(guān)系。

3.2. 幾種針對閃存的嵌入式文件系統(tǒng)的比較
 

3.3. 掛接JFFS2文件系統(tǒng)

(1) 修改設(shè)備號

由于ROM設(shè)備和MTDBlock設(shè)備的主設(shè)備號(major)都是31,所以如果你不想把JFFS2作為根文件系統(tǒng)的話,必須修改他們之一的major。如果你要修改JFFS2的設(shè)備major,在/linux-2.4.x/include/linux/mtd/mtd.h中把

#define MTD_BLOCK_MAJOR 31

改成

#define MTD_BLOCK_MAJOR 30

(2) 編寫Maps文件

添加在flash上的map文件。在/kernel/drivers/mtd/maps下添加flash(如intel NOR型28f128j3a)的map。

(3) 將配置加入/kernel/drivers/mtd/maps/Config.in中

dep_tristate ‘ CFI Flash device mapped on S3C2410‘ CONFIG_MTD_S3C2410 $CONFIG_MTD_CFI

(4) 配置內(nèi)核使其支持jffs2。

這里要特別注意Memory Technology Devices (MTD)的選項支持及其子項

RAM/ROM/Flash chip drivers --->

Mapping drivers for chip access --->

的選項支持;

還有File systems下選項支持。

具體的配置選擇請參考附錄1

(5) 制作jffs2映象

首先取得jffs2的制作工具:mkfs.jffs2(可從網(wǎng)上取得)

執(zhí)行如下命令即可生成所要的映象:

chmod 777 mkfs.jffs2 //取得mkfs.jffs2的執(zhí)行權(quán)限,即mkfs.jffs2成為可執(zhí)行文件

./mkfs.jffs2 -d jffs2/ -o jffs2.img //生成jffs2文件映象,其中目錄jffs2可以是任意的目錄,這里的jffs2是我新建的一個目錄

(6) Jffs2的下載

燒寫完引導(dǎo)程序(boot loader)、內(nèi)核影像(zImage)、根文件系統(tǒng)(ramdisk.image.gz)之后,接著燒寫jffs2.img,具體燒寫如下:

tftp 30800000 jffs2.img

fl 1800000 30800000 20000 (其中20000可根據(jù)jffs2的大小適當(dāng)調(diào)整,理論上只要比jffs2.img略大即可,但要為20000的整數(shù)倍。1800000是Jffs2在閃存中的起始位置,3800000是將jffs2.img下載到內(nèi)存中的位置)

(7) 在根文件系統(tǒng)上自動掛接Jffs2

在ramdisk.image.gz的mnt/etc/init.d/rc$文件中加入如下指令以便啟動時自動掛載jffs2文件系統(tǒng)。

Mount -t jffs2 /dev/mtdblock/4 /mnt (其中的/dev/mtdblock/4是flash上的jffs2分區(qū))

4.啟動用戶應(yīng)用程序

在嵌入式應(yīng)用系統(tǒng)中,往往不需要進入linux的界面(命令行窗口或圖形桌面),而是需要直接啟動專用的用戶程序。下面介紹一種實現(xiàn)方法。

在制作根文件系統(tǒng)影像(ramdisk.image.gz)前在根目錄下創(chuàng)建myproc目錄,將MyApp應(yīng)用程序復(fù)制到此目錄下。在ramdisk.image.gz的mnt/etc/init.d/rc$文件中加入如下指令以便自動啟動用戶應(yīng)用程序MyApp。

#cd /myproc( 進入myproc目錄)

#./MyApp

MyApp是一個小的應(yīng)用程序,它的處理流程如下(其中Mystart假定為用戶最終的應(yīng)用程序) :

5. 總結(jié)

Linux 正在嵌入式開發(fā)領(lǐng)域穩(wěn)步發(fā)展。因為 Linux 基于 GPL,所以任何對將 Linux 定制于 PDA、掌上機或者工控設(shè)備感興趣的人都可以從因特網(wǎng)免費下載其內(nèi)核和應(yīng)用程序,并開始移植或開發(fā)。目前許多 優(yōu)秀的Linux 系統(tǒng)可供用戶選擇。它們包括 RTLinux(實時 Linux)、uClinux(用于非 MMU 設(shè)備的 Linux)、Montavista Linux(用于 ARM、MIPS、PPC 的商用 Linux 分發(fā)版)、ARM-Linux(ARM 上的 Linux)等。利用現(xiàn)有的大量的共享資源,構(gòu)建自己的嵌入式linux平臺,開發(fā)linux應(yīng)用已經(jīng)列入許許多多公司的發(fā)展戰(zhàn)略之中。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

新竹2025年9月9日 /美通社/ -- 全球客制化存儲芯片解決方案設(shè)計公司愛普科技今日宣布,其新一代PSRAM—ApSRAMTM (Attached-pSRAM)已通過客戶平臺驗證,預(yù)計將于年底開始量產(chǎn)。ApSRAMT...

關(guān)鍵字: PSRAM 低功耗 存儲芯片 MT

為高效精準(zhǔn)的分析提供一站式解決方案 上海2025年9月9日 /美通社/ -- 科學(xué)探索與產(chǎn)業(yè)升級浪潮下,AI賦能的精準(zhǔn)分析技術(shù)正加速重構(gòu)未來實驗室。自動化技術(shù)和技術(shù)培訓(xùn)領(lǐng)域的世界領(lǐng)導(dǎo)者,F(xiàn)esto(展位:E2333)首...

關(guān)鍵字: FESTO 測試 MT 運動控制

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

多數(shù)受訪粉絲認(rèn)為,AI驅(qū)動的功能會對他們觀看體育賽事的方式產(chǎn)生重大影響 超過半數(shù)的受訪者希望通過AI技術(shù)獲得對過去、現(xiàn)在和未來體育賽事的評論和分析 移動體育應(yīng)用...

關(guān)鍵字: IBM AI 應(yīng)用程序 移動

-Vehere宣布推出v1.8.1,為安全分析師提供更精準(zhǔn)的檢測、更快的響應(yīng)和更智能的工作流程 舊金山2025年7月18日 /美通社/ -- 領(lǐng)先的人工智能驅(qū)動型網(wǎng)絡(luò)情報提...

關(guān)鍵字: 網(wǎng)絡(luò) UI MT BSP

上海 2025年6月9日 /美通社/ -- 自2004年首屆AMTS啟動以來,中國汽車產(chǎn)業(yè)完成了從汽車大國邁向汽車強國的飛躍。市場規(guī)模爆炸式增長的背后,是中國汽車產(chǎn)業(yè)鏈的不斷完善和升級——技術(shù)研發(fā)與創(chuàng)新、電動化智能化轉(zhuǎn)...

關(guān)鍵字: 中國汽車 MT BSP 汽車技術(shù)

創(chuàng)新結(jié)構(gòu)融合多元材質(zhì) 東京 2025年5月27日 /美通社/ -- 卡西歐計算機株式會社今日宣布推出最新款G-SHOCK品牌抗震腕表MTG-B4000。這款全新腕表搭載由人類設(shè)計師與AI技術(shù)協(xié)同開發(fā)的獨特表框。MTG...

關(guān)鍵字: MT AI SHOCK BLUETOOTH

青島 2025年5月23日 /美通社/ -- 全球領(lǐng)先的消費電子和家電品牌海信今天宣布將谷歌全新Home API集成至其ConnectLife應(yīng)用程序。今年秋季前,用戶可通過該應(yīng)用程序?qū)⒌谌街悄芗揖釉O(shè)備接入Conne...

關(guān)鍵字: API NEC 海信 應(yīng)用程序

-Arya.ai推出MCP應(yīng)用程序,將通用LLM轉(zhuǎn)化為特定領(lǐng)域?qū)<? 印度孟買和紐約 2025年5月13日 /美通社/ -- Arya.ai今天宣布推出APEX MCP(模...

關(guān)鍵字: MCP 應(yīng)用程序 AI 人工智能

第二子代MRCD和MDB最高支持12800MT/s速率,較第一子代產(chǎn)品提升45% 上海2025年1月24日 /美通社/ -- 瀾起科技今日宣布,其最新研發(fā)的第二子代多路復(fù)用寄存時鐘驅(qū)動器(MRCD)和第二子代多路復(fù)用數(shù)...

關(guān)鍵字: DDR RC CD MT
關(guān)閉