陳勇嵌入式系統(tǒng)原理實驗指導書.doc_第1頁
陳勇嵌入式系統(tǒng)原理實驗指導書.doc_第2頁
陳勇嵌入式系統(tǒng)原理實驗指導書.doc_第3頁
陳勇嵌入式系統(tǒng)原理實驗指導書.doc_第4頁
陳勇嵌入式系統(tǒng)原理實驗指導書.doc_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)原理實驗指導書陳 勇陜西理工學院數(shù)學與計算機科學學院二零一四年三月目 錄1實驗平臺31。1硬件平臺31。2軟件平臺62、實驗部分8實驗一、 熟悉嵌入式系統(tǒng)開發(fā)平臺8實驗二、Linux常用命令實驗11實驗三、linu C語言編程16實驗四、建立交叉編譯環(huán)境19實驗五、Linux基本應用程序?qū)嶒?41實驗平臺1.1硬件平臺TQ2440開發(fā)板,全新3.5寸數(shù)字觸摸屏,S3C2440是三星公司推出的一款功能強大,功耗極低的ARM9嵌入式CPU,應用范圍非常廣泛.TQ2440開發(fā)板我司基于三星公司S3C2440的公版電路,優(yōu)化設計而來。TQ2440有V2核心板和TQ2440底板組成。2440v

2、2核心板特性特性說明CPU處理器Samsung S3C2440AL,主頻400MHz(最高可達533MHz)SDRAM內(nèi)存板載64MB SDRAM(標準配置)可根據(jù)用戶需要擴展到128MB,提供完整的解決方案 32bit數(shù)據(jù)總線SDRAM,100MHZ(支持穩(wěn)定運行133MHz,僅此一家)Nand Flash板載64MB Nand Flash(標準配置),掉電非易失,有容乃大(可根據(jù)用戶需要升級為128MB1GB,提供完整的解決方案)Nor Flash板載2MB Nor Flash(最高可升級到8MB)CorePower專業(yè)1.25V核心電壓供電,完美解決CPU發(fā)熱現(xiàn)象Power核心板采用3。

3、3V供電Powerled1個核心板電源指示燈核心板接口接口型號為DC2.0雙列直插尺寸微型核心板:37mm x 74mmTQ2440開發(fā)板底板硬件特性硬件特性說明串口板載五線異步串行口(UART0),可外接串口擴展板引出另兩個串口(UART1和UART2);WINCE和Linux均有三串口驅(qū)動。網(wǎng)絡接口板載100M DM9000網(wǎng)卡,帶聯(lián)接和傳輸指示燈;USB接口USB HOST接口;USB Device接口。存儲接口一個SD卡接口,支持2GB SD卡。音頻接口采用芯片UDA1341,立體聲音頻輸出,可錄音。LCD接口集成了4線電阻式觸摸屏接口;支持800×600、640×

4、480、240×320、320×240等不同分辨率的TFT LCD,(目前實測最大的屏10.4寸屏,800×600的分辨率),可接VGA轉(zhuǎn)接板Camera130W像素攝像頭(標配驅(qū)動),可支持AV信號視頻輸入或更高像素的攝像頭時鐘源內(nèi)部實時時鐘(帶有后備鋰電池)調(diào)試JtagJTAG接口,支持ADS1.2,keil等軟件的單步調(diào)試功能復位電路采用專業(yè)復位芯片811進行復位,穩(wěn)定可靠電源接口高電流帶載的5V電源供電,帶電源開關(guān)指示燈AD功能可調(diào)電阻接到ADC引腳上用來驗證模數(shù)轉(zhuǎn)換IIC功能提供AT24C02的EEPROM驗證IIC功能蜂鳴器測試PWM功能的蜂鳴器用戶按

5、鍵4個用戶按鍵,使用外部中斷用戶LED燈4個用戶LED燈,使用GPIO口控制底板尺寸105mm×128mm 配套LCD簡介:·尺寸:3.5寸 ·顯示面積:70.08(H)mm×52.56(V)mm ·顯示顏色:16.7兆色 ·分辨率:320RGB×240(橫屏) ·LED 背光 ·對比度:300:1 ·亮度:320cd/m2(流明) ·使用溫度:-20到60 觸摸屏·觸摸屏使用次數(shù):超過100,000次 ·響應時間:10ms 液晶驅(qū)動板介紹 ·驅(qū)

6、動板自帶兩個接口:40pin的0.5間距的FPC接口和50pin的2.0間距的插針接口; ·提供5V和3.3V兩種電壓供電,缺省狀態(tài)是3.3V供電.  ·提供接口部分的原理圖,方便您的使用.  ·LCD驅(qū)動板的尺寸:103mm×83mm 1。2軟件平臺LINUX 軟件特性(基于LINUX2。6內(nèi)核)類別 功能特性 說明 uboot 一鍵更新程序: bootloader,kernel, Yaffs, NK。bin等更新 首創(chuàng)支持usb下載內(nèi)核鏡像,文件系統(tǒng)的u-boot, 使用更方便,開發(fā)更容易! 一鍵式選擇設置Linux啟動參數(shù)可設置

7、開發(fā)板從Linux的 Yaffs或nfs啟動參數(shù)內(nèi)核 Linux2.6。13內(nèi)核 Linux2。6。25.8內(nèi)核采用Linux2.6 內(nèi)核,更好兼容S3C2440 文件 系統(tǒng) ROM/CRAM/EXT2/FAT32/NFS file system 支持ROM/CRAM/EXT2/FAT32/NFS等文件系統(tǒng) YAFFS file system支持 YAFFS文件系統(tǒng)驅(qū)動 支持 System Interrupt Timer Driver 系統(tǒng)中斷和系統(tǒng)時鐘驅(qū)動 Serial device driver 三個串口驅(qū)動 MTD device Driver MTD 設備驅(qū)動Flash memory d

8、evice driver Nand Flash驅(qū)動 external Ethernet device driver 集成100M以太網(wǎng)卡驅(qū)動(DM9000)RTC (Real Time Clock) Driver 實時時鐘驅(qū)動 USB Host driver USB Host驅(qū)動,支持更多USB設備USB Slave USB Slave驅(qū)動,支持開發(fā)板模擬U盤LEDS Drives 用戶LED燈驅(qū)動Buttons 用戶按鍵驅(qū)動,使用外部中斷。 Sound Driver聲卡驅(qū)動(可以播放可以錄音) LCD Driver(support 640*480, 240320, 320*240 solut

9、ion for TFT) LCD 驅(qū)動, 可接3.5寸, 4.3寸, 7寸, 10寸等分辨率240×320、320×240、640×480、800×480、800×600的LCDFrame Buffer Frame Buffer驅(qū)動Touch Panel Driver觸摸屏驅(qū)動(大分辨率LCD依然精準)SD/MMC Drivers SD/MMC卡驅(qū)動 Camera Driver攝像頭驅(qū)動網(wǎng)絡協(xié)議及網(wǎng)絡應用程序 TCP/IP 完整的TCP/IP協(xié)議 Telnet、FTP、inetd 網(wǎng)絡遠程登錄工具及服務 boa Web服務器應用程序 其他 應用

10、 程序 servfox 控制臺下的攝像頭應用程序, 可通過網(wǎng)絡訪問開發(fā)板的攝像頭, 以及把攝像頭獲取的圖像顯示在LCD上, 配合USB攝像頭可實現(xiàn)網(wǎng)絡監(jiān)控 spcacat 控制臺下的攝像頭抓圖程序 snapshot 控制臺下的LCD抓屏軟件 rz和sz 控制臺下使用串口接收和發(fā)送文件的程序 madplay 控制臺下的MP3播放器 基本工具 busybox1。2.0工具集Busybox1.13工具集Linux常用命令,占用空間小,命令強大 圖形 界面 Qtopia Embedded提供Qtopia 1.7.0和Qtopia 2.2。0,兩個版本任君選擇;提供Qtopia Embedded 2和4

11、兩種級別的庫,更加方便您的開發(fā)。Trolltech 開發(fā)的用于嵌入式 Linux 的圖形用戶界面系統(tǒng),支持網(wǎng)頁瀏覽器, Medialplay播放器, 文件管理器等等USB設備 驅(qū)動 儲存設備支持各種優(yōu)盤, 移動硬盤直接插拔使用USB Hub支持各種USB HubUSB無線網(wǎng)卡支持TLWN321G+、TLWN322G+USB 攝像頭,支持使用中芯微301P系列芯片的USB攝像頭,采集動態(tài)圖像并顯示在lcd上市場上銷售的usb攝像頭USB鼠標,鍵盤支持USB鼠標,USB鍵盤開發(fā)主機:Fedora 10(內(nèi)核版本為Linux 2.6。27)新特性:Plymouth:帶來無閃爍和極富視覺效果的啟動過程

12、,從開始啟動Fedora到桌面將非常平滑。 更好的攝像頭支持:在Fedora 9的基礎上改善而來,對攝像頭的支持更好了。 四個可供選擇的桌面環(huán)境:分別是GNOME 2。24、KDE 4。1。2和新興的輕量級桌面環(huán)境LXDE,還有一個面向OLPC的Sugar。 新的輸入法ibus:Fedora 10包含了這個全新的輸入法框架,目前為止已經(jīng)相當適用了,并且可能在Fedora 11中成為默認輸入法。 Ext4的完全支持:Fedora 10已經(jīng)完全向Ext4準備好了,而不像Fedora 9一樣只是技術(shù)預覽。所以打算使用Ext4的朋友可以開始嘗試了。2、實驗部分實驗一、 熟悉嵌入式系統(tǒng)開發(fā)平臺一、實驗目

13、的1了解虛擬機與Linux 操作系統(tǒng)的基礎知識2熟悉虛擬機的安裝與設置3掌握在 Vmware 上安裝 RedHat Linux 9.04掌握在Linux環(huán)境下gcc編譯工具的基本使用。二、主要實驗器材1軟件:虛擬機軟件vmwareworkstation 5.5.3、Red Hat Linux9。0(shrike-i386-disc1.iso、shrikei386-disc2.iso、shrike-i386-disc3.iso 鏡像文件)2系統(tǒng):CPU 主頻1GHz;最小512MB;硬盤最小空閑空間10GB; Windows XP操作系統(tǒng)三、實驗步驟1、虛擬機的安裝與設置1)首先,要安裝VMwa

14、re 軟件必須要有相應的安裝程序,用戶可從相關(guān)網(wǎng)站下載安裝程序vmwareworkstation5。5。5。exe。VMware 的安裝很簡單, 先安裝并啟動VMware 后,出現(xiàn)如下圖所示主界面,在其主界面“主頁”標簽頁中點擊“新建虛擬機”按鈕打開新建向?qū)?3)單擊“下一步"按鈕進入虛擬機配置界面,選擇“典型"方式.4) 單擊“下一步”按鈕進入虛擬機操作系統(tǒng)選擇界面,可以看到Windows、Linux、Novell等多種不同的系統(tǒng),這里我們點選“Linux”,版本是Red Hat Linux。5)單擊“下一步”進入安裝目錄選擇界面。該界面上面的文本框是虛擬機名稱,保持默認

15、值(Red Hat Linux)即可,下面的文本框需要選擇虛擬機操作系統(tǒng)的安裝位置。按“瀏覽"選擇虛擬機的所在目錄。注意:虛擬機目錄所在的硬盤要有足夠的空間,因為安裝好的RED HAT 9.0 本身就有近1.8G.6)單擊“下一步”進入網(wǎng)絡連接方式選擇界面,此界面中共有四種網(wǎng)絡設置方式選項,選擇“使用橋接網(wǎng)絡”方式.7)單擊“下一步",這里是設置磁盤的大小,軟件默認大小為8GB,一般應該情況下夠用,如果你的硬盤空間足夠大,也可以將磁盤空間設置在8GB以上。該界面上還有兩個選項,分別是“立即分配所有磁盤空間”和“分割磁盤為2GB的文件",我們可以在前一項上打鉤,第二

16、項不打鉤.最后單擊“完成”按鈕返回VMware 主界面。將看到主界面上多了一個“Red Hat Linux"標簽頁,其中顯示了這臺新建虛擬機的各種配置。點擊“虛擬機”菜單中的“設置"命令,打開虛擬機設置對話框,內(nèi)存大小可根據(jù)機器的實際情況設置,內(nèi)存設置得大一點,可以加快Linux運行的速度。其余項暫不用修改。點擊界面上的“添加”按鈕,再點擊“下一步”,然后選擇所要添加的部件,通常要添加一個串行口.2、Linux 操作系統(tǒng)的安裝1) 安裝前需做好準備工作,下載Red Hat Linux 9。0安裝所需要的三個ISO 鏡像文件。其文件名分別為shrikei386-disc1。i

17、so、shrikei386disc2。iso、shrike-i386-disc3.iso。2) 在“虛擬機設置" 對話框中,選擇“CD-ROM”,在CDROM的連接選項中選擇“使用ISO鏡像”,點擊“瀏覽”按鈕,選擇下載好的3個ISO 鏡像文件中的第一個(注意:在后面安裝過程中要分別選擇這3個文件中的第二個和第三個時,只需要重復以上步驟即可),找到第一個文件,點擊“打開”,再點擊“確定”按鈕。(若是采用光盤安裝就直接將光盤插入物理光驅(qū)即可,不要選擇鏡像文件)。3) 啟動虛擬機(即點擊VMware 界面左部“啟動該虛擬機”命令或工具欄上的綠色啟動按鈕),VMware 的窗口就出現(xiàn)了虛擬

18、機啟動的界面.4) RED HAT 會自動進入安裝程序的界面。首先詢問是以圖形界面還是以文本界面安裝,依據(jù)提示按回車選擇圖形界面安裝,接下來詢問是否要測試光驅(qū),這里選擇不要即可.方法是:在VMware 窗口上單擊鼠標,使光標從Windows 切換到VMware,再按鍵盤上的TAB 鍵,然后回車.5) 依提示選擇安裝語言(選擇簡體中文)、鼠標、鍵盤(使用默認值),安裝類型(選擇服務器)等之后進入磁盤分區(qū)界面,安裝程序問是否要自動分區(qū),直接點的“下一步”,這時出現(xiàn)“警告”,點擊“是”(這是虛擬磁盤,不會破壞你硬盤上原來的數(shù)據(jù))。下一個界面中有關(guān)于自動分區(qū)的3 種選擇,用戶可根據(jù)自己的需要進行選擇,

19、選擇此項以后在接下來的窗口中可以一路默認,連續(xù)點“Next"進入引導程序裝載界面.6) 在引導程序裝載界面連按“Next”。設置完系統(tǒng)語言和時區(qū)后進入根密碼的設置界面,安裝程序要求設置root密碼.設置好口令后連按“Next”,出現(xiàn)“選擇軟件包組”的對話框,也就是按裝選項,如下圖:根據(jù)自己的實際情況,選擇必要的軟件包,設置好后,點擊“下一步"。7) 等待一段時間直到出現(xiàn)更換光盤的提示,這樣第一個ISO 鏡像文件就安裝完成.安裝程序提示換第二張光盤,方法如2),按“瀏覽”,選擇你下載好的3個ISO 鏡像文件中的第二個,按OK,就完成了換第二個文件的工作.再用同樣方法安裝下載好

20、的第三個ISO 鏡像文件。8) 第三個文件裝完后, 系統(tǒng)問是否做啟動盤, 這個根據(jù)自己需要選擇,然后就是顯卡等的設置,一路默認。最后選一個“Next”,VMware 內(nèi)系統(tǒng)重啟。9) 重啟后,系統(tǒng)提示你創(chuàng)建一個個人用戶名(personal account)和密碼,這里自己創(chuàng)建一下。然后是選擇日期和試聽聲卡,然后問你是否注冊,接著又問有無附加安裝(這里建議先還是都不要了吧), 最后VMWARE 內(nèi)系統(tǒng)再次重啟。10) 啟動后輸入用戶名和密碼,就進入Red Hat9.0 界面。至此,Red Hat Linux 9。0 就安裝成功3、gcc工具的基本使用 (1)用Vi/Vim編輯器編寫如下代碼,取名

21、為gcc_t。c#include stdio。hint main() printf("Hello World!n”); return 0;(2) 默認編譯gcc_t。c文件 gcc gcc_t.c # lsa。out gcc_t.c(3)執(zhí)行a。out可執(zhí)行文件#。/a。outHello World!(4) 使用o選項:指定編譯后的二進制文件名 gcc -o test gcc_t.c lsgcc_t.c test(5) -x 選項:忽略源文件名后綴類型# gcc o gcc_t.x -x c gcc_t。xyz(6) E選項:只進行預處理 gcc E gcc_t。c o gcc_t。

22、i(7) -S選項:只進行到編譯階段# gcc S gcc_t。c lsgcc_t.c gcc_t。s(8) c 選項:編譯、匯編到目標代碼,不進行鏈接 gcc -c gcc_t.c lsgcc_t。c gcc_t。o(9) -M 選項:生成當前編譯程序文件關(guān)聯(lián)的詳細信息,包含目標文件所依賴的所有源代碼文件,包括頭文件. gcc M gcc_t。c四、實驗要求 1、掌握linux虛擬機的安裝方法. 2、掌握GCC編譯程序的步驟和方法。3、記錄下實驗運行的結(jié)果。4、認真書寫實驗報告,對實驗過程中出現(xiàn)的問題和原因及時記錄。實驗二、Linux常用命令實驗一、實驗目的掌握linux系統(tǒng)中常用命令的使用

23、方法.二、實驗環(huán)境硬件: PC機Pentium500以上,硬盤10G以上軟件:PC機操作系統(tǒng)Linux虛擬機開發(fā)環(huán)境。三、實驗步驟 在linux虛擬機中掌握以下常用命令的使用方法1cat 查看文件內(nèi)容,從鍵盤讀取數(shù)據(jù),合并文件等格式:cat -b-AET-n-sv 文件名選項說明:-b 不顯示文件中的空行。-A 相當于 -v -E T (vET)。-E 在文件的每一行行尾加上“”字符。-T 將文件中的Tab鍵用字符“I”來顯示。-n 在文件的每行前面顯示行號.-s 將連續(xù)的多個空行用一個空行來顯示。-v 顯示除Tab和Enter之外的所有字符。下面的命令演示了如何顯示file文件中的行號$ca

24、t -n file2.chmod 修改文件權(quán)限格式:chmod 選項 文件或目錄名選項說明:u 文件所有者g 文件所屬組o 其它用戶+ 增加權(quán)限- 取消權(quán)限= 賦給權(quán)限a 所有用戶r 讀權(quán)限w 寫權(quán)限x 執(zhí)行權(quán)限下面的命令演示了如何使所有用戶都可以讀寫file文件chmod a+rw file3。chown 改變文件所有者格式:chown -R-c用戶名組名 文件或目錄名選項說明:c 文件屬主改變時顯示說明。R/r 改變目錄下的文件及其子目錄下所有文件的屬主。下面的命令演示了如何改變 dir 目錄下的文件及其子目錄下的文件的屬主為bugboychown -R bugboy dir4。cp 復制

25、文件格式:cp 選項 源文件名 目標文件名選項說明:-R 復制整個目錄.f 刪除己存在的目標文件。i 使用f遇到刪除文件時給出提示.下面的命令演示了如何把 file 文件復制到當前用戶的根目錄下cp file /5。df 查看磁盤剩余空間格式:df -t-xkpa-mfilename選項說明:t 只輸出類型列在fstype中的文件系統(tǒng)。x 只輸出類型沒有列在fstype中的文件系統(tǒng).k 顯示空間以K為單位。-m 顯示空間以M為單位.-a 將空間為0的文件系統(tǒng)也輸出.filename 指定要查看的文件的大小.6。fdisk/sfdisk 查看硬盤分區(qū)信息格式:fdisk -l u device

26、.。fdisk s partition選項說明:u 列出分區(qū)表的時候以扇區(qū)的大小代替柱面大小。-l 列出給定設備的分區(qū)表,如果沒有給定設備,則列出/proc/partions中設備的分區(qū)表。-s partition 給出partition分區(qū)的大?。ㄒ詨K為單位)。7.find 查找文件格式:find 路徑匹配表達示其中匹配表達示有幾種類型:-name filename 查找指定名稱的文件.-user username 查找指定用戶名的文件。group grpname 查找指定級名的文件.-print 顯示查找的結(jié)果。-size n 查找大小為n塊的文件,一塊等于512字節(jié)。符號“+n”表示查找

27、大小大于n塊的文件;符號“nc”表示查找大小為n個字符的文件,同樣的也有符號“+nc”。inum n 查找索引結(jié)點號(i-node)為n的文件。atime n 查找n天前被訪問的文件?!?n"表示超過n天前被訪問的文件;“-n”表示不超過n天前被訪問的文件.mtime n 類似于atime,但是檢查的是文件內(nèi)容被修改的時間。ctime n 類似于atime,但檢查的是文件索引結(jié)點被改變的時間。-perm mode 查找與給定權(quán)限匹配的文件,必須以八進制的形式給出訪問權(quán)限。-newer file 查找比指定文件新的文件,即最后修改時間離現(xiàn)在較近。exec command 對匹配文件執(zhí)行

28、command命令,command后用了個大括號包括文件名。command必須以反斜杠和一個分號結(jié)尾.-ok command 執(zhí)行command的時候請求用戶確認。其它與exec相同。例:查找當前目錄下所有以。bak結(jié)尾的文件,并刪除它們$find 。 -name "。bak” -exec rm ;注:這里 .bak 必須要用單引號或者雙引號引起來,或者可以寫成*。bak。8。 kill 終止進程格式:kill -s|pa PID選項說明:-s 指明發(fā)送給進程的信號。例如-9(強行終止),默認發(fā)送TERM信號.-p 顯示進程的ID,不發(fā)送信號。-a 終止所有進程。0 給所有在當前進程

29、組中的進程發(fā)送信號。1 給所有進程號大于1的進程發(fā)送信號。9。ln 在文件之間建立鏈接格式:ln -b-d-Ff-in-sv 源文件 目錄文件或目錄選項說明:b 為刪除的文件建立備份。-d 允許root用戶建立硬鏈接。F 與b相同。-f 強行刪除目標文件。i 在刪除文件時給出提示。-n 當目標文件是目錄的符號鏈接時,替代該符號鏈接。s 用符號鏈接代替硬鏈接(建立符號鏈接).v 輸出被鏈接文件的文件名。10.ls 用于瀏覽目錄,查看當前目錄下的文件和文件名格式:ls 選項選項說明:-a 顯示所有文件(包括隱藏文件).-l 顯示文件的詳細信息。-k 顯示文件大小,以K為單位。color 顯示文件時

30、用不同顏色加以區(qū)別文件類型。d 將根目錄作為文件顯示。11.mount 加載文件系統(tǒng)格式:mount 磁盤或分區(qū)的設備文件 載入點 選項選項說明:-t 文件系統(tǒng)類型(fat32為vfat)o 選項 常用的選項有codepage,iocharset(對于中文codepage=936,iocharset=gb2312)loop 掛載ISO文件時用。舉個例子,掛載/dev/hda5到/mnt/wind目錄下并且目錄支持中文,命令如下:#mount t vfat /dev/hda5 /mnt/wind -o codepage=936,iocharset=gb231212.mv 重命名文件或移動文件格式

31、:mv bfiuv 源文件 目標文件或文件夾選項說明:-b 為源文件作備份f 文件重命名時強制覆蓋己有文件。i 覆蓋文件時給出提示。-u 目標文件比源文件新時不覆蓋。v 移動文件時給出相應的提示。13。ps 查看進程狀態(tài)格式:ps 選項選項說明:e/A 列出所有進程。u 選擇有效的用戶ID.-p 選擇指定終端下的進程.C 選擇指定的文件名.-f 列出所有詳細信息.-l 按長格式顯示。-j 按job格式顯示。x 選擇沒有控制終端的進程.14。rm 刪除文件或者目錄格式:rm -d-i-rv-f 文件名或目錄名選項說明:d 使用這個選項后,rm大體想當于unlink。-i 刪除每個文件時給用戶提示

32、。-r 刪除整個目錄,包括文件和子目錄。-v 刪除每個文件時給出提示。f 強制刪除,并且不給提示。15。tar 解壓或壓縮文件格式:tar 選項 文件文件1 目錄目錄1選項說明:A 將一個tar文件追加到一個存檔中。-c 生成一個新的存檔文件。-delete 從存檔中刪除。r 將文件添加到一個存檔的末尾。-l 列出一個存檔的內(nèi)容。-u 僅將些存檔中內(nèi)容較新的文件添加到存檔中。-x 從存檔中解壓縮文件.-v 詳細地列出處理過的文件的信息。z 用gzip來處理文件。-remove-files 將文件解壓之后就刪除它們。-Z 用compress來處理文件。注意:選項中必須包含有A c d r t u

33、 x中的一個或多個。16.top 查看CPU的使用率,修改進程運行優(yōu)先級格式:top 選項選項說明:d delay 指定刷新的秒數(shù)。-p pid 查看指定pid的CPU使用率。默認情況下進程按CPU使用率排序,可按PID(N),時限(A),常駐內(nèi)存使用率(M),時間(T),和CPU使用率(P)來排序。四、實驗要求 1、掌握linux系統(tǒng)常用命令的使用方法。 2、記錄下各條命令運行的結(jié)果.3、認真書寫實驗報告,對實驗過程中出現(xiàn)的問題和原因及時記錄。實驗三、linu C語言編程一、實驗目的通過此實驗,學生可以掌握Linux環(huán)境下文件的基本概念、文件的操作API,并且能夠利用基本理論實現(xiàn)Linux文

34、件的操作。二、實驗環(huán)境硬件:TQ2440嵌入式開發(fā)板,PC機Pentium500以上,硬盤10G以上軟件:PC機操作系統(tǒng)Linux虛擬機開發(fā)環(huán)境.三、實驗原理文件編程需要掌握的基本概念有文件描述符、文件流指針,還有就是跟文件相關(guān)的系統(tǒng)調(diào)用read及write等.四、實驗步驟1、實現(xiàn)簡單的文件拷貝copy命令.cp1文件代碼如下:/ cp1.c version 1 of cp uses read and write with tunable buffer size * * usage: cp1 src dest /include <stdio。h#include <unistd。h&

35、gt;#include <fcntl.h#define BUFFERSIZE 4096#define COPYMODE 0644void oops(char , char );main(int ac, char av) int in_fd, out_fd, n_chars; char bufBUFFERSIZE;/* check args */ if ( ac != 3 ) fprintf( stderr, ”usage: s source destinationn", av); exit(1); / open files*/ if ( (in_fd=open(av1, O_R

36、DONLY) = 1 ) oops(”Cannot open ", av1); if ( (out_fd=creat( av2, COPYMODE) = 1 ) oops( ”Cannot creat", av2);/ copy files/ while ( (n_chars = read(in_fd , buf, BUFFERSIZE)) 0 ) if ( write( out_fd, buf, n_chars ) != n_chars ) oops(”Write error to ", av2);if ( n_chars = -1 )oops("Re

37、ad error from ", av1);/ close files/ if ( close(in_fd) = 1 | close(out_fd) = -1 ) oops(”Error closing files”,"”);void oops(char s1, char s2) fprintf(stderr,"Error: %s ", s1); perror(s2); exit(1);編譯程序,生成a。out,然后在同名目錄下,建立1,2兩個文件,echo “111”>1,這樣1中內(nèi)容為111,執(zhí)行a.out如下:./a.out 1 2這樣2中的

38、內(nèi)容也為1112、編寫ls1,實現(xiàn)只顯示當前目錄下文件名功能,代碼如下:include<stdio。h>include<sys/types。h#include<dirent。h>void do_ls(char );main(int ac, char av)if ( ac = 1 )do_ls( "." );elsewhile ( -ac )printf("s:n", *+av );do_ls( *av );void do_ls( char dirname )/* *list files in directory called

39、 dirname */DIRdir_ptr;/* the directory /struct dirent*direntp;/* each entry */if ( ( dir_ptr = opendir( dirname ) ) = NULL )fprintf(stderr,”ls1: cannot open %sn”, dirname);elsewhile ( ( direntp = readdir( dir_ptr ) ) != NULL )printf(”%sn”, direntp>d_name );closedir(dir_ptr);編譯程序,直接運行即可。五、實驗要求 1、掌

40、握Linux系統(tǒng)中文件編程的方法。 2、記錄下實驗運行的結(jié)果。3、認真書寫實驗報告,對實驗過程中出現(xiàn)的問題和原因及時記錄。實驗四、建立交叉編譯環(huán)境一、實驗目的掌握crosstools_all.tar。bz2腳本工具包來制作交叉編譯器的方法.二、實驗環(huán)境硬件:TQ2440嵌入式開發(fā)板,PC機Pentium500以上,硬盤10G以上軟件:PC機操作系統(tǒng)Linux虛擬機開發(fā)環(huán)境.三、實驗步驟Linux 下開發(fā)環(huán)境的建立主要就是建立交叉編譯環(huán)境,在虛擬機里面建立一個能編譯arm-linux 內(nèi)核及驅(qū)動、應用程序等開發(fā)環(huán)境的步驟如下:1、先將光盤下的“Linux”目錄中的“crosstools_all.

41、tar。bz2 ”交叉編譯器壓縮包復制到Linux系統(tǒng)中的“/opt/EmbedSky/”目錄下,然后在該目錄下解壓:(下面的命令是在PC 端的終端運行的)cd /opt/EmbedSkytar xvfj crosstools_all.tar。bz2 C /執(zhí)行解壓命令之后,就把交叉編譯器分別安裝到“/usr/local/arm/”目錄下的“2.95。3”和“3。3。2”目錄中以及“/opt/EmbedSky/crosstools_3。4。1_softfloat/”目錄下,同時,還會安裝制作文件系統(tǒng)的軟件到“/usr/local/sbin/”目錄下:然后執(zhí)行命令:#gedit /etc/pro

42、file然后在“profile”文件里面添加如下信息:保存了profile 文件之后執(zhí)行如下命令就可以是該交叉編譯器成為當前默認的交叉編譯器:#source /etc/profile然后在執(zhí)行命令,就可以檢查交叉編譯器是否安裝成功,也可以用該命令來查看當前交叉編譯器的版本了:#armlinux-gcc v得到如下信息:因為開發(fā)的需要可能要隨時更改交叉編譯器的版本,此時只用運行前面的指令“gedit/etc/profile”修改“/etc/profile"文件,然后使它生效“source /etc/profile”就OK 了,此時運行“arm-linuxgcc -v"就可以查

43、看到更新的交叉編譯器了。(注意:更新后,可能在同一個終端里面查看時還是剛才那個交叉編譯器,此時只需打開一個新的終端,然后再查看交叉編譯器,就會發(fā)現(xiàn)交叉編譯器已經(jīng)更換了。)使用“#/etc/init。d/nfs stop"指令可以停止NFS 服務。為了在PC 開機時系統(tǒng)自動啟動NFS 服務,操作如下:使用指令“#redhatconfig-services”打開系統(tǒng)服務配置窗口:在左側(cè)一欄中找到NFS 服務選項框,并選中它:然后再點擊“文件(F)”菜單的“保存改變”選項保存設置。2、配置PC機Linux的FTP 服務和配置NFS 服務類似,使用“redhatconfigservices”

44、命令,打開系統(tǒng)服務配置窗口,然后在左側(cè)找到“vsftpd”選項,并選中它,然后保存設置:3、配置PC機Linux的Telnet服務和配置NFS 服務類是,使用“redhat-config-services”命令,打開系統(tǒng)服務配置窗口,然后在左側(cè)找到“telnet”選項,并選中它,然后保存設置:四、實驗要求 1、掌握交叉編譯環(huán)境的搭建方法。 2、記錄下實驗運行的結(jié)果.3、認真書寫實驗報告,對實驗過程中出現(xiàn)的問題和原因及時記錄.實驗五、Linux基本應用程序?qū)嶒炓弧嶒災康耐ㄟ^此實驗,學生可以掌握Linux環(huán)境下客戶端與服務器網(wǎng)絡編程方法和常用API的使用。二、實驗原理和方法網(wǎng)絡編程就是利用LIN

45、UX內(nèi)核的API實現(xiàn)網(wǎng)絡上的服務器和客戶端的應用程序,在不了解協(xié)議棧的情況下,進行應用層的程序開發(fā)。典型的代表用TFTP服務器實現(xiàn)、TELNET服務器實現(xiàn)等.三、實驗設備 硬件:QT2440嵌入式開發(fā)板,PC機Pentium500以上,硬盤10G以上 軟件:PC機操作系統(tǒng)Linux虛擬機開發(fā)環(huán)境。四、實驗內(nèi)容和步驟1. 使用Vi/Vim編輯器編寫server。c#include <stdio。h#include stdlib。hinclude <string.h#include <sys/types.h#include sys/socket。h#include netinet

46、/in。h> /* for struct sockaddr_in/#define BACKLOG 10define MYPORT 4000int main()char addr;int sockfd;int new_fd;struct sockaddr_in my_addr, their_addr;int res;int sin_size;char buf;sockfd = socket(AF_INET, /* domain/SOCK_STREAM, /*type*/0);/* protocol*/if (sockfd = 1) perror(”socket”);exit(1);/ In

47、it sockaddr_in */my_addr.sin_family = AF_INET; my_addr。sin_port = htons(MYPORT); my_addr.sin_addr.s_addr =htonl(INADDR_ANY); bzero(&(my_addr。sin_zero), 8); res = bind(sockfd, (structsockaddr*)&my_addr,sizeof(struct sockaddr));if (res = 1) perror(”bind”);exit(1);res = listen(sockfd, BACKLOG);

48、 if (res = 1) perror(”listen”);exit(1);sin_size = sizeof(structsockaddr_in);buf = (char*)malloc(255);if (buf = NULL) printf(”malloc failedn”);exit(1);new_fd = accept(sockfd,(void *)&their_addr,sin_size);while(1)memset(buf,0,255);res =recv(new_fd,buf,255,0);if (res = 1)perror("recv()”);exit(

49、1);if(buf0!=0)printf(”C:%sn",buf);memset(buf,0,255);gets(buf);if (send(new_fd, buf,strlen(buf), 0) = 1)perror(”send");close(new_fd);close(sockfd);free(buf);return0;2、使用Vi/Vim編輯器編寫client。c#include <string。hinclude stdlib。hinclude sys/types。hinclude <sys/socket。hinclude <netinet/in。

50、h> /*for struct sockaddr_in*/define DEST_IP ""/#define DEST_PORT 4000int main(int argc,int *argv)int res;int sockfd;struct sockaddr_in dest_addr;char msg100;int len, bytes_sent;sockfd = socket(AF_INET, SOCK_STREAM, 0);if (sockfd = 1) perror("socket()”);exit(1);/scanf(”%s

51、”,msg);dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(argv2); dest_addr。sin_addr。s_addr =inet_addr(argv1); bzero(&(dest_addr.sin_zero), 8); res = connect(sockfd, (struct sockaddr )&dest_addr,sizeof(struct sockaddr_in);if (res = -1) perror("connect()");exit(1);while(1)me

52、mset(msg,0,100);gets(msg);/printf("C:%sn”,msg);len = strlen(msg);if(msg0!=0)bytes_sent = send(sockfd, msg, len,0); memset(msg,0,100);if (recv(sockfd, msg, 100, 0) =-1) perror(”recv:”);if(msg0!=0)printf(”S:%sn",msg);close(sockfd);對上述兩個源文件進行編譯,分別運行程序.3、使用Vi/Vim編輯器編寫server.c,實現(xiàn)回復信息,客戶端程序可不編寫,由telnet程序?qū)崿F(xiàn)include <stdio。h#include <stdlib。h#incl

溫馨提示

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

評論

0/150

提交評論