2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p>  第1章 嵌入式linux觸摸屏驅(qū)動(dòng)程序設(shè)計(jì)1</p><p>  1.1 課程設(shè)計(jì)的目的1</p><p>  1.2 課程設(shè)計(jì)要求1</p><p>  第二章 課程設(shè)計(jì)平臺(tái)構(gòu)建與流程2</p><p>  2.1

2、嵌入式系統(tǒng)開發(fā)平臺(tái)構(gòu)建2</p><p>  2.1.1 cygwin 開發(fā)環(huán)境2</p><p>  2.1.2 Linux 開發(fā)環(huán)境4</p><p>  2.1.3 Embest IDE 開發(fā)環(huán)境4</p><p>  2.2 觸摸屏設(shè)計(jì)流程4</p><p>  2.3 課程設(shè)計(jì)硬件結(jié)構(gòu)與工作原理5

3、</p><p>  2.3.1 硬件結(jié)構(gòu)概述5</p><p>  2.3.2 觸摸屏工作原理6</p><p>  第三章 Bootloader移植與下載8</p><p>  3.1 Vivi 源代碼的安裝8</p><p>  3.2 Vivi源代碼分析9</p><p>  

4、3.3 Vivi 源代碼的編譯與下載9</p><p>  第四章 Linux內(nèi)核移植與下載10</p><p>  4.1 Linux 內(nèi)核源代碼的安裝11</p><p>  4.2 Linux內(nèi)核源代碼分析與移植12</p><p>  4.3 Linux內(nèi)核編譯與下載12</p><p>  第五章

5、觸摸屏功能模塊程序設(shè)計(jì)與交叉編譯14</p><p>  5.1 功能模塊驅(qū)動(dòng)程序設(shè)計(jì)14</p><p>  5.2觸摸屏功能模塊交叉編譯19</p><p>  第六章 根文件系統(tǒng)建立與文件系統(tǒng)下載20</p><p>  6.1 Cramfs根文件系統(tǒng)分析20</p><p>  6.2 文件系統(tǒng)映像文

6、件生成20</p><p>  6.3 功能模塊運(yùn)行與調(diào)試22</p><p>  第七章 課程設(shè)計(jì)總結(jié)與體會(huì)26</p><p>  第1章 嵌入式linux觸摸屏驅(qū)動(dòng)程序設(shè)計(jì)</p><p>  1.1 課程設(shè)計(jì)的目的</p><p>  在開發(fā)基于Linux的嵌入式系統(tǒng)前需要首先建立嵌入式系統(tǒng)的開發(fā)環(huán)境,并

7、制定嵌入式系統(tǒng)上的Linux內(nèi)核。本課程設(shè)計(jì)的主要目的是:</p><p>  1)進(jìn)一步了解嵌入式開發(fā)工具鏈的構(gòu)造過程;</p><p>  2)掌握開發(fā)主機(jī)與嵌入式系統(tǒng)通信的方法;</p><p>  3)通過實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),提高閱讀和修改程序的能力;</p><p>  4)通過完成一個(gè)嵌入式l

8、inux系統(tǒng)開發(fā)的完整過程,使我們了解開發(fā)嵌入式linux應(yīng)用系統(tǒng)的全過程,為今后學(xué)習(xí)打下基礎(chǔ),積累實(shí)際操作的經(jīng)驗(yàn)。</p><p>  1.2 課程設(shè)計(jì)要求</p><p>  1)理解基于Linux的嵌入式系統(tǒng)交叉開發(fā)環(huán)境,對(duì)嵌入式系統(tǒng)的開發(fā)流程有詳細(xì)的了解;</p><p>  2)掌握開發(fā)工具鏈的構(gòu)建方法,能獨(dú)立進(jìn)行系統(tǒng)開發(fā)操作;</p>&l

9、t;p>  3)掌握Linux的常用命令,在linux系統(tǒng)下能熟練的使用這些常用命令;</p><p>  4)熟悉linux內(nèi)核的知識(shí)以及原理,掌握定制Linux內(nèi)核的方法;</p><p>  5)基于Linux操作系統(tǒng),以及Emest III實(shí)驗(yàn)箱,利用觸摸屏返回觸點(diǎn)坐標(biāo)值及動(dòng)作信。坐標(biāo)及動(dòng)作的具體顯示:觸摸筆動(dòng)作,觸點(diǎn)X坐標(biāo)值,觸點(diǎn)Y坐標(biāo)值。</p><p

10、>  第二章 課程設(shè)計(jì)平臺(tái)構(gòu)建與流程</p><p>  2.1 嵌入式系統(tǒng)開發(fā)平臺(tái)構(gòu)建</p><p>  2.1.1 cygwin 開發(fā)環(huán)境</p><p>  1、運(yùn)行Cygwin 安裝程序setup.exe,然后選擇“Install from Local Directory“,選擇“下一步”,</p><p>  2、選擇Cyg

11、win 的安裝目錄,注意Cygwin 的安裝目錄必須位于硬盤NTFS 分區(qū)(且盡量不要使用系統(tǒng)C 分區(qū)),否則會(huì)影響文件屬性和權(quán)限操作,可能導(dǎo)致錯(cuò)誤的結(jié)果。選擇Unix 文本文件類型進(jìn)行安裝,直接選擇“下一步”后,則會(huì)把Unix 格式的cygwin 系統(tǒng)安裝到NTFS 格式的D 分區(qū)中,且安裝目錄為D:\cygwin。選擇安裝目錄安裝軟件包存放目錄。</p><p>  3、選擇Cygwin 安裝包所在的目錄,可

12、以是光盤也可以是本地硬盤分區(qū)。如E:/Cygwin。選擇“下一步”繼續(xù)安裝:</p><p>  4、選擇軟件安裝項(xiàng)目。用鼠標(biāo)單擊在安裝項(xiàng)目左邊“ Default”字樣的位置,可以調(diào)整該軟件項(xiàng)目的安裝設(shè)置,可能出現(xiàn)的狀態(tài)有四種:</p><p>  Default --- 該項(xiàng)目根據(jù)默認(rèn)狀態(tài)處理,可能被安裝,也可能不安裝</p><p>  Install ---

13、安裝該項(xiàng)目</p><p>  Reinstall --- 重新安裝該項(xiàng)目</p><p>  Uninstall --- 移除該項(xiàng)目</p><p>  5、對(duì)于cygwin 的軟件項(xiàng)目,如果完全安裝可能需要1GB 以上空間,對(duì)于不想安裝的項(xiàng)目可以選擇狀態(tài)為Default。通常只選擇Linux 開發(fā)必要的選項(xiàng)即可,特別地需要全部安裝以下項(xiàng)目:</p>

14、<p>  Admin —— 包括啟動(dòng)服務(wù) cygrunsrv 等工具,NFS 啟動(dòng)必備</p><p>  Archive —— 壓縮解壓工具集</p><p>  Base —— 基本的 Linux 工具集</p><p>  Devel —— 開發(fā)工具集,包括 gcc、make 等開發(fā)工具</p><p>  Libs ——

15、 函數(shù)庫(kù)</p><p>  Net —— 網(wǎng)絡(luò)工具集</p><p>  Shells —— 常用 Shell 工具集</p><p>  Utils —— 包括 bzip2 等實(shí)用工具集</p><p>  Cygwin 軟件包的選擇(注意:由于 cygwin 是Windows 環(huán)境下虛擬的Linux 開發(fā)環(huán)境,一般在ALL 處設(shè)置為I

16、nstall狀態(tài),即全部安裝。所以要建立一個(gè)完整的Linux 開發(fā)調(diào)試環(huán)境,加上存放編譯工具和例程的空間,至少需要一個(gè)容量在2GB 以上的分區(qū)。</p><p>  軟件包安裝完成后,根據(jù)提示信息進(jìn)行余下的操作,此后可以在PC 機(jī)上運(yùn)行Cygwin 了。</p><p>  6、安裝cygwin 安裝程序之外的工具軟件</p><p>  1)cygwin 環(huán)境下的

17、NFS 服務(wù)器安裝</p><p>  運(yùn)行 cygwin 開發(fā)環(huán)境后,拷貝要安裝的NFS 服務(wù)器軟件包nfs-server-2.2.47-2.tar.bz2 到</p><p>  cygwin/tmp 目錄下。按以下進(jìn)行步驟安裝:</p><p><b> ?。?)解壓安裝包</b></p><p>  $ cd /

18、 􀃅 一定要回到根目錄下解壓安裝 NFS 服務(wù)器</p><p>  $ tar xvjf /tmp/nfs-server-2.2.47-2.tar.bz2</p><p>  (2)配置NFS Server</p><p>  $ /usr/bin/nfs-server-config</p><p>  執(zhí)行nfs-ser

19、ver-config 命令后會(huì)顯示安裝信息。</p><p>  (3)設(shè)置主機(jī)訪問控制</p><p>  編輯文件/etc/hosts.allow</p><p>  設(shè)置任何用戶都可以訪問nfs 服務(wù)時(shí),在文件中增加行:nfsd: ALL 􀃅(文件中只增加這行即可)</p><p>  也可以特別指定某個(gè) IP 地址的

20、用戶訪問nfs 服務(wù)時(shí),只需增加行如:</p><p>  nfsd: 192.192.192.100 􀃅(文件中只增加這行即可)</p><p>  如果特別指定某個(gè)子網(wǎng)地址的用戶訪問 nfs 服務(wù)時(shí),只需增加行如:</p><p>  nfsd: 192.192.0.0/255.255.0.0 􀃅(文件中只增加這行即可)。&l

21、t;/p><p>  編輯文件/etc/hosts.deny</p><p>  如果Cygwin 中沒有其他網(wǎng)絡(luò)服務(wù),則注釋本文件中的所有行。</p><p> ?。?)設(shè)置主機(jī)共享目錄</p><p>  編輯文件/etc/ exports可以分行輸入需要共享的路徑及目錄,共享一個(gè)/home/app 目錄增加類似以下的行:/home/app

22、192.192.192.0/255.255.255.0(rw, no_root_squash)</p><p>  表示在192.192.192 子網(wǎng)上共享/home/app 目錄,該目錄可讀寫(rw)。</p><p> ?。?)啟動(dòng)NFS 服務(wù)</p><p>  用戶可以在 Cygwin 下執(zhí)行以下命令啟動(dòng)服務(wù):</p><p>  $

23、> cygrunsrv -S portmap</p><p>  $> cygrunsrv -S nfsd</p><p>  $> cygrunsrv -S mountd</p><p>  也可以通過打開Windows 控制面板􀃆管理工具􀃆服務(wù),選擇portmap 、mountd 和nfsd 服務(wù)并啟動(dòng),這等

24、效以上三條啟動(dòng)命令。</p><p>  啟動(dòng)之后可以使用以下命令檢查服務(wù)是否成功運(yùn)行。</p><p>  $> /usr/sbin/showmount</p><p>  如果輸出報(bào)告是某服務(wù)啟動(dòng)失敗,請(qǐng)直接回到根目錄/重新安裝NFS server 軟件包。</p><p>  2.1.2 Linux 開發(fā)環(huán)境</p>

25、<p>  開發(fā)嵌入式 Linux 系統(tǒng),其實(shí)最方便的還是構(gòu)建一個(gè)標(biāo)準(zhǔn)的Linux 開發(fā)環(huán)境,大大地方便Linux開發(fā)中的編譯調(diào)試等工作。同樣地,EduKit2410 的Linux 開發(fā)也可以在標(biāo)準(zhǔn)Linux 環(huán)境下進(jìn)行,比如選擇Red Hat 等優(yōu)秀的系統(tǒng)。由于時(shí)間關(guān)系,我們暫不提供標(biāo)準(zhǔn)Linux 環(huán)境下的安裝及使用手冊(cè)。</p><p>  2.1.3 Embest IDE 開發(fā)環(huán)境</p&

26、gt;<p>  Linux 的調(diào)試通常比較復(fù)雜,可以選擇的調(diào)試環(huán)境也很多。但由于Linux 系統(tǒng)內(nèi)核有包括全球在內(nèi)的技術(shù)工程師的維護(hù)和測(cè)試,需要我們?cè)趹?yīng)用產(chǎn)品開發(fā)時(shí)進(jìn)行調(diào)試的情況比較少,而且通常需要完成的是比較簡(jiǎn)單的調(diào)試。在我們編譯調(diào)試好Linux 的啟動(dòng)代碼、內(nèi)核和文件系統(tǒng)后,還需要把相應(yīng)的映象文件固化到硬件系統(tǒng)上。像這樣的Linux 開發(fā)需要可以在Embest IDE for ARM 和Embest JTAG 仿真器

27、組成的開發(fā)環(huán)境下進(jìn)行。構(gòu)建 Embest IDE 進(jìn)行Linux 調(diào)試環(huán)境的內(nèi)容可以參考后面章節(jié)。一般需要Embest IDE forARM 軟件、Embest online Flash Programmer for ARM、Embest JTAG 仿真器(標(biāo)準(zhǔn)型/增加型/通常型),以及進(jìn)行調(diào)試時(shí)所需要的平臺(tái)初始化文件(命令腳本文件)和燒寫時(shí)平臺(tái)配置文件(*.cfg)。這些文件在隨開發(fā)板提供的光盤里一并提供了。</p>&

28、lt;p>  2.2 觸摸屏設(shè)計(jì)流程</p><p><b>  觸摸屏設(shè)計(jì)流程圖:</b></p><p><b>  圖2.2</b></p><p>  2.3 課程設(shè)計(jì)硬件結(jié)構(gòu)與工作原理</p><p>  2.3.1 硬件結(jié)構(gòu)概述</p><p>  Embe

29、st EduKit-III教學(xué)實(shí)驗(yàn)平臺(tái)是一款功能強(qiáng)大的32位的嵌入式開發(fā)板,里面采用了SAMSUNG公司的以ARM7TDMI-S為內(nèi)核的處理器S3C44B0X,同時(shí)可以兼容S3C2410,具有JTAG 調(diào)試等功能。板上提供了一些鍵盤、LED和串口等一些常用的功能模塊,并且具有IDE硬件接口,CF存儲(chǔ)卡接口、以太網(wǎng)接口和SD卡接口等等,對(duì)用戶在32位ARM嵌入式領(lǐng)域進(jìn)行開發(fā)實(shí)驗(yàn)非常方便。</p><p>  Emb

30、est EduKit-III教學(xué)實(shí)驗(yàn)平臺(tái)主要功能模塊如下:</p><p>  圖2.3.1 ARM 開發(fā)板功能模塊</p><p>  S3C2410開發(fā)板具有8通道模擬輸入的10位CMOS模數(shù)轉(zhuǎn)換器(ADC)。它將輸入的模擬信號(hào)轉(zhuǎn)換為10位的二進(jìn)制數(shù)字代碼。在2.5MHz的A/D轉(zhuǎn)換器時(shí)鐘下,最大轉(zhuǎn)化速率可達(dá)到500KSPS。A/D轉(zhuǎn)換器是循環(huán)類型的,其支持片上采樣和保持功能,并支持掉

31、電模式。</p><p>  S3C2410開發(fā)板的AIN[7]和AIN[5]用于連接觸摸屏的模擬信號(hào)輸入。觸摸屏接口電路一般</p><p>  由觸摸屏,4個(gè)外部晶體管和一個(gè)外部電壓源組成。</p><p>  觸摸屏接口的控制和選擇信號(hào)(nYPON,YMON,nXPON和XMON)連接切換X坐標(biāo)和Y坐標(biāo)轉(zhuǎn)換的外部晶體管。模擬輸入引腳(AIN[7],AIN[5]

32、)則連接到觸摸屏引腳。</p><p>  觸摸屏的AIN[7]連接觸摸屏的X+引腳,而AIN[5]連接觸摸屏的Y+引腳的。要控制觸摸屏的引腳(X+,X-,Y+,Y-),就要應(yīng)用4個(gè)外部的晶體管,并采用控制的信號(hào)nYPON, YMON, nXPON和XMON來控制晶體管的打開與關(guān)閉。</p><p>  推薦如下的操作步驟:</p><p>  1)采用外部晶體管連

33、接觸摸屏到S3C2410A的接口的電路。</p><p>  2)選擇分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式或者自動(dòng)(連續(xù)的)X/Y軸坐標(biāo)轉(zhuǎn)換模式來獲取觸摸點(diǎn)的X/Y坐標(biāo)。</p><p>  3)設(shè)置觸摸屏接口為等待中斷模式(注意,等待的是INT_TC中斷)。</p><p>  4)如果中斷(INT_TC)發(fā)生,那么立即激活相應(yīng)的AD轉(zhuǎn)換(分離的X/Y軸坐標(biāo)轉(zhuǎn)換或者自動(dòng)(連

34、續(xù)的)X/Y軸坐標(biāo)轉(zhuǎn)換)。</p><p>  5)在得到觸摸點(diǎn)的X/Y軸坐標(biāo)值后,返回到等待中斷模式(第3步)。</p><p><b>  注意:</b></p><p>  1)外部電壓源是3.3V。</p><p>  2)外部晶體管的內(nèi)部阻抗應(yīng)該小于5 ohm。</p><p>  2.

35、3.2 觸摸屏工作原理</p><p>  觸摸屏控制接口包括一個(gè)外部晶體管控制邏輯和具有中斷產(chǎn)生邏輯的ADC接口邏輯。</p><p><b>  1)普通轉(zhuǎn)換模式</b></p><p>  普通轉(zhuǎn)換模式(AUTO_PST=0,XY_PST=0)是用作一般目的下的ADC轉(zhuǎn)換。這個(gè)模式可以通過設(shè)置ADCCON和ADCTSC來進(jìn)行對(duì)AD轉(zhuǎn)換的初

36、始化;而后讀取ADCDAT0(ADC數(shù)據(jù)寄存器0)的XPDATA域(普通ADC轉(zhuǎn)換)的值來完成轉(zhuǎn)換。 </p><p>  2)分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式:X軸坐標(biāo)轉(zhuǎn)換和Y軸坐標(biāo)轉(zhuǎn)換。 </p><p>  X軸坐標(biāo)轉(zhuǎn)換(AUTO_PST=0且XY_PST=1)將X軸坐標(biāo)轉(zhuǎn)換數(shù)值寫入到ADCDAT0寄存器的XPDATA域。轉(zhuǎn)換后,觸摸屏接口將產(chǎn)生中斷源(INT_ADC)到中斷控制器。 &l

37、t;/p><p>  Y軸坐標(biāo)轉(zhuǎn)換(AUTO_PST=0且XY_PST=2)將X軸坐標(biāo)轉(zhuǎn)換數(shù)值寫入到ADCDAT1寄存器的YPDATA域。轉(zhuǎn)換后,觸摸屏接口將產(chǎn)生中斷源(INT_ADC)到中斷控制器。 </p><p>  3)自動(dòng)(連續(xù))X/Y軸坐標(biāo)轉(zhuǎn)換模式。 </p><p>  自動(dòng)(連續(xù))X/Y軸坐標(biāo)轉(zhuǎn)換模式(AUTO_PST=1且XY_PST= 0)以下面的步

38、驟工作: </p><p>  觸摸屏控制器將自動(dòng)地切換X軸坐標(biāo)和Y軸坐標(biāo)并讀取兩個(gè)坐標(biāo)軸方向上的坐標(biāo)。觸摸屏控制器自動(dòng)將測(cè)量得到的X軸數(shù)據(jù)寫入到ADCDAT0寄存器的XPDATA域,然后將測(cè)量到的Y軸數(shù)據(jù)到ADCDAT1的YPDATA域。自動(dòng)(連續(xù))轉(zhuǎn)換之后,觸摸屏控制器產(chǎn)生中斷源(INT_ADC)到中斷控制器。 </p><p><b>  4)等待中斷模式 </b&g

39、t;</p><p>  當(dāng)觸摸屏控制器處于等待中斷模式下時(shí),它實(shí)際上是在等待觸摸筆的點(diǎn)擊。在觸摸筆點(diǎn)擊到觸摸屏上時(shí),控制器產(chǎn)生中斷信號(hào)(INC_TC)。中斷產(chǎn)生后,就可以通過設(shè)置適當(dāng)?shù)霓D(zhuǎn)換模式(分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式或自動(dòng)X/Y軸坐標(biāo)轉(zhuǎn)換模式)來讀取X和Y的位置。 </p><p>  5)靜態(tài)(Standby)模式 </p><p>  當(dāng)ADCCON寄存器

40、的STDBM位被設(shè)為1時(shí),Standby模式被激活。在該模式下,A/D轉(zhuǎn)換操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持著先前轉(zhuǎn)換所得的值。</p><p>  第三章 Bootloader移植與下載</p><p>  3.1 Vivi 源代碼的安裝</p><p>  1、拷貝開發(fā)板光盤Linux Sour

41、ce 文件夾下的vivi-20030929.tar.bz2 文件和Source\patch整個(gè)文件夾到$SOURCEDIR/目錄下;</p><p>  2、進(jìn)入cygwin,Vivi 源代碼的安裝:</p><p>  $> source /tmp/edukit-2410/set_env_linux.sh Linux 編譯環(huán)境變量設(shè)置</p><p>  

42、$> cd $WORKDIR</p><p>  $> tar -xvjf /tmp/edukit-2410/vivi-20030929.tar.bz2</p><p><b>  $> ls</b></p><p>  … vivi … …為$WORKDIR 目錄下其他內(nèi)容</p><p>  正確

43、解壓后,可以看到相比之前多了一個(gè)vivi目錄,即vivi源代碼的安裝目錄,后面的vivi配置及編譯都得進(jìn)入vivi目錄進(jìn)行。</p><p><b>  圖3.2</b></p><p>  3、再為EduKit2410 實(shí)驗(yàn)系統(tǒng)打入vivi源代碼的補(bǔ)丁文件:</p><p>  $> cd vivi</p><p&g

44、t;  $>patch-p1</tmp/edukit-2410/patch/vivi-20030929.tar.bz2.edukit2410.patch</p><p>  patching file Makefile</p><p>  patching file arch/config.in</p><p>  … …為其他輸出內(nèi)容,無錯(cuò)誤提示信息&

45、lt;/p><p>  3.2 Vivi源代碼分析</p><p>  Vivi的代碼包括:arch、documentation、drivers、include、init、scripts、test、util等幾個(gè)目錄,共200多條文件。Vivi主要包括下面幾個(gè)目錄:</p><p>  Arch:此目錄中包含了vivi支持的沒標(biāo)板的子目錄,其中中有s3c2410x一個(gè)目

46、錄。</p><p>  Drivers:此目錄中包含了引腳內(nèi)核需要的驅(qū)動(dòng)程序,其中只有mtd和merial兩個(gè)子目錄,mtd子目錄下又有maps、nand、mor三個(gè)子目錄,vivi支持從不用的存儲(chǔ)器啟動(dòng)。</p><p>  Init:存放初始化代碼,這個(gè)目錄只有main.c和version.c兩個(gè)文件。和普通的C程序一樣,vivi將從main函數(shù)開始執(zhí)行。 </p>&

47、lt;p>  Include:此目錄是頭文件的公共目錄,s3c2410.h中包含可對(duì)S3C2410處理器內(nèi)部寄存器的定義,定義了與開發(fā)板相關(guān)的資源配置參數(shù),我們往往只需要修改這個(gè)文件就可以配置目標(biāo)板的參數(shù),如波特率、引導(dǎo)參數(shù)、物理內(nèi)存映射等。</p><p>  Lib:各個(gè)平臺(tái)公共接口代碼集。比如time.c里的udelay()和mdelay()。</p><p>  SMDK24

48、10文件:</p><p>  General setup選項(xiàng)為常規(guī)安裝選項(xiàng),包括版本信息、虛擬內(nèi)存、進(jìn)程間通信、系統(tǒng)調(diào)用、審計(jì)支持等基本內(nèi)核配置選項(xiàng)。下面介紹常規(guī)安裝選項(xiàng)下主要子選項(xiàng)的配置方法。</p><p>  Loadable module support即引導(dǎo)模塊支持,該選項(xiàng)包括加載模塊、卸載模塊、模塊校驗(yàn)、自動(dòng)加載模塊等引導(dǎo)模塊配置相關(guān)子選項(xiàng)。本節(jié)主要介紹引導(dǎo)模塊支持子選項(xiàng)的配

49、置方法。</p><p>  Networking support即網(wǎng)絡(luò)支持,該選項(xiàng)配置的是網(wǎng)絡(luò)協(xié)議,內(nèi)容龐雜,這里就不一一介紹了。只要對(duì)網(wǎng)絡(luò)協(xié)議有所了解,應(yīng)該可以看懂相關(guān)幫助文件。如果要開發(fā)嵌入式系統(tǒng)能像PC一樣使用各類網(wǎng)絡(luò)協(xié)議,則可以使用默認(rèn)選項(xiàng),其中,最常用的TCP/IP networking選項(xiàng)當(dāng)然要選擇。</p><p>  3.3 Vivi 源代碼的編譯與下載</p>

50、;<p>  然后執(zhí)行以下命令進(jìn)行編譯:</p><p>  $> source /tmp/edukit-2410/set_env_linux.sh Linux 編譯環(huán)境變量設(shè)置</p><p>  $> cd $WORKDIR/vivi</p><p>  $> make clean</p><p>  $&

51、gt;make menuconfig輸入配置smdk2410:Nand boot或smdk2410-amd:Nor Flash boot</p><p>  其中,運(yùn)行make menuconfig 后,選擇Load an Alternate Configuration file,配置文件名稱如下:</p><p>  smdk2410:編譯vivi 在Nand Flash(K9S5608

52、)中運(yùn)行;</p><p>  smdk2410-amd:編譯vivi 在Nor Flash(AM29LV160DB)中運(yùn)行。</p><p>  這兩個(gè)配置文件在\usr\local\src\edukit-2410\vivi\arch\def-configs\中,須復(fù)制到\usr\local\src\edukit-2410\vivi\中;或者可以在menuconfig 中輸入全部路徑。&

53、lt;/p><p>  編譯過程中沒有出現(xiàn)錯(cuò)誤,則編譯后的執(zhí)行文件存放\usr\local\src\edukit-2410\vivi\目錄,文件名為vivi。</p><p><b>  圖3.3.1</b></p><p><b>  編譯成功截圖:</b></p><p><b>  圖3

54、.3.2</b></p><p>  第四章 Linux內(nèi)核移植與下載</p><p>  4.1 Linux 內(nèi)核源代碼的安裝</p><p>  1、拷貝開發(fā)板光盤Linux Source 文件夾下的linux-2.4.18-rmk7-pxa1-mz5.tar.bz2 文件(和Source\patch 整個(gè)文件夾)到$SOURCEDIR/目錄下;&l

55、t;/p><p>  2、運(yùn)行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的Linux源代碼的安裝:</p><p>  $> source /tmp/edukit-2410/set_env_linux.sh Linux編譯環(huán)境變量設(shè)置</p><p>  $> cd $WORKDIR</p><p>  $> tar

56、 –xvjf /tmp/edukit-2410/linux-2.4.18-rmk7-pxa1-mz5-i2c.tar.bz2</p><p><b>  $> ls</b></p><p>  … kernel … …為$WORKDIR 目錄下其他內(nèi)容</p><p>  正確解壓后,相比之前可以看到多了一個(gè)kernel目錄,即ke

57、rnel源代碼的安裝目錄,后面的Linux配置及編譯都得在kernel目錄進(jìn)行。</p><p><b>  圖4.1.2</b></p><p>  3、為EduKit2410 實(shí)驗(yàn)系統(tǒng)打入Linux 源代碼的補(bǔ)丁文件:</p><p>  $> cd kernel</p><p>  $>patch-p1

58、</tmp/edukit-2410/patch/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2.edukit2410.patch</p><p>  patching file Makefile</p><p>  patching file arch/arm/boot/Makefile</p><p>  patching file a

59、rch/arm/config.in</p><p>  … 􀃅 …為其他輸出內(nèi)容,無錯(cuò)誤提示信息</p><p>  4.2 Linux內(nèi)核源代碼分析與移植</p><p>  Linux提供三個(gè)不同的命令進(jìn)行Linux的配置,效果完全一樣:</p><p>  make config 控制臺(tái)命令行方式配置命令&

60、lt;/p><p>  make menuconfig 文本菜單方式配置命令</p><p>  make xconfig X窗口圖形界面方式配置命令</p><p><b>  其他部分命令:</b></p><p>  Make mrproper 命令清除所有的舊的配置和舊的編譯目標(biāo)文件等。<

61、/p><p>  Make dep 命令搜索Linux編譯輸出與源代碼之間的依賴關(guān)系、并生成依賴文件。</p><p>  Make clean 清除以前構(gòu)造內(nèi)核時(shí)生成的所有目標(biāo)文件、模塊文件和臨時(shí)文件。</p><p>  Linux內(nèi)核的兩種啟動(dòng)過程:</p><p>  Flash本地運(yùn)行方式:內(nèi)核的未經(jīng)壓縮

62、的可執(zhí)行映像固化在Flash,系統(tǒng)啟動(dòng)時(shí)內(nèi)核在Flash中開始逐句執(zhí)行。</p><p>  壓縮內(nèi)核加載方式:內(nèi)核的壓縮映像固化在Flash上,系統(tǒng)啟動(dòng)時(shí)由附加在壓縮映像前的解壓復(fù)制程序讀取壓縮映像,在內(nèi)存中解壓后執(zhí)行,這種方式相對(duì)復(fù)雜,但是運(yùn)行速度更快。</p><p>  4.3 Linux內(nèi)核編譯與下載</p><p>  在Cygwin中依次執(zhí)行以下命令完

63、成Linux的編譯過程:</p><p><b>  圖4.3.1</b></p><p>  選擇Load confinguration from File項(xiàng),配置文件smdk2410new1的路徑是:\tmp\edukit-2410\linuxkernel\kernel,名稱為smk2410new1。對(duì)內(nèi)核進(jìn)行配置:</p><p><

64、;b>  圖4.3.2</b></p><p>  根據(jù)提示加載配置文件后,點(diǎn)擊“Save and Exit”按鈕,然后執(zhí)行下列命令:</p><p><b>  圖4.3.3</b></p><p><b>  編譯成功截圖</b></p><p><b>  圖4.3

65、.4</b></p><p><b>  生成內(nèi)核映像文件:</b></p><p>  第五章 觸摸屏功能模塊程序設(shè)計(jì)與交叉編譯</p><p>  5.1 功能模塊驅(qū)動(dòng)程序設(shè)計(jì)</p><p>  1)程序設(shè)計(jì)流程圖如下:</p><p>  2)觸摸屏設(shè)備驅(qū)動(dòng)中數(shù)據(jù)結(jié)構(gòu)</

66、p><p> ?。?)觸摸屏的file_operations</p><p>  static struct file_operations s3c2410_fops={</p><p>  owner: THIS_MODULE,</p><p>  open: s3c2410_ts_open,</p><p>  rea

67、d: s3c2410_ts_read, </p><p>  release: s3c2410_ts_release,</p><p>  #ifdef USE_ASYNC</p><p>  fasync: s3c2410_ts_fasync,//異步通知</p><p><b>  #endif</b></p&

68、gt;<p>  poll: s3c2410_ts_poll,//輪詢</p><p><b>  };</b></p><p> ?。?)觸摸屏設(shè)備結(jié)構(gòu)體的成員與按鍵設(shè)備結(jié)構(gòu)體的成員類似,也包含一個(gè)緩沖區(qū),同時(shí)包括自旋鎖、等待隊(duì)列和fasync_struct指針</p><p>  typedef struct {</p&

69、gt;<p>  unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */</p><p>  TS_RET buf[MAX_TS_BUF]; /* protect against overrun(環(huán)形緩沖區(qū)) */</p><p>  unsigned int head, tail;/* head and tail

70、 for queued events (環(huán)形緩沖區(qū)的頭尾)*/</p><p>  wait_queue_head_t wq; //* 等待隊(duì)列數(shù)據(jù)結(jié)構(gòu)</p><p>  spinlock_t lock; //* 自旋鎖</p><p>  #ifdef USE_ASYNC</p><p>  struct fasync_struct *a

71、q;</p><p><b>  #endif</b></p><p>  #ifdef CONFIG_PM</p><p>  struct pm_dev *pm_dev; //友善之臂專有的,我后面的代碼刪除了這段</p><p><b>  #endif</b></p><

72、p><b>  } TS_DEV;</b></p><p> ?。?)觸摸屏結(jié)構(gòu)體中包含的TS_RET值的類型定義,包含X、Y坐標(biāo)和狀態(tài)(PEN_DOWN、PEN_UP)等信息,這個(gè)信息會(huì)在用戶讀取觸摸信息時(shí)復(fù)制到用戶空間 </p><p>  typedef struct {</p><p>  unsigned short press

73、ure; //* 壓力,這里可定義為筆按下,筆抬起,筆拖曳</p><p>  unsigned short x; //* 橫坐標(biāo)的采樣值</p><p>  unsigned short y; //* 縱坐標(biāo)的采樣值</p><p>  unsigned short pad; //* 填充位</p><p><b> 

74、 } TS_RET;</b></p><p>  (4)在觸摸屏設(shè)備驅(qū)動(dòng)中,將實(shí)現(xiàn)open()、release()、read()、fasync()和poll()函數(shù),因此,其文件操作結(jié)構(gòu)體定義</p><p>  觸摸屏驅(qū)動(dòng)文件操作結(jié)構(gòu)體:static struct file_operations s3c2410_fops={ }</p><p>  

75、3)觸摸屏驅(qū)動(dòng)模塊加載和卸載函數(shù)</p><p> ?。?)在觸摸屏設(shè)備驅(qū)動(dòng)的模塊加載函數(shù)中,要完成申請(qǐng)?jiān)O(shè)備號(hào)、添加cdev、申請(qǐng)中斷、設(shè)置觸摸屏控制引腳(YPON、YMON、XPON、XMON)等多項(xiàng)工作</p><p>  觸摸屏設(shè)備驅(qū)動(dòng)的模塊加載函數(shù):static int __init s3c2410_ts_init(void)</p><p>  觸摸屏設(shè)備

76、驅(qū)動(dòng)模塊卸載函數(shù):static void __exit s3c2410_ts_exit(void)</p><p> ?。?)可知觸摸屏驅(qū)動(dòng)中會(huì)產(chǎn)生兩類中斷,一類是觸點(diǎn)中斷(INT-TC),一類是X/Y位置轉(zhuǎn)換中斷(INT-ADC)。在前一類中斷發(fā)生后,若之前處于PEN_UP狀態(tài),則應(yīng)該啟動(dòng)X/Y位置轉(zhuǎn)換。另外,將抬起中斷也放在INT-TC處理程序中,它會(huì)調(diào)用tsEvent()完成等待隊(duì)列和信號(hào)的釋放</p

77、><p>  觸摸屏設(shè)備驅(qū)動(dòng)的觸點(diǎn)/抬起中斷處理程序</p><p>  static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)</p><p>  當(dāng)X/Y位置轉(zhuǎn)換中斷發(fā)生后,應(yīng)讀取X、Y的坐標(biāo)值,填入緩沖區(qū)</p><p>  觸摸屏設(shè)備驅(qū)動(dòng)X/Y位置轉(zhuǎn)換中

78、斷處理程序</p><p>  static void s3c2410_isr_adc(int irq, void *dev_id, struct pt_regs *reg)</p><p>  觸摸屏設(shè)備驅(qū)動(dòng)中獲得X、Y坐標(biāo) :static inline void s3c2410_get_XY(void)</p><p>  (3)tsEvent最終為tsEven

79、t_raw(),這個(gè)函數(shù)很關(guān)鍵,當(dāng)處于PEN_DOWN狀態(tài)時(shí)調(diào)用該函數(shù),它會(huì)完成緩沖區(qū)的填充、等待隊(duì)列的喚醒以及異步通知信號(hào)的釋放;否則(處于PEN_UP狀態(tài)),將緩沖區(qū)頭清0,也喚醒等待隊(duì)列并釋放信號(hào)。</p><p> ?。?)在包含了對(duì)拖動(dòng)軌跡支持的情況下,定時(shí)器會(huì)被啟用,周期為10ms,在每次定時(shí)器處理函數(shù)被引發(fā)時(shí),調(diào)用start_ts_adc()開始X/Y位置轉(zhuǎn)換過程觸摸屏設(shè)備驅(qū)動(dòng)的定時(shí)器處理函數(shù)sta

80、tic void ts_timer_handler(unsigned long data)</p><p>  (5)在觸摸屏設(shè)備驅(qū)動(dòng)的打開函數(shù)中,應(yīng)初始化緩沖區(qū)、penStatus和定期器、等待隊(duì)列及tsEvent時(shí)間處理函數(shù)指針。觸摸屏設(shè)備驅(qū)動(dòng)的打開函數(shù)static int s3c2410_ts_open(struct inode *inode, struct file *filp)</p>&

81、lt;p>  4)觸摸屏設(shè)備驅(qū)動(dòng)的讀函數(shù)</p><p>  觸摸屏設(shè)備驅(qū)動(dòng)的讀函數(shù)實(shí)現(xiàn)緩沖區(qū)中信息向用戶空間的復(fù)制,當(dāng)緩沖區(qū)有內(nèi)容時(shí),直接復(fù)制;否則,如果用戶阻塞訪問觸摸屏,則進(jìn)程在等待隊(duì)列上睡眠,否則,立即返回-EAGAIN</p><p>  5)觸摸屏設(shè)備驅(qū)動(dòng)的輪詢與異步通知</p><p>  在觸摸屏設(shè)備驅(qū)動(dòng)中,通過s3c2410_ts_poll(

82、)函數(shù)實(shí)現(xiàn)了輪詢接口,這個(gè)函數(shù)的實(shí)現(xiàn)非常簡(jiǎn)單。它將等待隊(duì)列添加到poll_table,當(dāng)緩沖區(qū)有數(shù)據(jù)時(shí),返回資源可讀取標(biāo)志,否則返回0。觸摸屏設(shè)備驅(qū)動(dòng)的poll()函數(shù)static unsigned int s3c2410_ts_poll(struct file *filp, struct poll_table_struct *wait)。而為了實(shí)現(xiàn)觸摸屏設(shè)備驅(qū)動(dòng)對(duì)應(yīng)用程序的異步通知,設(shè)備驅(qū)動(dòng)中要實(shí)現(xiàn)s3c2410_ts_fasync(

83、)函數(shù),觸摸屏設(shè)備驅(qū)動(dòng)的fasync()函數(shù)static int s3c2410_ts_fasync(int fd, struct file *filp, int mode)</p><p><b>  6)應(yīng)用程序的調(diào)試</b></p><p>  使用s3c2410_ts.c觸摸屏驅(qū)動(dòng)編寫應(yīng)用程序,讀取觸摸屏的觸點(diǎn)坐標(biāo)值及動(dòng)作信息(觸點(diǎn)x坐標(biāo)值,y坐標(biāo)及是否有壓力

84、值press),并在串口中斷打印出來對(duì)觸摸屏設(shè)別的操作有打開設(shè)備,關(guān)閉設(shè)備,讀操作等。編寫應(yīng)用程序讀取觸摸屏的觸點(diǎn)坐標(biāo)值及動(dòng)作信息時(shí),只需利用觸摸屏驅(qū)動(dòng)程序便可實(shí)現(xiàn),先打開觸摸屏設(shè)備,然后調(diào)用讀函數(shù)即可。</p><p>  其中,觸摸筆動(dòng)作取值如下:</p><p>  #define PEN_UP 0 /* 觸摸筆抬筆,即觸摸屏不被壓下 */</p>

85、;<p>  #define PEN_DOWN 1/* 觸摸筆下筆,即觸摸屏被壓下 */</p><p>  #define PEN_FLEETING 2/* 觸摸筆拖動(dòng) */</p><p><b>  結(jié)構(gòu)體定義如下:</b></p><p>  typedef struct {</p>

86、<p>  unsigned short pressure;/* 觸摸筆動(dòng)作 */</p><p>  unsigned short x;/* 觸點(diǎn)x座標(biāo)值 */</p><p>  unsigned short y;/* 觸點(diǎn)y座標(biāo)值 */</p><p>  unsigned short pad;</p><p

87、><b>  }TS_RET;</b></p><p>  5.2觸摸屏功能模塊交叉編譯</p><p>  將編寫好的源文件hello.c(假設(shè)名稱)程序放在cygwin目錄中</p><p><b>  圖5.2.1</b></p><p><b>  交叉編譯生成文件</

88、b></p><p><b>  圖5.2.2</b></p><p>  第六章 根文件系統(tǒng)建立與文件系統(tǒng)下載</p><p>  6.1 Cramfs根文件系統(tǒng)分析</p><p>  cramfs目錄結(jié)構(gòu)介紹:</p><p>  一個(gè)完整的根文件系統(tǒng)通常包含以下幾個(gè)目錄:</p

89、><p>  /bin 應(yīng)用程序存放目錄。</p><p>  /sbin 系統(tǒng)管理員服務(wù)程序,其中最重要的就是供內(nèi)核初始化之后執(zhí)行的/sbin/init 進(jìn)程。 </p><p>  /lib 存放程序運(yùn)行所需要的動(dòng)態(tài)庫(kù)。 </p><p>  /proc 系統(tǒng)狀態(tài)文件目錄。 </p><p>  /dev 驅(qū)動(dòng)程

90、序存放目錄。 </p><p>  /etc 系統(tǒng)配置文件及用戶數(shù)據(jù)存放目錄。 </p><p>  /mnt 用于設(shè)備安裝的目錄,通常包含etc子目錄和為塊設(shè)備安裝保留目錄。 </p><p>  /usr 用于存放用戶程序和配置文件的目錄,可以根據(jù)需要進(jìn)行設(shè)置。</p><p>  一般情況下都要把已經(jīng)規(guī)劃好的目錄結(jié)構(gòu)轉(zhuǎn)換成一個(gè)映象

91、文件,即使用命令工具mkcram(cygwin下為mkcramfs.exe),把相應(yīng)的cramfs目錄樹壓縮為單一的映象文件。其命令格式為: </p><p>  mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile </p><p>  可以使用我們提供的mkcramfs.exe在cygwin下編譯生成文件系統(tǒng)映象

92、文件 root.cramfs,再固化到開發(fā)系統(tǒng)FLASH上運(yùn)行。</p><p>  6.2 文件系統(tǒng)映像文件生成</p><p>  1)構(gòu)建cramfs文件系統(tǒng)</p><p>  按照本節(jié)實(shí)驗(yàn)原理中自行構(gòu)建一個(gè)cramfs文件系統(tǒng)。將\image\中的root.cramfs.tar.bz2拷貝到$SOURCEDIR目錄,運(yùn)行cygwin,執(zhí)行以下命令解壓安裝:

93、</p><p>  $>source /tmp/edukit-2410/set_env_linux.sh 為L(zhǎng)inux編譯環(huán)境變量設(shè)置</p><p>  $>cd $WORKDIR/</p><p>  $>tar –xvjf /tmp/edukit-2410/root.cramfs.tar.bz2</p><p>

94、<b>  $>ls</b></p><p>  ….root…. root文件夾中就是我們想要的cramfs文件系統(tǒng)</p><p><b>  解壓成功如下:</b></p><p><b>  圖6.2.1</b></p><p&

95、gt;  在root目錄中新建xx文件夾,用于存放應(yīng)用程序</p><p><b>  圖6.2.2 </b></p><p><b>  2)編譯應(yīng)用程序</b></p><p>  將編寫好的源文件ts.c(假設(shè)名稱)程序放在cygwin目錄中</p><p><b>  圖6.2.3

96、</b></p><p>  生成文件:ts如下圖所示:</p><p>  3)拷貝測(cè)試程序到文件系統(tǒng)中,并編譯生成文件系統(tǒng)映象</p><p>  新文件系統(tǒng)的制作,把剛才編譯輸出的ts文件拷貝到文件系統(tǒng)所在的工作目錄root/bin目錄下,執(zhí)行以下命令生成新的文件系統(tǒng)映象:</p><p><b>  圖6.2.4

97、</b></p><p>  剛剛編譯生成的文件系統(tǒng)映象root.cramfs.new中已經(jīng)包含應(yīng)用程序。</p><p><b>  生成文件:</b></p><p>  6.3 功能模塊運(yùn)行與調(diào)試</p><p> ?。?)vivi 的燒寫</p><p>  1)首先把SW10

98、4短接(從Nand Flash啟動(dòng)),運(yùn)行Embest online Flash Programmer for ARM(version 3.0以上),點(diǎn)擊菜單Settings選擇Configure…項(xiàng),配置當(dāng)前使用的Embest JTAG仿真器型號(hào)為PowerICEARM9,并設(shè)置相應(yīng)的參數(shù);</p><p>  2)點(diǎn)擊菜單File 選擇Open打開燒寫配置文件</p><p>  S3

99、C2410&NandFLash_vivi.cfg,在Flash Programmer的Program頁(yè)中選擇要燒寫的文件:vivi.bon&load.bin;</p><p>  3)點(diǎn)擊按鈕Progarm開始燒寫,直到燒寫成功;</p><p><b>  圖6.1.1</b></p><p>  4)連接串口線到PC 機(jī)CO

100、M1,運(yùn)行光盤中提供的Windows超級(jí)終端Hyper Terminal.ht;</p><p>  5)把開發(fā)板重新加電,程序運(yùn)行后,在超級(jí)終端上可以看到串口輸出類似以下信息:</p><p><b>  圖6.1.2</b></p><p>  看到以上信息后,表示正在等待用戶從超級(jí)終端下載文件。這時(shí),請(qǐng)點(diǎn)擊超級(jí)終端菜單"傳送&q

101、uot;選擇Xmodem方式下載vivi.nand文件,點(diǎn)擊OK后等待下載燒寫結(jié)束即可。</p><p><b>  圖6.1.3</b></p><p> ?。?)linux 內(nèi)核的燒寫</p><p>  1)首先SW104設(shè)為短接(從Nand Flash 啟動(dòng)),并確定已經(jīng)燒寫vivi.nand,加電。</p><p&

102、gt;  2)在vivi啟動(dòng)等待中,敲入空格鍵進(jìn)入vivi界面環(huán)境,并輸入以下命令:</p><p>  vivi> load flash kernel x <回車> 燒寫更新內(nèi)核約4 分鐘即可燒寫完畢。</p><p><b>  圖6.2.1</b></p><p>  點(diǎn)擊超級(jí)終端菜單中的“傳送”,選“發(fā)送文件”zIm

103、age(選擇xModem 方式傳送)燒寫結(jié)束,重起實(shí)驗(yàn)板,觀測(cè)超級(jí)終端窗口提示信息就可以啟動(dòng)linux 內(nèi)核,但沒有因?yàn)槲募到y(tǒng),系統(tǒng)會(huì)提示出錯(cuò)信息。</p><p><b>  圖6.2.2</b></p><p> ?。?) cramfs 文件系統(tǒng)的燒寫</p><p>  1)首先SW104 設(shè)為短接(從Nand Flash 啟動(dòng)),確定

104、已經(jīng)成功燒寫vivi和linux kernel,加電運(yùn)行可以看到vivi啟動(dòng)信息,輸入空格 進(jìn)入命令狀態(tài);</p><p>  2)雙擊運(yùn)行Download.pjf工程文件(將啟動(dòng)Embest IDE環(huán)境),點(diǎn)擊連接Remote connect,程序應(yīng)該正在運(yùn)行(此時(shí)命令按鈕STOP為紅色);在超級(jí)終端輸入help看看有沒有反應(yīng),如果沒反應(yīng),點(diǎn)擊IDE按鈕:Reset->Start(F5);再輸入help測(cè)

105、試,直到有反應(yīng)為止;</p><p>  3)如果超級(jí)終端可以輸出一些信息,再點(diǎn)擊IDE中的Stop,配置Debug 的Download 地址為0x30000000,并點(diǎn)擊IDE 菜單Project選擇Settings項(xiàng),在Download 頁(yè)下拉Category到Download項(xiàng),在Download File選擇root.cramfs.new 文件,點(diǎn)擊確定后:</p><p>  (

106、1) 點(diǎn)擊IDE菜單DEBUG選擇Download下載文件系統(tǒng)映象約1-2分鐘</p><p>  (2) 下載完畢后,點(diǎn)擊Start(F5)</p><p>  (3) 然后在超級(jí)終端里輸入:</p><p>  load flash root j (燒寫更新文件系統(tǒng))約等2分鐘燒寫完畢,超級(jí)終端無任何反應(yīng)。</p><p><b&g

107、t;  圖6.3</b></p><p>  第七章 課程設(shè)計(jì)總結(jié)與體會(huì)</p><p>  這次的課程設(shè)計(jì)的課題是在觸摸屏驅(qū)動(dòng)程序設(shè)計(jì),通過這次的課程設(shè)計(jì),我再一次重溫了嵌入式的知識(shí)。特別是通過這次嵌入式課程設(shè)計(jì),讓我對(duì)整個(gè)嵌入式程序的設(shè)計(jì)有了一個(gè)比較深的理解。還有就是增強(qiáng)了自身的動(dòng)手能力,把以前書本上講的或是沒有講的,通過一次課程設(shè)計(jì)具體的實(shí)施,使自己真正得到鍛煉。<

108、/p><p>  通過一周的課程設(shè)計(jì),我學(xué)會(huì)了使用基于Linux系統(tǒng),以及Embest實(shí)驗(yàn)箱,利用觸摸板返回觸點(diǎn)坐標(biāo)值及動(dòng)作信息。</p><p>  這次課程設(shè)計(jì)步驟比較多,比如交叉編譯,vivi的燒寫,Linux內(nèi)核移植,內(nèi)核燒寫,等等。必須全身心的投入,一定要緊跟老師的步伐,同時(shí)還要記住流程。同時(shí)我也學(xué)會(huì)了Linux系統(tǒng)的正確移植和使用,根文件系統(tǒng)的正確移植和使用,驅(qū)動(dòng)程序的編譯與裝載。

109、嵌入式系統(tǒng)下,應(yīng)用程序的交叉編譯與下載和調(diào)試。</p><p>  這次的課程設(shè)計(jì),我認(rèn)為是一個(gè)團(tuán)隊(duì)的功勞,需要每個(gè)人的分工合作,共同討論。經(jīng)過多次的調(diào)試與分析,最終大家共同完成了這次課程設(shè)計(jì)。當(dāng)然,這次課程設(shè)計(jì),也遇到了很多專業(yè)知識(shí)的問題。在老師的幫助下,最終這些問題都迎刃而解。在老師的身上,我也學(xué)到了很多的知識(shí),可以說是受益匪淺。</p><p><b>  參考文獻(xiàn):<

110、;/b></p><p>  1、王田苗,魏洪興 嵌入式系統(tǒng)設(shè)計(jì)實(shí)例與開發(fā),北京:清華大學(xué)出版社 2008</p><p>  2、張海順,劉鐵跟基于AT89C52單片機(jī)的GP觸摸屏通信 自動(dòng)化與儀表 2009</p><p>  3、李中奇,張冬波,羅文俊.嵌入式Linux系統(tǒng)中觸摸屏控制的研究與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī)2005</p>&l

溫馨提示

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

評(píng)論

0/150

提交評(píng)論