ARM9+sygwin+linux移植(nor_flash)_第1頁
ARM9+sygwin+linux移植(nor_flash)_第2頁
ARM9+sygwin+linux移植(nor_flash)_第3頁
ARM9+sygwin+linux移植(nor_flash)_第4頁
ARM9+sygwin+linux移植(nor_flash)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式操作系統(tǒng)實驗實驗三Linux移植NORFlash燒寫1、 實驗目的1、 熟悉使用Cygwin模擬Linux操作環(huán)境2、 練習使用Linux的基本命令3、 了解NFS原理,并能夠正確使用其進行文件傳輸4、 了解并熟悉使用Make工具和Makefile5、 理解Linux在ARM平臺上的移植過程、詳細步驟,掌握各個環(huán)節(jié)的編譯燒寫過程二實驗流程 1、建立Linux 開發(fā)環(huán)境,Cygwin 安裝1、運行Cygwin 安裝程序setup.exe,然后選擇“Install from Local Directory“,選擇“下一步”,如圖0-1 所示。圖1-1 Cygwin 安裝2、選擇Cygwin

2、的安裝目錄,注意Cygwin 的安裝目錄必須位于硬盤NTFS 分區(qū)(且盡量不要使用系統(tǒng)C 分區(qū)),否則會影響文件屬性和權限操作,可能導致錯誤的結(jié)果。選擇Unix 文本文件類型進行安裝,直接選擇“下一步”后,則會把Unix 格式的cygwin 系統(tǒng)安裝到NTFS 格式的D 分區(qū)中,且安裝目錄為D:cygwin ,如圖0-2 所示。圖1-2 選擇安裝目錄圖1-3 安裝軟件包存放目錄3、選擇Cygwin 安裝包所在的目錄,可以是光盤也可以是本地硬盤分區(qū)。如E:/Cygwin 。選擇“下一步”繼續(xù)安裝,如圖0-3 所示。4、選擇軟件安裝項目。用鼠標單擊在安裝項目左邊“Default”字樣的位置,可以調(diào)

3、整該軟件項目的安裝設置,可能出現(xiàn)的狀態(tài)有四種:Default -該項目根據(jù)默認狀態(tài)處理,可能被安裝,也可能不安裝 Install -安裝該項目 Reinstall -重新安裝該項目 Uninstall -移除該項目5、對于cygwin 的軟件項目,如果完全安裝可能需要1GB 以上空間,對于不想安裝的項目可以選擇狀態(tài)為Default。通常只選擇Linux 開發(fā)必要的選項即可,特別地需要全部安裝以下項目:Admin 包括啟動服務cygrunsrv 等工具,NFS 啟動必備Archive 壓縮解壓工具集Base 基本的Linux 工具集Devel 開發(fā)工具集,包括gcc、make 等開發(fā)工具Libs

4、 函數(shù)庫Net 網(wǎng)絡工具集Shells 常用Shell 工具集Utils 包括bzip2 等實用工具集圖0-4 Cygwin 軟件包的選擇注意:由于cygwin 是Windows 環(huán)境下虛擬的Linux 開發(fā)環(huán)境,一般在ALL 處設置為Install 狀態(tài),即全部安裝。所以要建立一個完整的Linux 開發(fā)調(diào)試環(huán)境,加上存放編譯工具和例程的空間,至少需要一個容量在2GB 以上的分區(qū)。軟件包安裝完成后,根據(jù)提示信息進行余下的操作,此后可以在PC 機上運行Cygwin 了。6、安裝cygwin 安裝程序之外的工具軟件1)cygwin 環(huán)境下的NFS 服務器安裝運行cygwin 開發(fā)環(huán)境后,拷貝要安裝

5、的NFS 服務器軟件包nfs-server-2.2.47-2.tar.bz2 到cygwin/tmp 目錄下。按以下進行步驟安裝:1 (1)解壓安裝包2 (2)配置NFS Server 執(zhí)行nfs-server-config 命令后會顯示安裝信息。1 (3)設置主機訪問控制編輯文件/etc/hosts.allow 設置任何用戶都可以訪問nfs 服務時,在文件中增加行:nfsd: ALL (文件中只增加這行即可)也可以特別指定某個IP 地址的用戶訪問nfs 服務時,只需增加行如:nfsd: 00 (文件中只增加這行即可)如果特別指定某個子網(wǎng)地址的用戶訪問nfs 服務時,

6、只需增加行如:nfsd: / (文件中只增加這行即可).編輯文件/etc/hosts.deny 如果Cygwin 中沒有其他網(wǎng)絡服務,則注釋本文件中的所有行。2 (4)設置主機共享目錄編輯文件/etc/ exports 可以分行輸入需要共享的路徑及目錄,共享一個/home/app 目錄增加類似以下的行:/home/app /(rw, no_root_squash) 表示在192.192.192 子網(wǎng)上共享/home/app 目錄,該目錄可讀寫(rw)。3 (5)啟動NFS 服務用戶可以在Cygwin

7、 下執(zhí)行以下命令啟動服務:也可以通過打開Windows 控制面板管理工具服務,選擇portmap 、mountd 和nfsd 服務并啟動,這等效以上三條啟動命令。啟動之后可以使用以下命令檢查服務是否成功運行。如果輸出報告是某服務啟動失敗,請直接回到根目錄/重新安裝NFS server 軟件包。 啟動服務失敗可能的原因有:a. NFS server 安裝失?。褐匦碌礁夸浵陆鈮喊惭bNFS Server;b. 當前網(wǎng)絡連接沒有工作,比如沒有插入網(wǎng)絡線(網(wǎng)絡連接圖標無效):插入網(wǎng)絡使網(wǎng)絡連接工作,再重新啟動NFS 服務;c. 當前PC 機上運行殺毒軟件,禁止某些程序的訪問:通常先關閉所有影響文件存取

8、的應用程序;d. 對文件的存取權限不夠,特別地對export、host.deny、host.allow 文件的讀寫:改名備份這些文件,用文件編輯器拷貝這些文件內(nèi)容,再另存為同路徑下同名文件。e. 未知原因:償試更換另外的PC 機重新解壓安裝,再使用NFS。1.3 Embest IDE 開發(fā)環(huán)境Linux 的調(diào)試通常比較復雜,可以選擇的調(diào)試環(huán)境也很多。但由于Linux 系統(tǒng)內(nèi)核有包括全球在內(nèi)的技術工程師的維護和測試,需要我們在應用產(chǎn)品開發(fā)時進行調(diào)試的情況比較少,而且通常需要完成的是比較簡單的調(diào)試。在我們編譯調(diào)試好Linux 的啟動代碼、內(nèi)核和文件系統(tǒng)后,還需要把相應的映象文件固化到硬件系統(tǒng)上。像

9、這樣的Linux 開發(fā)需要可以在Embest IDE for ARM 和Embest JTA G 仿真器組成的開發(fā)環(huán)境下進行。構(gòu)建Embest IDE 進行Linux 調(diào)試環(huán)境的內(nèi)容可以參考后面章節(jié)。一般需要Embest IDE for ARM 軟件、Embest online Flash Programmer for ARM 、Embest JTAG 仿真器(標準型/增加型/通常型),以及進行調(diào)試時所需要的平臺初始化文件(命令腳本文件)和燒寫時平臺配置文件(*. cfg)。這些文件在隨開發(fā)板提供的光盤里一并提供了。1.4 文件傳輸服務器由于實驗系統(tǒng)中經(jīng)常需要與PC 之間傳送文件,文件傳輸協(xié)議

10、可以選用FTP 或tftp ,都需要在PC 機上建立相應的文件服務器。這里我們介紹較常用的tftp 小型文件傳送協(xié)議,來實現(xiàn)與實驗系統(tǒng)進行驅(qū)動程序安裝及應用程序測試中的文件傳送,首先需要在PC 機上運行一個tftp 服務器(運行文件位于開發(fā)板光盤ToolsDHCP&Tftp server 目錄下)。運行TFTP 服務器程序tftpd32.exe(也可以使用其他tftp 文件服務器),進行各種工作狀態(tài)、權限以及本地tftp 工作目錄的設置,默認狀態(tài)下可以直接進行工作,選擇cygwin/home/app (如果還沒有就先手動新建一個)作為本地tftp 工作目錄,在這個目錄下進行文件存取。如圖所示:

11、圖0.5 TFTP 服務器界面1.5 文件準備開發(fā)環(huán)境安裝完畢后,請在/tmp 目錄建立一個文件夾,名為edukit-2410,拷貝開發(fā)板光盤中以下目錄到相應位置:光盤Linux Source*.* - /tmp/edukit-2410 光盤Linux Sourceqt - /tmp/edukit-2410/qt 光盤Linux Sourcepatch - /tmp/edukit-2410/patch 光盤Tools*.tar.bz2 - /tmp/edukit-2410 2 編譯工具2.1 交叉編譯工具安裝在cygwin 開發(fā)環(huán)境下,我們要求把交叉編譯工具鏈安裝到:$CROSSDIR 目錄下

12、。請按以下操作完成安裝:1、把開發(fā)板光盤中提供的工具代碼包cross-armtools-linux-edukit2410.tar.bz2 拷貝到/tmp /目錄下;2、運行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的Linux 交叉編譯工具安裝:正確解壓后,可以看到/usr 目錄下多了一個arm-linux 目錄,這是我們需要的交叉編譯工具安裝目錄。接下來可以執(zhí)行2.2 中的set_env_linux.sh 文件來設置開發(fā)環(huán)境了。2.2 環(huán)境變量及編譯開關設置搭建一個Linux 開發(fā)、編譯和應用程序測試的環(huán)境,需要設置的開關較多,為了方便操作,我們提供了一個命令配置文件set_env_

13、linux.sh,正確安裝cygwin 后,請直接拷貝到/tmp 目錄下,只要在運行cygwin 后首先執(zhí)行一次該配置文件即可。運行命令是:set_env_linux.sh 代碼文件內(nèi)容如下:如果第一次在EduKit2410 實驗系統(tǒng)上進行Linux 開發(fā),執(zhí)行該文件后可以看到輸出結(jié)果如下:如果執(zhí)行后的輸出變?yōu)榇蛴∧夸浢Q,不執(zhí)行“Creating directory:”,表示Linux 開發(fā)調(diào)試相關目錄已經(jīng)存在了: 注意:I. 這是一個環(huán)境變量設置文件,通常剛打開cygwin 時都需要執(zhí)行一遍,以正確設置代碼編譯所需的環(huán)境變量;II. 如果交叉編譯工具安裝位置或者是源代碼包安裝位置與我們設置

14、的不一致,只需要修改set_e nv_linux.sh 文件中加粗部分設置即可;III. 在cygwin 環(huán)境下進行任何代碼編譯之前都需要執(zhí)行該文件一次;IV. 可以在cygwin/etc/profile 文件的”export PATH”行前插入本文件的內(nèi)容,則每次打開cyg win 時都自動運行了。3 源代碼文件3.1 vivi 源代碼安裝1、拷貝開發(fā)板光盤Linux Source 文件夾下的vivi-20030929.tar.bz2 文件和Sourcepatch 整個文件夾到$SOURCEDIR/目錄下;2、運行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的vivi 源代碼的安裝:在

15、實驗目錄下解壓vivi源代碼包(將會得到一個vivi目錄):正確解壓后,可以看到多了一個vivi 目錄,即vivi 源代碼的安裝目錄,后面的vivi 配置及編譯都得進入vivi 目錄進行。3、為EduKit2410 實驗系統(tǒng)打入源代碼的補丁文件:3.2 Linux 源代碼安裝1、拷貝開發(fā)板光盤Linux Source 文件夾下的linux-2.4.18-rmk7-pxa1-mz5.tar.bz2文件(和Sourcepatch 整個文件夾)到$SOURCEDIR/目錄下;2、運行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的Linux 源代碼的安裝:正確解壓后,可以看到多了一個kernel

16、 目錄,即kernel 源代碼的安裝目錄,后面的Linux 配置及編譯都得進入kernel 目錄進行。3、為EduKit2410 實驗系統(tǒng)打入Linux 源代碼的補丁文件:3.3 文件系統(tǒng)安裝1、拷貝開發(fā)板光盤Linux Source 文件夾下的root.cramfs.tar.bz2 和mkcramfs 文件到$SOURCEDIR/目錄下;2、運行cygwin,執(zhí)行以下命令完成cramfs 文件系統(tǒng)源代碼的安裝:正確解壓后,可以看到多了一個root 目錄,即cramfs 文件系統(tǒng)目錄及文件的安裝目錄,后面的提到的除說明是帶QT 的文件系統(tǒng)外,都使用這個目錄作為文件系統(tǒng)。4 環(huán)境設置及編譯4.1

17、 測試程序Makefile 在進行Linux 應用程序測試時,幾乎都需要編寫一個工程管理文件,這里我們提供一個應用程序的Makefile 模板文件:4.2 vivi 編譯首先需要按照3.1 節(jié)正確安裝源代碼包,然后執(zhí)行以下命令進行編譯:在make menuconfig彈出的界面選擇 Load an Alternate Configuration File:在彈出的輸入行中輸入想使用的配置文件(也可以逐一手動配置):smdk2410:編譯vivi在Nand Flash(K9S5608)中運行;smdk2410-amd:編譯vivi在Nor Flash(AM29LV160DB)中運行。配置完成后,

18、執(zhí)行make 來編譯vivi:如果編過程中沒有出現(xiàn)錯誤,則編譯后的執(zhí)行文件存放于vivi目錄下。4.3Linux 內(nèi)核編譯內(nèi)核及用戶程序配置首先需要按照前面正確安裝源代碼包,再使用Linux 提供三個不同的命令配置Linux,效果完全一樣。make config 控制臺命令行方式配置命令make menuconfig 文本菜單方式配置命令make xconfig X 窗口圖形界面方式配置命令比較直觀,常用執(zhí)行 make xconfig 命令后彈出配置窗口,如圖:圖1.6 內(nèi)核定制界面用戶可以手動定制上圖所示的各項(各選項的含義見“1.1 Linux 編譯”一節(jié)),也可以直接加載配置文件,在Ed

19、uKit2410 可以選擇以下配置文件:edukit2410-amd:編譯內(nèi)核映象在Nor Flash(AM29LV160DB,2MB)中運行edukit2410-nand:編譯內(nèi)核映象在Nand Flash(K9S5608,32MB)中運行注意:如果使用配置文件edukit2410-amd 編譯的內(nèi)核映象,也可以正確燒寫到Nand 中運行點擊Load Configuration from File 一項,即可通過下輸入框來選擇配置文件:輸入./arch/arm/def-configs/edukit2410-amd, 點擊OK 返回后,選擇Save and Exit 項保存退出,完成內(nèi)核及用戶

20、程序配置。編譯Linux 安裝配置好Cygwin 下的arm-linux-gcc 工具鏈之后,在Cygwin 中依次執(zhí)行以下命令完成Linux 的編譯過程(原則上第一次配置及編譯Linux,以下命令都需要執(zhí)行):命令含義如下:Make mrproper 命令清楚所有的舊的配置和舊的編譯目標文件等。Make xconfig 命令在圖形界面下對內(nèi)核進行配置。Make dep 命令搜索Linux 編譯輸出與源代碼之間的依賴關系,并生成依賴文件。Make clean 清除以前構(gòu)造內(nèi)核時生成的所有目標文件、模塊文件和臨時文件。Make zImage 編譯Linux 內(nèi)核,生成壓縮的內(nèi)核映像文件。最終在k

21、ernel/arch/arm/boot/ 目錄下生成文件zImage Linux 內(nèi)核2.4.18的壓縮方式可執(zhí)行映像文件。4.4 root 文件系統(tǒng)編譯1、首先按照0.3.3 安裝root 文件系統(tǒng)到$WORKDIR/目錄下;2、運行cygwin,執(zhí)行以下命令產(chǎn)生cramfs 文件系統(tǒng)映象:編譯生成文件系統(tǒng)映象文件root.cramfs,再固化到開發(fā)系統(tǒng)FLASH 上。5 映象文件燒寫這一節(jié)提到的配置及映象文件均位于開發(fā)板光盤Linux Flash Firmware 文件夾中。燒寫前,需要首先設置一下開發(fā)板的硬件跳線,使用不同的硬件資源及啟動方式選擇:EduKit 系統(tǒng)啟動可由在S3C241

22、0 核心子板上SW104(OM0)跳線設置決定:*)SW104(OM0):斷開OPEN -從Nor Flash 啟動,運行測試程序及Linux 系統(tǒng)*)SW104(OM0):短接CLOSE -從Nand Flash 啟動,只能運行Linux 系統(tǒng)1、串口信息收發(fā)軟件。由于燒寫過程中需要通過串口輸入操作選項,并且利用串口作為信息輸出平臺,所以燒寫(其實調(diào)試時也需要)前首先需要運行一個能夠進行串口收發(fā)的軟件,可以選擇像串口精靈、DNW 軟件及Windows 超級終端等,這里我們以Windwos 平臺的超級終端為例(大部分版本的Windows 安裝程序都默認安裝該組件。如果沒有安裝,請從Window

23、s 控制面板添加刪除Windo ws 組件來安裝即可)。點擊Windows 程序菜單中的附件,選擇通訊中的超級終端啟動超級終端軟件并設置超級終端為115200 波特率,8 位數(shù)據(jù)位,無校驗,1 位停止位,無數(shù)據(jù)流控制。如圖:本書后面章節(jié)使用到串口收發(fā)均使用該軟件及該設置圖0.8 超級終端設置界面2、程序燒寫軟件??梢允褂肊mbest online Flash Programmer for ARM (以下稱Flash P rogrammer)燒寫啟動文件、內(nèi)核映像和文件系統(tǒng)到Nor Flash 中。Flash Programmer 的使用順序是:點擊Settings 菜單中的Configure來

24、配置用于燒寫的Embest JTAG 仿真器參數(shù);點擊File 菜單中Open 打開配置文件,這里使用開發(fā)板光盤中Linux Flash Firmware 文件夾下EduKit2410&am29lv160db.cfg; 選擇Program 和Flash 頁修改要燒寫的文件及對應的Flash 地址(只修改起訖扇區(qū));圖0.9 FLASH 燒寫界面3、代碼下載軟件。我們可以通過Embest IDE for ARM (以下簡稱Embest IDE)+ Embes t JTAG 仿真器(可以是任何型號的Embest JTAG for ARM 仿真器),構(gòu)成代碼下載平臺,來實現(xiàn)代碼的下載,協(xié)助完成Linux 燒寫到Nand Flash 中(在Nor Flash 時不使用)。使用方法是在Embest IDE 中打開Download.ews 工程,進行仿真器(Remote)及下載(Do wnload)的設置,在程序運行后連接到系統(tǒng),下載代碼后再運行(實際上是一種介入運行的映象下載方式,適用于大文件下載)。具體操作

溫馨提示

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

評論

0/150

提交評論