嵌入式關(guān)鍵系統(tǒng)第六講嵌入式linux介紹和關(guān)鍵系統(tǒng)創(chuàng)建_第1頁
嵌入式關(guān)鍵系統(tǒng)第六講嵌入式linux介紹和關(guān)鍵系統(tǒng)創(chuàng)建_第2頁
嵌入式關(guān)鍵系統(tǒng)第六講嵌入式linux介紹和關(guān)鍵系統(tǒng)創(chuàng)建_第3頁
嵌入式關(guān)鍵系統(tǒng)第六講嵌入式linux介紹和關(guān)鍵系統(tǒng)創(chuàng)建_第4頁
嵌入式關(guān)鍵系統(tǒng)第六講嵌入式linux介紹和關(guān)鍵系統(tǒng)創(chuàng)建_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

本講主要內(nèi)容嵌入式Linux開發(fā)綜述嵌入式Linux入門Linux命令telnet(課后練習(xí))嵌入式Linux系統(tǒng)的構(gòu)建BootloaderKernelRootDisk(Root)WhyeLinux?免費和代碼公開支持多種硬件平臺可裁剪使用成本低強大的網(wǎng)絡(luò)功能支持GUI開發(fā)豐富的開發(fā)技術(shù)資源HoweLinux?開發(fā)環(huán)境:Linux主機+eLinux開發(fā)板二者通過串口或網(wǎng)絡(luò)連接怎么搭建開發(fā)環(huán)境?主機安裝Linux操作系統(tǒng)(本系統(tǒng)采用虛擬機Redhat9.0)在Linux下安裝交叉編譯工具鏈開發(fā)板建立eLinux操作系統(tǒng)(主機是Windows或Linux均可)主機與開發(fā)板連接主機常用串口登錄開發(fā)板的eLinux系統(tǒng)Windows系統(tǒng)下用超級終端(HyperTerm)Linux系統(tǒng)下用minicom主機與開發(fā)板通常組成局域網(wǎng)(TCP/IP),以方便傳遞文件及調(diào)試如何學(xué)習(xí)?Linux的基本學(xué)習(xí)嵌入式Linux(eLinux)的構(gòu)建主機Redhat9.0系統(tǒng)及交叉編譯環(huán)境的建立Makefile及簡單應(yīng)用程序設(shè)備驅(qū)動程序開發(fā)Linux學(xué)習(xí)資源RedhatLinux9從入門與精通,MichaelJang著,邱仲潘等譯,電子工業(yè)出版社AlessandroRubini,魏永明等譯,linux設(shè)備驅(qū)動程序,第二版,中國電力出版社,2002Linux編程寶典,JohnGoerzen著,魏永明等譯,電子工業(yè)出版社嵌入式Linux-硬件、軟件與接口,CraigHollabaugh著,陳雷、鐘書毅等譯,電子工業(yè)出版社Linux命令簡介Linux指令特征區(qū)分大小寫以“;”為分隔符,一條指令可以執(zhí)行多個命令所有指令具有可執(zhí)行權(quán)限r(nóng)wx------read,write,executable(讀、寫及執(zhí)行權(quán)限)ShellShell為用戶提供指令操作使用環(huán)境,類似于DOS中的Command系統(tǒng)提供的shell種類在etc/shells中。通常有以下一些shell:Bash -RedhatLinux默認(rèn),是BourneAgainShell簡稱Korn、C、Z-可以用ksh、csh、zsh打開這三個shell當(dāng)是bash時,shell環(huán)境配置/etc/profile/root/.bash_profile指令歷史方向鍵History,可以用!來回叫命令例 #history #… #!rp 重復(fù)執(zhí)行rp開頭命令命令鍵快捷操作Tab鍵如果命令很長,輸入前幾個字符后,按Tab可以自動完成該命令;如果有多個命令符合,可再次按Tab得到命令清單常用命令常用命令ls 顯示文件列表cd 目錄轉(zhuǎn)換pwd 顯示當(dāng)前路徑mkdir 創(chuàng)建目錄rmdir 刪除目錄cp 拷貝tar 壓縮解壓縮自助mancommandcommand--helpls列出目錄和文件。有一系列參數(shù)-a,-r,-F,-i,-l,-t,-u例#ls-l

列出當(dāng)前目錄所有文件,包括權(quán)限,擁有者,組擁有者,長度,修改時間,文件名 #ls–a

列出文件,包括以.開始的文件pwd顯示當(dāng)前目錄的絕對路徑。例:#pwd/etc/d/confcd改變路徑,例:cd..上移一層路徑cd../..上移兩層cd/etc/rc.d 絕對路徑移動cd~ 移動到用戶自己的主目錄(一般用戶在/home/user下,超級用戶root的主目錄在/root)

touch生成空文件,例#touch/root/1.ccp復(fù)制,cpfile1file2例: #cpfile*dir1 將多個文件復(fù)制到一個目錄mv移動文件。例 #mvfile1file2 更改文件名 #mvfile* dir1 移動多個文件到一個目錄 #mv–ffile1file2 覆蓋,不提示 #mv–ifile1file2 覆蓋,提示rm刪除文件或目錄。例: #rmfile1 #rmdir1 #rm-r*.tmp 刪除操作包括子目錄 #rm-ffile 強制刪除不提示信息 #rm–rffileln鏈接文件。硬鏈接,lnfile1file2,相當(dāng)于cp–pfile1file2,兩個文件一致,保持相同inode號,如果刪除仍保留原文件所有信息軟鏈接,ln–sfile1file2,如果刪除file1,則file2指向空文件 。訪問file2如同訪問file1mkdir生成目錄。例: #mkdir–pdir1/dir2 在當(dāng)前路徑下生成dir2目錄,如果dir1不存在,-p也讓linux生成該目錄 #mkdir–m755/usr/dir3 生成dir3目錄,755權(quán)限指定擁有者rwx,組中其他成員和別人r-x

rmdir刪除目錄例:

#rmdirdir1/dir2 要求是空目錄如果想刪除目錄及目錄內(nèi)所有文件,可 #rm–rtar壓縮解壓命令。主要參數(shù)簡介:c 生成文件時必須使用r 增加文件到tar文件v 詳細(xì)查看內(nèi)容z 將tar和gzip同時使用f 使用文件,必用x 提取文件jgz2tar例: #tarcvf壓縮文件.tar壓縮對象文件及目錄 -壓縮捆綁 #tartvf壓縮文件.tar -查看內(nèi)容 #tarxvf壓縮文件.tar -解開tar文件 #tarcvfz壓縮文件.tar.gz壓縮對象 -同時使用tar和gzip #tarxvfz壓縮文件.tar.gzsu改變用戶為系統(tǒng)管理員(root),需輸入系統(tǒng)管理員密碼例: #su

輸入密碼 #相應(yīng)地,如果要退出該用戶,用exitfile瀏覽每個文件類型。Linux沒有文件擴展名,可執(zhí)行文件不一定以.exe結(jié)尾,文檔也不一定以.doc結(jié)尾。例: #file* #cron ASCIItext gdm directory pgsasd empty loot.log ASCIIEnglishtextcat接合命令,將文件文本發(fā)送到標(biāo)準(zhǔn)輸出。例 #catfile1head與tail顯示文件前(后)指定行數(shù)信息。例: #Head400ba.txt顯示前400字節(jié) #tail4ka.txt 顯示后4KB字節(jié) #head–n15a.txt 顯示前15行 #tail3ma.txt 顯示后3M字節(jié)more以頁為單位顯示文件內(nèi)容,按空格翻頁。例: #morereadme.txtchmod改變文件的權(quán)限。例: #chmod754file1754的二進(jìn)制編碼為111,101,100分別對應(yīng)于擁有者的rwx,組中其他用戶的rwx和其他用戶的rwx上述命令將文件file1的權(quán)限設(shè)置為擁有者具有rwx,組中其他用戶具有r-x,別的用戶具有r—權(quán)限。find查找文件例: #find/etc–name從指定目錄/etc及其子目錄中查找通配符:*,?mount與umount掛接設(shè)備,如硬盤、光驅(qū)、USB等。例: #mount–oro/dev/cdrom/mnt/cdrom #umount/mnt/cdrom可在/etc/fstab文件中設(shè)置哪些設(shè)備需要在啟動時進(jìn)行mount,這個文件通常稱為文件系統(tǒng)表。命令行編輯vi用vi編輯文件:#vi hello.c(如果沒有,將創(chuàng)建,否則打開)最簡單的vi指令命令:i 在當(dāng)前位置插入文字,進(jìn)入編輯狀態(tài)a 在當(dāng)前位置后附加文字,進(jìn)入編輯狀態(tài)按esc鍵退出編輯狀態(tài)輸入:wq 保存退出:q!不保存強制退出grep搜索文件。例: #grepmichael/etc/passwd

在文件passwd中查找michael字符常與其他命令組合,見下頁

命令組合例: #ls–l|grepkeyword #find/-name*.a|grepmichael重定向和管道改變輸入輸出。每個程序有三個文件句柄:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤。例: #ls–l/dev/foo>listing>將刪除listing文件中原有內(nèi)容,替之以新的輸出,如果想保留原有內(nèi)容,并將新內(nèi)容添加到末尾,可以用>> #ls–l/dev/foo>>listing文件系統(tǒng)目錄/bin引導(dǎo)啟動所需的命令或普通用戶可能用的命令/sbin類似/bin,一些特定的可執(zhí)行程序/etc系統(tǒng)的配置文件,/etc/rc.d目錄包含系統(tǒng)啟動腳本/homeLinux是一個多用戶環(huán)境,每個用戶將分配一個制定的目錄,供特定用戶訪問文件系統(tǒng)目錄/rootRoot用戶目錄/lib系統(tǒng)程序運行所需要的共享庫/lib/module核心可加載模塊,特別是那些恢復(fù)損壞系統(tǒng)時引導(dǎo)所需的(例如網(wǎng)絡(luò)和文件系統(tǒng)驅(qū)動)。/dev系統(tǒng)設(shè)備文件目錄文件系統(tǒng)目錄/tmp臨時文件/mnt文件系統(tǒng)或設(shè)備的安裝點/procProc目錄的內(nèi)容是一個實時的駐留的文件系統(tǒng),描述當(dāng)前系統(tǒng)運行的狀態(tài)以及過程/lost+found當(dāng)系統(tǒng)非法關(guān)機或崩潰時,在下一次啟動時,F(xiàn)sck將會檢查系統(tǒng)恢復(fù)損壞的文件碎片?;謴?fù)操作的結(jié)果將會放在這個目錄中常見縮寫 man:

Manual

pwd:Print

working

directory

su:Swith

user

cd:Change

directory

ls:Listfiles

ps:Process

Status

mkdir:Make

directory

rmdir:Remove

directory

mkfs:

Make

file

system

fsck:File

system

check

cat:

Concatenate

常見縮寫 uname:

Unix

name

df:

Disk

free

du:

Disk

usage

lsmod:

List

modules

mv:

Movefile

rm:

Removefile

cp:

Copy

file

ln:

Linkfiles

fg:

Foreground

bg:

Background

chown:

Change

owner

常見縮寫 chgrp:

Change

group

chmod:

Change

mode

umount:

Unmount

tar:Tape

archive

ldd:List

dynamic

dependencies

insmod:Install

module

rmmod:Remove

module

lsmod:List

module常見縮寫 .a(擴展名a):Archive,staticlibrary

.so(擴展名so):Shared

object,dynamicallylinkedlibrary

.o(擴展名o):Objectfile,compliedresultofC/C++sourcefile

RPM:Redhat

package

manager

dpkg:Debian

packagemanager

apt:Advanced

package

tool(Debian或基于Debian的發(fā)行版中提供)課后練習(xí)(必做)遠(yuǎn)程登錄實驗室提供的linux服務(wù)器:在Windows命令提示符下輸入:c:\telnet,用戶名emb,密碼embedded(注意沒有顯示,要盲打)練習(xí)前述各命令,注意一定要練習(xí)vi指令有條件同學(xué)可以自建Linux操作系統(tǒng),可以用虛擬機服務(wù)器有vmware6.5的安裝程序和Redhat9.0的ISO鏡像文件課后練習(xí)Cygwin下載與使用是一個windows平臺運行的unix模擬環(huán)境,是cygnussolutions公司開發(fā)的自由軟件下載;執(zhí)行后再從網(wǎng)絡(luò)上下載安裝包cygnus首先把gcc,gdb,gas等開發(fā)工具進(jìn)行了改進(jìn),使他們能夠生成并解釋win32的目標(biāo)文件;然后基于win32api寫了一個unix系統(tǒng)庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用unix主機上的交叉編譯器來生成可以在windows平臺上運行的工具集嵌入式Linux系統(tǒng)的創(chuàng)建嵌入式Linux系統(tǒng)構(gòu)成eLinux可以動態(tài)加載模塊,便于移植和裁剪固化于flash中通常都由三部分構(gòu)成BootloaderKernelrootfs嵌入式Linux系統(tǒng)構(gòu)成BootLoaderLinuxKernel文件系統(tǒng)應(yīng)用程序底層頂層關(guān)于從flash啟動NORflash具有與SDRAM同樣的數(shù)據(jù)線和地址線接口,具有連續(xù)地址空間,可以執(zhí)行程序,常用作代碼存儲(本系統(tǒng))NANDflash八位接口,數(shù)據(jù)、地址和控制復(fù)用,接口復(fù)雜;不具有連續(xù)地址空間;常用作數(shù)據(jù)存儲器件部分公司的ARM芯片,如SAMSUNG,有片內(nèi)ESRAM,通過啟動時拷貝代碼到ESRAM,可以支持NANDflash啟動bootloader開發(fā)板是一個專用計算機,上電啟動后,如果沒有軟件,狀態(tài)由MPU缺省配置決定可以使用JTAG接口SDRAM,串口等通常需要由軟件來初始化如果要加載一個操作系統(tǒng),需要有引導(dǎo)程序,引導(dǎo)系統(tǒng)內(nèi)核加載到RAM中運行Bootloader是一個啟動加載程序,完成系統(tǒng)部分硬件初始化可以用來燒寫程序到flash可以用來引導(dǎo)eLinux系統(tǒng)啟動燒寫bootloader的方式Bootloader需要先燒寫到flash上通過串口燒寫Windows或Linux下,都有類似的通過串口訪問flash的小程序通過JTAG接口燒寫Windows或Linux都支持。本課程支持方式:Windows下Jflashmm程序Linux下Jflashmm程序Windows下flashwriter程序(采用這種)Banyan-UE仿真器仿真器的安裝解壓到安裝目錄仿真器使用執(zhí)行DaemonU.exe,識別處理器(見下圖)Daemon圖Banyan仿真器執(zhí)行,識別flas

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論