




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、嵌入式技術(shù)應(yīng)用實 訓(xùn) 指 導(dǎo) 書2011年9月目 錄實訓(xùn)1 在虛擬機上安裝Linux系統(tǒng)1實訓(xùn)目的:1實訓(xùn)條件:1實訓(xùn)步驟:11.安裝和使用VMWare711.1.解壓并安裝VMware11.2.新建虛擬機12.在VMWare虛擬機上安裝Linux發(fā)行版Fedora942.1.安裝Fedora942.2.第一次運行Fedora9113.在VMWare虛擬機上使用光盤映像文件xxx.iso153.1.虛擬機啟動之前設(shè)置光盤映像文件153.2.虛擬機啟動進入Linux系統(tǒng)之后設(shè)置光盤映像文件16實訓(xùn)報告:17實訓(xùn)2 練習(xí)使用Linux操作系統(tǒng)18實訓(xùn)目的:18實訓(xùn)條件:18實訓(xùn)步驟:181.目錄的
2、瀏覽、建立、復(fù)制和刪除181.1.使用文件瀏覽器管理目錄181.2.使用命令管理目錄182.文本文件的建立、復(fù)制和刪除192.1.使用編輯器gedit編輯文件192.2.使用命令行終端建立、復(fù)制和刪除文件193.Linux常用命令的使用20實訓(xùn)報告:20實訓(xùn)3 練習(xí)使用GCC工具21實訓(xùn)目的:21實訓(xùn)條件:21實訓(xùn)步驟:211.查看gcc版本信息212.查看頭文件和庫文件213.gcc的基本用法223.1.通過hello程序了解編程流程223.2.gcc命令選項的使用233.3.處理編譯錯誤244.gdb的基本用法254.1.編譯生成帶調(diào)試信息的hello程序264.2.調(diào)試gdbhello程
3、序265.make工具的使用275.1.makefile文件的基本寫法285.2.使用變量的makefile文件的寫法295.3.使用自動變量和預(yù)定義變量的makefile文件的寫法29實訓(xùn)報告:30實訓(xùn)4 練習(xí)使用mini2440開發(fā)板31實訓(xùn)目的:31實訓(xùn)條件:31實訓(xùn)步驟:311.開發(fā)板設(shè)置及連接311.1.啟動模式選擇311.2.外部接口連接311.3.打開電源312.使用Linux 之圖形界面Qtopia 2.2.0 系統(tǒng)312.1.觸摸屏校正312.2.主要界面說明322.3.自動裝載SD 卡和優(yōu)盤322.4.練習(xí)運行Qtopia 2.2.0 系統(tǒng)的各種程序333.練習(xí)使用串口終端
4、操作開發(fā)板373.1.硬件連接和開關(guān)設(shè)置373.2.設(shè)置超級終端373.3.使用超級終端控制開發(fā)板393.4.通過串口與PC互相傳送文件414.使用Telnet 遠(yuǎn)程登錄開發(fā)板42實訓(xùn)5 建立交叉編譯工具鏈43實訓(xùn)目的:43實訓(xùn)條件:43實訓(xùn)步驟:431.使用arm_Linux_crosstools.iso光盤映像建立交叉編譯工具432.設(shè)置Windows共享目錄433.使用交叉編譯工具444.在make工具中使用交叉編譯工具44實訓(xùn)報告:45實訓(xùn)6 下載系統(tǒng)文件到開發(fā)板46實訓(xùn)目的:46實訓(xùn)條件:46實訓(xùn)步驟:461.安裝USB下載驅(qū)動462.為開發(fā)板下載系統(tǒng)映像文件46實訓(xùn)報告:48實訓(xùn)7
5、 移植linux內(nèi)核49實訓(xùn)目的:49實訓(xùn)條件:49實訓(xùn)步驟:49實訓(xùn)8 制作linux根文件系統(tǒng)50實訓(xùn)目的:50實訓(xùn)條件:50實訓(xùn)步驟:501.復(fù)制源代碼包502.解壓源碼包503.修改Makefile504.進行配置505.編譯busybox516.安裝517.建立目錄518.改變tmp目錄權(quán)限(在/tmp/nfs目錄執(zhí)行命令)519.建立設(shè)備節(jié)點5110.將busybox-1.13.3/root中的內(nèi)容復(fù)制到/tmp/nfs5111.復(fù)制配置文件5212.制作yaffs2根文件系統(tǒng)52實訓(xùn)9 簡易Linux驅(qū)動程序53實訓(xùn)目的:53實訓(xùn)條件:53實訓(xùn)步驟:531.啟動vmware虛擬機
6、532.編輯源文件533.建立Makefile文件534.編譯、安裝545.加載驅(qū)動程序模塊546.卸載驅(qū)動程序模塊54實訓(xùn)10 設(shè)計LED設(shè)備驅(qū)動程序55實訓(xùn)目的:55實訓(xùn)條件:55實訓(xùn)步驟:551.啟動vmware虛擬機552.復(fù)制內(nèi)核源代碼553.編輯源文件554.把myled_driver加入內(nèi)核代碼樹,并編譯585.把myled_driver下載到開發(fā)板并安裝使用586.編制led測試程序597.卸載myled_driver驅(qū)動程序60實訓(xùn)報告:60實訓(xùn)11 設(shè)計按鍵設(shè)備驅(qū)動程序61實訓(xùn)目的:61實訓(xùn)條件:611.啟動vmware虛擬機612.復(fù)制內(nèi)核源代碼613.編輯源文件614.
7、編制按鍵測試程序64實訓(xùn)12 設(shè)計按鍵設(shè)備驅(qū)動程序66實訓(xùn)目的:66實訓(xùn)條件:661.啟動vmware虛擬機662.復(fù)制內(nèi)核源代碼663.編輯源文件664.編制按鍵測試程序69實訓(xùn)13 綜合項目設(shè)計按鍵控制LED程序71實訓(xùn)目的:71實訓(xùn)條件:71實訓(xùn)內(nèi)容:71實訓(xùn)報告:71實訓(xùn)14 附加項目安裝和使用skyeye72實訓(xùn)目的:72實訓(xùn)條件:72實訓(xùn)步驟:721.安裝SkyEye722.運行示例程序723.配置文件說明75steel welding procedure 6 SH3525-2004 petrochemical JB/ T4708-2000 of welding procedure
8、 qualification for steel pressure vessels 7 JB/4709-2000 8 JB4730-2005 pressure vessel welding procedures of steel pressure vessel NDT 9 JB/T4744-2000 steel pressure vessel products mechanical properties test of welded plate II, mechanical equipment installation engineering 1 GB150-98 2 GB50128-2005
9、 vertical cylindrical steel pressure vessel steel welded specification for construction and acceptance of oil tank 3 JB/ T4735-1997 steel welded atmospheric pressure vessel 4 GB50231-2009 mechanical equipment installation engineering construction and acceptance specification for 5 GB50275-98 compres
10、sor, fan and pump installation engineering construction and acceptance specification for lifting 6 HG20201-2000 construction installation engineering construction standard 7, HG . Pressure gauges, using an installed spark arrestor for acetylene cylinders, illegal carrying, using gas cylinders, each
11、operator fined 20 Yuan. Gas bottle without the hot sun exposure measures, responsibilities of team a fine of 50 Yuan. (7) at height and the opening and provisional protective measures have been taken, the responsible unit fined 200 Yuan, construction person in charge a fine of 50 Yuan. (8) no permit
12、 to work and the job in accordance with the provisions, on the job unit fined 300 yuan, the unit will charge a fine of 100 Yuan. 7.5.3 accident penalties (1) injuries fatalities directly punished 12 million. Direct responsibility for the accident and have the corresponding responsibility of leadersh
13、ip, such as concerning administrative sanctions, should be brought to the company or the relevant Department. (2) personal injury75實訓(xùn)1 在虛擬機上安裝Linux系統(tǒng)實訓(xùn)目的:1、 學(xué)習(xí)在windows環(huán)境下,虛擬機VMWare的安裝和使用2、 學(xué)習(xí)在虛擬機VMWare上安裝Linux(發(fā)行版Fedora 9)實訓(xùn)條件:1、 已經(jīng)安裝winxp系統(tǒng)的計算機2、 VMWare7.0安裝程序(VMware_Workstation.rar)3、 Fedora 9安裝光盤
14、iso映像文件(Fedora-9-i386-DVD.iso)實訓(xùn)步驟:1. 安裝和使用VMWare71.1. 解壓并安裝VMware(1)解壓縮VMware_Workstation.rar到D盤根目錄下,不能解壓到含有中文路徑的目錄下,否則安裝過程中或使用中可能會出現(xiàn)問題。(2)雙擊“!)安裝.cmd”文件啟動安裝命令,如果提示“你的系統(tǒng)中已經(jīng)安裝了.”,你必須先卸載之前的版本;卸載方法:可以用之前版本的卸載工具“!)卸載.cmd”卸載。卸載之后一定要重啟!否則會由此產(chǎn)生很多問題。(3)出現(xiàn)“精簡版相關(guān)服務(wù)安裝 主菜單”后,可按0需要全部功能,等待完成即可。(如果不需要全部功能則可選擇按1-7
15、,選項的具體含義見“使用說明.txt”文件)(4)建立桌面快捷方式,方便運行,方法如下:以鼠標(biāo)右鍵單擊“vmware.exe”文件,在彈出菜單中點擊“發(fā)送到”子菜單下的“桌面快捷方式”項。安裝完成后就可雙擊桌面上的“vmware.exe快捷方式”來運行VMWare 7.0了。1.2. 新建虛擬機(1)點擊圖標(biāo)或者點擊【文件/新建虛擬機】菜單打開“新建虛擬機向?qū)А比缦聢D所示。選擇標(biāo)準(zhǔn)類型配置,點擊“下一步”按鈕。 (2)選擇“安裝鏡像文件”,點擊,選擇Fedora-9-i386-DVD.iso文件(根據(jù)你的iso文件的具體存儲位置選擇,可能和上圖顯示不同)。點擊“下一步”按鈕。(3)在虛擬機名稱
16、文本框中輸入“Fedora9”,點擊“瀏覽”按鈕創(chuàng)建“D:fedora9”文件夾,作為虛擬機的存放目錄。點擊“下一步”按鈕。(4)指定磁盤容量最大20G,點擊“下一步”按鈕。 (5)檢查設(shè)置沒有錯誤后,點擊“完成”按鈕。會出現(xiàn)“Fedora is not supported”的提示信息,這時關(guān)閉提示信息對話框。點擊【虛擬機/設(shè)置】菜單,出現(xiàn)“虛擬機設(shè)置”對話框,點擊左上角“選項”選擇卡,在右側(cè)欄的版本對話選擇“Other Linux 2.6.x kernel”項,點擊“確定”按鈕。2. 在VMWare虛擬機上安裝Linux發(fā)行版Fedora9提示:虛擬機運行起來后,相當(dāng)于虛擬出來另一臺計算機,
17、它也使用宿主系統(tǒng)WindowXP的鍵盤和鼠標(biāo),如果在安裝過程中想點擊安裝界面中的按鈕直接用鼠標(biāo)點擊即可,如果想使鼠標(biāo)離開虛擬機窗口,應(yīng)當(dāng)按“Ctrl+Alt”鍵。2.1. 安裝Fedora9(1)點擊窗口中的“”,啟動虛擬機,出現(xiàn)Fedora的安裝界面,如下圖所示:(2)使用鍵盤的“上、下方向鍵”選擇第一項“Install or upgrade an existing system”開始安裝Fedora,當(dāng)出現(xiàn)下圖“test media”界面時,使用鍵盤的“左、右方向鍵”選擇“Skip”項跳過安裝媒體的檢查,按“回車鍵”繼續(xù)安裝。(3)幾分鐘后出現(xiàn)下圖界面,按“Next”按鈕繼續(xù);(4)出現(xiàn)“
18、What language would you like ”界面時,選擇“簡體中文”,按“Next”按鈕繼續(xù);(5)出現(xiàn)“請為您的系統(tǒng)選擇合適的鍵盤” 界面時,選擇“美國英語式”,按“下一步”按鈕繼續(xù);(6)彈出警告對話框時,按“是”按鈕;(7)出現(xiàn)“網(wǎng)絡(luò)設(shè)備”窗口點“Edit”按鈕打開編輯界面,我們一般使用靜態(tài)的IP,選中“手動配置”,分別輸入IP和子網(wǎng)掩碼,按“確定”按鈕,設(shè)置網(wǎng)關(guān)為,設(shè)置主DNS為,按“下一步”按鈕繼續(xù);(8)出現(xiàn)時區(qū)設(shè)置界面時,選擇城市為“Asia/Shanghai”, 按“下一步”按鈕繼續(xù);(9)出現(xiàn)設(shè)置根賬號(root)密
19、碼界面時,輸入密碼123456,彈出“脆弱密碼”對話框,按“是”按鈕采用此密碼;(10)出現(xiàn)安裝硬盤分區(qū)設(shè)置界面時,直接按“下一步”按鈕,彈出“將分區(qū)寫入磁盤”對話框,按“將修改寫入磁盤”按鈕繼續(xù),顯示格式化分區(qū)進度條;(11)出現(xiàn)選擇安裝的軟件包界面時,選中“軟件開發(fā)”,“現(xiàn)在定制”,按“下一步”按鈕,選中“服務(wù)器”類的“FTP服務(wù)器”和“老的網(wǎng)絡(luò)服務(wù)器”,按“下一步”按鈕開始安裝,將依次顯示“檢查依賴關(guān)系”進度條、“開啟安裝進程”進度條、“軟件包安裝進度”進度條,安裝過程比較長,大約30分鐘,請耐心等待;(12)安裝完成后顯示“祝賀您,安裝已完成?!苯缑妫础爸匦乱龑?dǎo)”按鈕重啟Fedora
20、系統(tǒng);2.2. 第一次運行Fedora9第一次運行Fedora9需要進行時區(qū)、賬戶、網(wǎng)絡(luò)等一些設(shè)置。(1)按按鈕打開虛擬機電源,出現(xiàn)Fedora引導(dǎo)畫面。(2)第一次運行時會出現(xiàn)“歡迎”界面,按“前進”按鈕。(3)出現(xiàn)“許可證信息”界面,按“前進”按鈕。(4)出現(xiàn)“創(chuàng)建用戶”界面時,輸入用戶名和密碼創(chuàng)建一個普通用戶,用戶名和密碼都用“arm”,按“前進”按鈕。(5)出現(xiàn)“Date and Time”界面時,直接按“前進”按鈕。(6)最后出現(xiàn)“硬件配置”界面,顯示硬件信息,直接按“完成”按鈕,彈出詢問是否發(fā)送配置文件的對話框,點擊“不,不發(fā)送”按鈕,完成首次啟動的設(shè)置。(7)Fedora啟動起來
21、后,首先顯示登錄界面如下圖所示,點擊“arm”用戶,在“password”文本框中輸入密碼,點擊“登錄”按鈕,出現(xiàn)GNOME桌面,這樣Fedora就啟動完成了,以后就可以通過鼠標(biāo)在。3. 在VMWare虛擬機上使用光盤映像文件xxx.iso3.1. 虛擬機啟動之前設(shè)置光盤映像文件按照下圖步驟在虛擬機開啟電源之前,設(shè)置要使用的光盤映像文件xxx.iso,開啟虛擬機電源啟動進入Fedora系統(tǒng)之后,光盤映像掛載在/media目錄下,在桌面上顯示光盤圖標(biāo),就可以像使用普通光盤一樣使用光盤映像了。3.2. 虛擬機啟動進入Linux系統(tǒng)之后設(shè)置光盤映像文件(1)進入Linux系統(tǒng)之后若桌面上已經(jīng)有光盤圖
22、標(biāo),說明光驅(qū)中已經(jīng)有光盤,如果想改用新的光盤映像文件,首先應(yīng)彈出原光盤。如下圖所示,鼠標(biāo)右鍵點擊光盤圖標(biāo),在彈出的快捷菜單中點擊“彈出”,就可以彈出原光盤。(2)使用虛擬機菜單【虛擬機/可移動設(shè)備/CD/DVD(IDE)/設(shè)置】打開“虛擬機設(shè)置”對話框,按照前面步驟選擇使用的光盤映像文件xxx.iso(3)使用虛擬機菜單【虛擬機/可移動設(shè)備/CD/DVD(IDE)/連接】啟用光盤映像。Linux系統(tǒng)桌面上將出現(xiàn)新光盤映像圖標(biāo)。實訓(xùn)報告:列出Linux系統(tǒng)安裝過程中遇到的問題,并敘述解決問題的過程。實訓(xùn)2 練習(xí)使用Linux操作系統(tǒng)實訓(xùn)目的:1、 熟悉linux系統(tǒng)環(huán)境2、 練習(xí)常用圖形界面工具
23、的使用3、 練習(xí)常用終端窗口命令的使用。實訓(xùn)條件:1、 已經(jīng)安裝安裝Linux系統(tǒng)的計算機(或winxp系統(tǒng)下在VMWare虛擬機上安裝Linux系統(tǒng));2、 打開虛擬機啟動linux,以arm用戶登錄。實訓(xùn)步驟:1. 目錄的瀏覽、建立、復(fù)制和刪除1.1. 使用文件瀏覽器管理目錄雙擊桌面上的 圖標(biāo)將打開文件瀏覽器,和window系統(tǒng)的文件瀏覽器使用方法一樣。任務(wù):(1) 在arm用戶的目錄(/home/arm)下建立work1目錄(2) 在work1目錄下建立test1和test2目錄(3) 將test1目錄復(fù)制到/tmp下(4) 刪除test2目錄1.2. 使用命令管理目錄使用【應(yīng)用程序/系
24、統(tǒng)工具/終端】菜單打開命令行終端窗口。任務(wù):(1) 在arm用戶的目錄(/home/arm)下建立work2目錄(2) 在work2目錄下建立test1和test2目錄(3) 將test1目錄復(fù)制到/tmp下(4) 刪除test1目錄2. 文本文件的建立、復(fù)制和刪除2.1. 使用編輯器gedit編輯文件gedit是Linux系統(tǒng)下的文本編輯器,使用方法類似于windows系統(tǒng)下的記事本程序,但具有自動根據(jù)文件類型語法加亮顯示的功能。gedit通過【應(yīng)用程序/附件/文本編輯器】啟動。任務(wù):(1) 新建一個文件,保存在/home/arm/work1/test1目錄下,文件名prog1.c(2) 在
25、prog1.c文件中輸入如下內(nèi)容,保存(3) 將prog1.c文件另存為prog2.c,修改內(nèi)容如下,保存(4) 新建lib.c文件,保存在/home/arm/work1/test1目錄下,內(nèi)容如下2.2. 使用命令行終端建立、復(fù)制和刪除文件使用【應(yīng)用程序/系統(tǒng)工具/終端】菜單打開命令行終端窗口。任務(wù):(1) 使用cp命令,將/home/arm/work1/test1目錄下文件復(fù)制到/home/arm/work2/test2目錄下(2) 使用cd命令進入/home/arm/work2/test2目錄(3) 使用cat命令查看prog1.c文件內(nèi)容(4) 使用mv命令將/home/arm/wor
26、k2/test2目錄下的prog1.c文件重命名為為prog3.c(5) 使用ls命令列出/home/arm/work2/test2目錄下的內(nèi)容。(6) 使用rm命令刪除lib.h文件3. Linux常用命令的使用Linux常用命令如下:下面的操作都在命令行終端中執(zhí)行,絕大多數(shù)命令都有參數(shù),參數(shù)說明可以參考實驗指導(dǎo)書,命令后加-help顯示幫助,所有命令都可以通過-help參數(shù)獲得幫助信息。任務(wù):(1) 在終端中依次輸入上述命令,練習(xí)各種命令的使用(2) 使用vim命令編輯一個prog4.c文件,內(nèi)容如prog1.c,保存在/home/arm/work2/test2目錄下。實訓(xùn)報告:列出實訓(xùn)中
27、用到的Linux命令,并簡要說明其功能。實訓(xùn)3 練習(xí)使用GCC工具實訓(xùn)目的:練習(xí)linux系統(tǒng)下c語言開發(fā)工具集GCC的使用。實訓(xùn)條件:已經(jīng)安裝安裝Linux系統(tǒng)的計算機,GCC工具已隨系統(tǒng)安裝(或winxp系統(tǒng)下在VMWare虛擬機上安裝Linux系統(tǒng));實訓(xùn)步驟:GCC是Linux下最重要的軟件開發(fā)工具之一。GNU提供的編譯工具包括匯編器as、C編譯器gcc、C+編譯器g+、鏈接器ld和二進制轉(zhuǎn)換工具objcopy 。gcc(GNU C Compiler)是GCC編譯器組件之一,是一個全功能的ANSI C兼容編譯器。在為Linux開發(fā)應(yīng)用程序時,絕大多數(shù)情況下使用的都是C語言,因此幾乎每一
28、位Linux程序員面臨的首要問題都是如何靈活運用C編譯器。實訓(xùn)主要練習(xí)gcc、make 和gdb的基本使用方法。1. 查看gcc版本信息(1)打開終端窗口,輸入gcc v命令查看gcc版本信息:(2)使用whereis gcc命令查看gcc相關(guān)目錄2. 查看頭文件和庫文件使用文件瀏覽器查看gcc編譯工具頭文件和庫文件目錄,文件瀏覽器還可以通過以下方法打開:l 使用【應(yīng)用程序/系統(tǒng)工具/文件瀏覽器】菜單l 使用【位置】菜單(1)打開文件瀏覽器,進入/usr/bin目錄,找到gcc文件,這就是gcc命令執(zhí)行文件。(2)查看頭文件,進入/usr/include目錄,找到c語言頭文件stdio.h,這
29、就是使用輸入輸出函數(shù)(如printf函數(shù))所需要包含的頭文件。(3)查看庫文件,進入/usr/lib目錄,找到libc.a和libc.so文件,libc.a是標(biāo)準(zhǔn)C語言靜態(tài)庫,libc.so是標(biāo)準(zhǔn)C語言共享庫(動態(tài)鏈接庫),編程是默認(rèn)使用共享庫。常用到的Linux編程庫列表:庫名稱說明庫名稱說明libc.so標(biāo)準(zhǔn)的C庫libgthread.soGlib線程支持libdl.so連接使用的源代碼庫libgtk.soGIMP下的X庫libglib.soGlib庫libz.so壓縮例程庫libm.so標(biāo)準(zhǔn)數(shù)學(xué)庫libvga.soLinux的VGA和SVGA圖形庫libGL.soOpenGL的接口lib
30、resolve.so使用因特網(wǎng)域名服務(wù)器接口libcom_err.so常用出錯例程集合libpthread.soLinux多線程庫libdb.so創(chuàng)建和操作數(shù)據(jù)庫libgdm.soGNU數(shù)據(jù)庫管理器3. gcc的基本用法gcc是一個全功能的ANSI C兼容編譯器,使用gcc編譯工具將C語言源程序編譯成可執(zhí)行文件,要依次經(jīng)過四個階段,即:預(yù)處理(Pre-Processing)、編譯(Compiling)、匯編(Assembling)和鏈接(Linking)。在編譯C語言源程序時,GCC首先調(diào)用cpp命令進行預(yù)處理(比如將源代碼中指定的頭文件包含進來)。接著調(diào)用cc1命令進行編譯,將源代碼翻譯生成
31、匯編代碼。然后調(diào)用as命令進行匯編,生成擴展名為.o的目標(biāo)文件。當(dāng)生成所有的目標(biāo)文件之后,GCC最后調(diào)用鏈接器ld生成可執(zhí)行文件。流程總結(jié)如下:源程序預(yù)處理器(cpp)編譯器(ccl)匯編器(as)鏈接器(ld)可執(zhí)行文件。3.1. 通過hello程序了解編程流程(1)在/root目錄下建立新目錄gccshiyan(2)打開gedit文本編輯器,編輯hello.c源程序,并保存在gccshiyan目錄(3)使用gcc編譯hello.c,生成可執(zhí)行文件hello用-o編譯選項為要產(chǎn)生的可執(zhí)行文件指定文件名hello(4)執(zhí)行hello程序3.2. gcc命令選項的使用常用編譯選項選項說明-c告訴
32、GCC僅把源代碼編譯為目標(biāo)代碼,跳過鏈接的步驟,采用該選項不會生成可執(zhí)行程序,而是生成與源文件名相同的以.o為后綴的目標(biāo)文件。-o如果沒有使用-o選項,會在當(dāng)前目錄下生成一個名為a.out的可執(zhí)行程序。使用-o選項,-o后面帶有自定義文件名,使用gcc命令生成可執(zhí)行文件時,-S告訴GCC在為C代碼產(chǎn)生匯編語言文件后停止編譯。GCC會生成一個后綴名為.s的匯編語言文件,但是同樣不會生成可執(zhí)行的程序-E-E選項指示編譯器僅對輸入文件進行預(yù)處理,預(yù)處理器的輸出被送到標(biāo)準(zhǔn)輸出(如顯示器)而不是儲存在文件里。-staticGCC默認(rèn)情況下鏈接共享庫,有時為了把一些函數(shù)靜態(tài)編譯到程序中,而無需鏈接動態(tài)庫,
33、就采用-static選項-I指定頭文件路徑。一般情況下,Linux下的大多數(shù)函數(shù)都將頭文件放到/usr/include/目錄下。但在有些情況下并不是這樣,此時,使用GCC編譯時必須指定所需要的頭文件所在的路徑。-I選項可以向GCC的頭文件搜索路徑中添加新的目錄。例如,一個源程序所依賴的頭文件在用戶/home/ztg/include/目錄下,此時就要使用-I選項來指定:#gcc -I /home/ztg/include -o hello hello.c-L指定庫文件路徑。類似-I。通常,Linux將庫文件放到/usr/lib/目錄下。如果使用了不在標(biāo)準(zhǔn)位置的庫,那么可以通過-L選項向GCC的庫文
34、件搜索路徑中添加新的目錄。例如,一個程序要用到的庫libapp.so在/home/ztg/lib/目錄下,為了讓GCC能夠順利地鏈接該庫,可使用命令:#gcc hello.c -L /home/ztg/lib -lapp -o hello這里的-l選項表示GCC去鏈接庫文件libapp.so。Linux下的庫文件在命名時有一個約定,應(yīng)該以lib三個字母開頭,由于所有的庫文件都遵循了同樣的規(guī)范,因此在用-l選項指定鏈接的庫文件名時,可以省去lib三個字母,也就是說GCC在對-lapp進行處理時,會自動鏈接名為libapp.so的庫文件-llibrary告訴鏈接程序在生成最終可執(zhí)行文件時用到的庫-
35、g告訴編譯器,在編譯的時候,產(chǎn)生調(diào)試信息,它不能與-o選項聯(lián)合使用-O、-O2、-O3將優(yōu)化狀態(tài)打開,該選項不能與-g選項聯(lián)合使用-Wall使gcc產(chǎn)生盡可能多的警告信息-Werror在發(fā)生警報時取消編譯操作,即將警報看作是錯誤,它要求gcc將所有的警告當(dāng)成錯誤進行處理,這在使用自動編譯工具(如make等)時非常有用。-w禁止所有的報警-Dmacro定義指定的宏,使它能夠通過源碼中的#ifdef進行檢驗-v在Shell的提示符號下鍵入gcc -v,會顯示出目前正在使用的GCC的版本信息(1)使用-c 選項,生成hello.o文件(2)使用-S 選項,生成匯編文件(3)使用-o 選項,生成myh
36、ello可執(zhí)行文件3.3. 處理編譯錯誤(1)編輯帶錯誤的源程序文件errohello.c(2)使用命令gcc errohello.c編譯,會顯示錯誤信息: “警告:隱式聲明.”表示缺少包含printf函數(shù)聲明的頭文件,并且參數(shù)不對應(yīng)?!?”、“10”表示警告所在的行數(shù)。請自己改正錯誤并重新編譯。4. gdb的基本用法調(diào)試是程序開發(fā)過程中必不可少的環(huán)節(jié)。gdb(GNU Debugger)是Linux下基于命令行的調(diào)試器,使用能在程序運行時觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況,可以查看變量,寄存器及堆棧,可以修改變量及內(nèi)存值。GDB調(diào)試的是可執(zhí)行文件,而不是源程序,在使用GDB工具調(diào)試程序之前,必
37、須使用帶有-g編譯選項的gcc命令來編譯源程序,在目標(biāo)文件中產(chǎn)生相應(yīng)的調(diào)試信息。常用的GDB調(diào)試命令如下:命令說明break N設(shè)置斷點,N表示在源代碼的第N行處設(shè)置斷點clear N清除斷點的命令,清除第N行處的斷點continue從斷點處繼續(xù)執(zhí)行程序file指定要調(diào)試的可執(zhí)行程序info break顯示當(dāng)前斷點清單,包括到達斷點處的次數(shù)等info files顯示被調(diào)試文件的詳細(xì)信息info func顯示所有的函數(shù)名info local顯示函數(shù)中的局部變量信息info prog顯示被調(diào)試程序的執(zhí)行狀態(tài)info var顯示所有的全局和靜態(tài)變量名稱kill終止正在調(diào)試的可執(zhí)行程序list列出源代
38、碼,如果想列出更多的源代碼,繼續(xù)輸入list命令(或者直接回車)make在不退出gdb的情況下運行make工具next執(zhí)行一行源代碼,如果有函數(shù)調(diào)用,不會進入該函數(shù)nexti或ni單步跟蹤一條機器指令,便于觀察REG和棧的變化print指定變量的值,例如:print xquit結(jié)束gdb調(diào)試任務(wù)run執(zhí)行當(dāng)前的可執(zhí)行程序shell在不退出gdb的情況下運行shell命令step單步跟蹤,如果有函數(shù)調(diào)用,會進入該函數(shù)stepi或si單步跟蹤一條機器指令,便于觀察REG和棧的變化watch檢查一個變量的值whatis查看變量的類型4.1. 編譯生成帶調(diào)試信息的hello程序4.2. 調(diào)試gdbhe
39、llo程序(1)啟動gdb(2)用list列出源代碼(3)使用break命令設(shè)置斷點(4)使用run命令運行程序,到斷點停止(5)使用next命令運行一行程序(6)使用watch命令設(shè)置觀察變量(7)使用print命令輸出sum變量的值(8)使用quit命令退出gdb5. make工具的使用make是自動生成和維護目標(biāo)程序的工具。make工具通過一個稱為Makefile的文件來完成并自動維護編譯工作,Makefile文件的作用有兩個:n 定義源文件之間的依賴關(guān)系n 指定生成目標(biāo)的方法make的工作流程如下: 查找當(dāng)前目錄下的Makefile文件。 初始化文件中的變量。 分析Makefile中的
40、所有規(guī)則。 為所有的目標(biāo)文件創(chuàng)建依賴關(guān)系。 根據(jù)依賴關(guān)系,決定哪些目標(biāo)文件要重新生成。 執(zhí)行生成命令。Makefile文件規(guī)則語法:#注釋目標(biāo)文件:依賴文件列表命令列表5.1. makefile文件的基本寫法(1)程序由prog1.c、prog2.c和lib.c三個文件組成。在自己的主文件夾下建立一個目錄prog,源程序內(nèi)容如下:(2)編譯上述程序的基本makefile文件打開文本編輯器,輸入內(nèi)容如下:#基本makefile文件prog: prog1.o prog2.ogcc prog1.o prog2.o -o progprog1.o:prog1.c lib.hgcc -c -I. -o p
41、rog1.o prog1.cprog2.o:prog2.cgcc -c prog2.c將文件保存在prog目錄下,文件名為Makefile。(3)使用make命令編譯源程序打開終端窗口,使用cd命令進入prog目錄,輸入make命令編譯程序生成可執(zhí)行文件prog。要運行prog程序,在命令行輸入“./prog”。5.2. 使用變量的makefile文件的寫法(1)打開文本編輯器,輸入內(nèi)容如下:OBJS=prog1.o prog2.oCC=gcctest2: $OBJS$CC -o test $OBJS#gcc -o test prog1.o prog2.oprog1.o: prog1.c li
42、b.h$CC -c -I. -o prog1.o prog1.c prog2.o: prog2.c$CC -c -o prog2.o prog2.cclean:rm -f *.o *(2)將文件保存在prog目錄下,文件名為makefile2。(3)使用make命令編譯源程序打開終端窗口,使用cd命令進入prog目錄,輸入“make -f makefile2”命令編譯程序生成可執(zhí)行文件test2?!?f”參數(shù)用于指定make使用的makefile文件名,若不使用“-f”參數(shù),默認(rèn)使用Makefile文件。(4)輸入make f makefile2 clean命令刪除生成的.o文件。5.3. 使
43、用自動變量和預(yù)定義變量的makefile文件的寫法make支持使用自動變量自動生成依賴性,常用變量及含義如下:變量含義$*不包含擴展名的目標(biāo)文件名稱$+所有的依賴文件,以空格分開,并以出現(xiàn)的先后為順序,可能包含重復(fù)的依賴文件$第一個依賴文件的名稱$目標(biāo)的完整名稱$所有的依賴文件,以空格分開,不包含重復(fù)的依賴文件$?所有的依賴文件,以空格分開,這些依賴文件的修改日期比目標(biāo)的創(chuàng)建日期晚$%如果目標(biāo)是歸檔成員,則該變量表示目標(biāo)的歸檔成員名稱。例如,如果目標(biāo)名稱為mytarget.so(image.o),則$為mytarget.so,而$%為image.o%.c模式變量,表示目錄中每一個以.c結(jié)尾的文
44、件make支持的常用預(yù)定義變量及含義如下:變量含義AR歸檔維護程序的名稱,默認(rèn)值為arARFLAGS歸檔維護程序的選項AS匯編程序的名稱,默認(rèn)值為asASFLAGS匯編程序的選項CCC編譯器的名稱,默認(rèn)值為ccCFLAGSC編譯器的選項CPPC預(yù)編譯器的名稱,默認(rèn)值為$(CC)-ECPPFLAGSC預(yù)編譯的選項。CXXC+編譯器的名稱,默認(rèn)值為g+CXXFLAGSC+編譯器的選項FCFORTRAN編譯器的名稱,默認(rèn)值為f77FFLAGSFORTRAN編譯器的選項(1)打開文本編輯器,輸入內(nèi)容如下:#使用自動變量和隱含規(guī)章的makefile文件OBJS=prog1.o prog2.oCC=gcc
45、test3: $OBJS$CC -o $ $%.o:%.c$CC -c $(CFLAGS) $(設(shè)置”切換到“設(shè)置”界面,再點“重校正”圖標(biāo)也會出現(xiàn)校正界面;然后依照屏幕提示使用觸摸筆逐步點擊“十”型交叉點即可。2.2. 主要界面說明進入 Qtopia 系統(tǒng)后主界面如下圖所示:可以看到 Qtopia 系統(tǒng)界面上方有五個圖標(biāo),它們代表了五類程序/文檔,單擊任何一個圖標(biāo)都可以進入相應(yīng)的子類界面,它們都是類似的。另外點系統(tǒng)界面左下角的“開始”圖標(biāo),也可以出現(xiàn)五個子類選擇菜單,它們和系統(tǒng)界面上方的圖標(biāo)是對應(yīng)的。2.3. 自動裝載SD 卡和優(yōu)盤插入普通或者高速SD卡(支持最大容量為32G)或者USB 移
46、動存儲器,稍等片刻,即可在任務(wù)欄右下角出現(xiàn)移動存儲的圖標(biāo)出現(xiàn),本系統(tǒng)支持二者同時掛載,點移動存儲器的圖標(biāo),出現(xiàn)如圖所示,這時可以像在Windows中一樣安全移除它們。MMC/SD卡或者優(yōu)盤中的所有文件會在“文檔”組中全部顯示出來,并且支持中文文件名顯示,它是不顯示目錄名稱的。說明:MMC/SD卡或者優(yōu)盤自動掛載目前它只識別MMC/SD卡或優(yōu)盤的第一個分區(qū),并且格式為常見的VFAT/FAT32/FAT16,如果你的優(yōu)盤或者SD卡不能識別,請檢查是否為VFAT/FAT32/FAT16格式。2.4. 練習(xí)運行Qtopia 2.2.0 系統(tǒng)的各種程序(1) LED 測試在“友善之臂”程序中點“LED
47、測試”圖標(biāo),打開如下界面:可以看到界面中只有“Stop led-player”按鈕有效,這是因為系統(tǒng)啟動的時候開啟了led-player 服務(wù), 開機后你所見到的“流水燈”效果就是這個服務(wù)控制的,要單獨控制某個LED,需要先關(guān)閉這個服務(wù),釋放LED 資源。操作方法如下:點“Stop led-player”按鈕,這時它變?yōu)椤癝tart led-player”,同時板上所有燈關(guān)閉、“LED Control”框中所有按鈕由灰色變?yōu)橛行?如下圖)。這時點“All On”按鈕可以點亮所有LED,點“All Off”可以關(guān)閉所有LED,勾選左邊任意一個框可以點亮相應(yīng)的LED,取消勾選左邊任意一個框可以熄滅
48、相應(yīng)的LED。當(dāng)關(guān)閉“LED 測試”界面時,會重新開啟led-player 服務(wù)。(2) PWM 控制蜂鳴器在“友善之臂”程序中點“PWM-蜂鳴器測試”圖標(biāo),打開如下界面:程序中默認(rèn)的 PWM 輸出為1000Hz,點“Start”按鈕開始驅(qū)動蜂鳴器發(fā)聲,此時可以通過點擊“”或者“”按鈕改變PWM 輸出的頻率,同時也可以聽到蜂鳴器輸出聲音的改變。點“Stop”按鈕中止PWM 輸出。 (3) 按鍵測試說明:在本開發(fā)板系統(tǒng)中,按鍵并沒有任何專用功能,它僅僅為測試底層驅(qū)動而用。在“友善之臂”程序組中,點擊打開“Buttons”程序,如圖:此時按下開發(fā)板上的任意按鍵(可以是多個),相應(yīng)的按鍵圖標(biāo)就會變?yōu)?/p>
49、藍(lán)色,松開后恢復(fù)為灰色,如圖。 (4) 設(shè)置時區(qū)-日期-時間-鬧鐘本開發(fā)板在出廠的時候日期是不準(zhǔn)確的,因為CPU 內(nèi)置了實時時鐘(RTC),開發(fā)板上有備份電池,所以調(diào)整后的時間在關(guān)機后是可以”保存”的,調(diào)整時間的步驟如下:點擊任務(wù)欄右下角時間顯示區(qū)域,會出現(xiàn)一個菜單,在其中選擇“Set time”,打開時間設(shè)置界面,如圖,在此界面你可以設(shè)置時區(qū),調(diào)整日期和時間等。 在菜單中選擇“Clock”,出現(xiàn)鐘表界面,點其中的“Stop Watch”打開“秒表”程序。 (5) 關(guān)機操作在“設(shè)置”程序組中,有個“關(guān)機”圖標(biāo),打開它,如圖,其中有四個關(guān)機選項:- Shutdown:按下此按鈕,Linux 系統(tǒng)
50、就會逐項關(guān)閉各個程序和服務(wù),直到整個系統(tǒng)關(guān)閉,這時CPU 已經(jīng)完全不工作了,此時整個系統(tǒng)的功耗是最低的。因為本開發(fā)板并無相應(yīng)的硬件關(guān)機電路,因此你仍然可以看到板上的電源燈在亮。- Reboot:這是“熱”重啟按鈕,如果你使用的是NOR FLASH 模式,系統(tǒng)會逐項關(guān)閉各個應(yīng)用和服務(wù),重啟后會停留在Supervivi 的菜單模式;如果你使用的是NAND FLASH 模式,系統(tǒng)會逐項關(guān)閉各個應(yīng)用和服務(wù),然后自動重啟重新進入Qtopia 系統(tǒng)。注意:Reboot 和后面所介紹的“看門狗”是完全不同的功能,“看門狗”屬于“冷”啟動,它不會逐項關(guān)閉各個應(yīng)用和服務(wù),而是直接復(fù)位重啟。- Restart Server 是指重新啟動Qtopia 圖形系統(tǒng),此時并不會影響到基本的Linux 系統(tǒng);- Terminates Server 是指關(guān)閉Qtopia 圖形系統(tǒng),點擊它之后圖形界面就完全失效了,此時屏幕上的顯示是遺留在內(nèi)存中的數(shù)據(jù),并不是有效的圖形系統(tǒng)界面。 3.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)機構(gòu)教育行業(yè)數(shù)據(jù)服務(wù)協(xié)議
- 二零二五年度農(nóng)業(yè)科技文職人員聘用協(xié)議
- 2025年度茶樓合作經(jīng)營協(xié)議書:茶樓與茶藝茶具研發(fā)中心的合作合同
- 二零二五年度知識產(chǎn)權(quán)質(zhì)押合同解除與資金返還協(xié)議
- 2025年度船舶租賃與船舶技術(shù)咨詢服務(wù)協(xié)議
- 2025年度超市轉(zhuǎn)讓與智能化升級改造合作協(xié)議
- 2025年度智能化社區(qū)物業(yè)委托經(jīng)營管理合同
- 專業(yè)資格教育培訓(xùn)合作協(xié)議
- 新型儲能技術(shù)應(yīng)用開發(fā)合作協(xié)議
- 行路難:古典詩詞中的壯志情懷教案
- 《中國潰瘍性結(jié)腸炎診治指南(2023年)》解讀
- 中國故事英文版哪吒英文二篇
- 鐵路橋梁工程各工序工效分析
- 2022《文創(chuàng)產(chǎn)品的設(shè)計》PPT演示文稿
- 介入科制度匯編
- 鍍鋅管理論重量表常用
- 鐵總計統(tǒng)【2017】177號關(guān)于進一步加強鐵路建設(shè)項目征地拆遷工作和費用管理的指導(dǎo)意見
- 電子技術(shù)基礎(chǔ)與技能-(3)
- 部編版四年級下冊語文第二單元課文教材分析及全部教案
- 美術(shù)開學(xué)第一課(課堂PPT)
- 出生證明委托書(共2頁)
評論
0/150
提交評論