




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ARM 嵌入式系統(tǒng)課程設(shè)計嵌入式系統(tǒng)課程設(shè)計-MMC/SD-MMC/SD 卡驅(qū)動程序設(shè)計卡驅(qū)動程序設(shè)計班級:通信班級:通信學(xué)號:學(xué)號:姓名:姓名:指導(dǎo)老師:曹清華指導(dǎo)老師:曹清華 課程設(shè)計時間:課程設(shè)計時間:2013.6.24-2013.6.28江蘇大學(xué)目錄目錄第一章第一章 引言引言.1 11.1 課程設(shè)計目的 .11.2 課程設(shè)計要求 .1第二章第二章 課程設(shè)計平臺構(gòu)建與流程課程設(shè)計平臺構(gòu)建與流程.1 12.1 嵌入式系統(tǒng)開發(fā)平臺構(gòu)建 .12.2 課程設(shè)計硬件結(jié)構(gòu)與工作原理 .1第三章第三章 BOOTLOADERBOOTLOADER 移植與下載移植與下載 .4 43.1 BOOTLOADER
2、解壓.43.2 BOOTLOADER編譯.43.3 BOOTLOADER下載.4第四章第四章 LINUXLINUX 內(nèi)核移植與下載內(nèi)核移植與下載 .5 54.1 LINUX內(nèi)核總流程.54.2 LINUX源代碼安裝.64.3 LINUX源代碼安裝分析.64.4 LINUX內(nèi)核配置、編譯、燒寫.6第五章第五章 根文件系統(tǒng)建立與文件系統(tǒng)下載根文件系統(tǒng)建立與文件系統(tǒng)下載.11115.1LINUX文件系統(tǒng)的類型.115.2 文件系統(tǒng)的制作.125.3 文件系統(tǒng)的下載.125.4 功能模塊運行和調(diào)制.14第六章第六章 思考題思考題.1515第七章第七章 課設(shè)中遇到的問題及解決方法課設(shè)中遇到的問題及解決方
3、法.1717第八章第八章 總結(jié)與體會總結(jié)與體會.18181第一章第一章 引言引言1.11.1 課程設(shè)計目的課程設(shè)計目的1) 了解 PXA27X 微處理器 GPIO 的功能2) 了解 MMC 卡驅(qū)動程序的架構(gòu)及編程方法3) 掌握 MMC 卡的使用方法1.21.2 課程設(shè)計要求課程設(shè)計要求1) 理解基于 Linux 的嵌入式系統(tǒng)交叉開發(fā)環(huán)境,對嵌入式系統(tǒng)的開發(fā)流程有詳細的了解;2) 掌握開發(fā)工具鏈的構(gòu)建方法,能獨立進行系統(tǒng)開發(fā)操作;3) 掌握 Linux 的常用命令,在 linux 系統(tǒng)下能熟練的使用這些常用命令;4) 熟悉 linux 內(nèi)核的知識以及原理,掌握定制 Linux 內(nèi)核的方法;5)
4、基于 Linux 操作系統(tǒng),以及 XSBase270ARM 實驗開發(fā)平臺一套,把 MMC 存儲卡掛載目標板上并進行文件的復(fù)制操作。第二章第二章 課程設(shè)計平臺構(gòu)建與流程課程設(shè)計平臺構(gòu)建與流程2.12.1 嵌入式系統(tǒng)開發(fā)平臺構(gòu)建嵌入式系統(tǒng)開發(fā)平臺構(gòu)建1) 裝有 Linux 操作系統(tǒng)的 PC 機一臺;2) XSBase270 ARM 實驗開發(fā)平臺一套3) MMC 存儲卡一塊2.22.2 課程設(shè)計硬件結(jié)構(gòu)與工作原理課程設(shè)計硬件結(jié)構(gòu)與工作原理.1 目標板的目標板的 MMCMMC 卡硬件接口卡硬件接口目標板的MMC/SD卡的硬件接口如圖1.1所示,根據(jù)PXA27x的MMC/SD/SDIO控
5、制器的信號功能以及PXA27x的GPIO的功能分配,命令控制線MMCMD與GPIO112相連,此時引腳GPIO112必須配置成轉(zhuǎn)換功能1(Alternate Function 1)的輸入或輸出方式(具體參考PXA27X開發(fā)手冊) ,時鐘端MMCLK利用了通用IO口GPIO32轉(zhuǎn)換功能1輸出方式,4位總線MMDAT0到MMDAT3分別與GPIO111、GPIO110、GPIO109和GPIO92相連,都時使用了通用IO口的轉(zhuǎn)換功能1的輸入或輸出方式。圖1.2為MMC/SD卡的供電電路圖。2圖 1.1 目標板的 MMC/SD 卡的硬件接口圖 1.2 MMC/SD 卡的供電電路圖.2
6、 PXA270PXA270 的的 MMC/SD/SDIOMMC/SD/SDIO 控制器控制器PXA270的MMC/SD/SDIO控制器在訪問PXA270處理器的軟件與MMC存儲堆和支持MMC、SD及SDIO通信協(xié)議之間充當聯(lián)結(jié)作用。PXA27x的MMC控制器協(xié)議規(guī)范遵守多媒體卡系統(tǒng)規(guī)范V3.2(MultiMediaCard System Specification Version 3.2);SD控制器支持一個基于SD存儲卡規(guī)范V1.01(SD Memory Card Specification Version 1.01)SD卡或基于SDIO卡規(guī)范V1.0( SDIO Card pecifica
7、tion Version 1.0)。MMC/SD/SDIO控制器采用標準的MMC傳輸協(xié)議或串行通信接口SPI協(xié)議模式。訪問PXA270的軟件使用MMC傳輸協(xié)議或SPI模式作為與MMC控制器通信的協(xié)議。目標板的SD驅(qū)動程序采用了MMC通信傳輸協(xié)議。1)MMC/SD/SDIO 控制器特性:. 在MMC、1位SD/SDIO和SPI模式中,數(shù) 據(jù)傳輸速率高達19.5Mbps;3. 對于4位SD/SDIO的數(shù)據(jù)傳輸速率高達78Mbps;. 具有兩個接受和發(fā)送FIFO數(shù)據(jù)緩沖區(qū);. 具有MMC/SD/SDIO和SPI兩種操作模式;MMC/SD/SDIO模式支持MMC、SD和SDIO的通信協(xié)議,SPI模式支
8、持SPI通信協(xié)議;. 在SD和SDIO通信協(xié)議中,支持1位和4位數(shù)據(jù)傳輸;. 控制器可根據(jù)FIFO數(shù)據(jù)緩沖區(qū)的狀態(tài)關(guān)閉和啟動時鐘信號,防止數(shù)據(jù)溢出;. 支持所有有效的MMC和SD/SDIO數(shù)據(jù)傳輸協(xié)議;. 基于中斷的應(yīng)用接口控制軟件交互操作;. 在數(shù)據(jù)流的寫操作中,允許10字節(jié)大小的數(shù)據(jù)或更大的數(shù)據(jù)流;. 使用MMC通信協(xié)議,支持多個MMC卡;. 使用SD或SDIO通信協(xié)議,只支持一個SD卡或SDIO卡;. 使用SPI通信協(xié)議;可支持兩個MMC卡或SD/SDIO卡,也可支持兩者的混合使用;2)MMC/SD/SDIO 控制器的信號功能與對應(yīng)引腳:信號MMC和SD/SDIOSPI模式功能對應(yīng)引腳M
9、MCLK輸出輸出MMC和SD/SDIO總線時鐘GPIO32MMCDM雙向輸出MMC和SD/SDIO:命令和響應(yīng)標志雙向IO口SPI模式:命令和寫數(shù)據(jù)輸出口GPIO112MMDAT雙向輸入MMC和SD/SDIO:讀寫數(shù)據(jù)雙向IO口SPI模式:讀數(shù)據(jù)和響應(yīng)標志輸入線GPIO111MMDAT雙向輸入MMC和SD/SDIO:SD/SDIO的4位數(shù)據(jù)傳輸線和信號SDIO到控制器的中斷信號SPI模式:信號SDIO到控制器的中斷信號GPIO110MMDAT/MDCCS雙向輸出SD/SDIO:4位數(shù)據(jù)傳輸線SPI模式:CS0片選信號GPIO109MMDAT/MDCCS雙向輸出SD/SDIO:4位數(shù)據(jù)傳輸線SP
10、I模式:CS1片選信號GPIO9.3 MMCMMC 卡的通信協(xié)議卡的通信協(xié)議主機與MMC卡的所有通信都是由主機發(fā)起,主機發(fā)出廣播和點對點兩種類型通信命令,在廣播通信命令中,主機發(fā)出的命令被所有的卡接受,只有部分命令需要響應(yīng);而在點對點通信命令中,命令被發(fā)送到具體地址的卡中,并由該卡對所接受的命令做出響應(yīng)。4第三章第三章 BootloaderBootloader 移植與下載移植與下載3.13.1 BootloaderBootloader 解壓解壓先將 D:emdorEELiod_V4_SDK 目錄下的 Linux-2.4 復(fù)制到虛擬機里 root 的主文件夾中,然后用如下指令進
11、行解壓:利用上述命令解壓后,bootloader 源代碼解壓到當前目錄中 Boot-XSBase270 文件夾中。3.23.2 BootloaderBootloader 編譯編譯在解壓的目錄里進行make 編譯。rootubuntu:Bootloader # cd Boot-XSBase270rootubuntu: Boot-XSBase270 # make cleanrootubuntu: Boot-XSBase270 # make編譯完成后, 在當前目錄下會生成 bootloader 映象文件 boot,將此 boot 拷貝到 share共享文件夾下。3.33.3 BootloaderBo
12、otloader 下載下載打開實驗臺電源,啟動H-JTAG 和H-Flasher,在H-Flasher 中裝載配置文件pxa270.hfc(Load菜單,選中C:driversH-JTAG中pxa270.hfc文件),點擊Programming中的Check,Scr File 選擇E:share中的boot(或者是D:emdorEELiod_V4_SDK Linux-52.4images中的boot 文件),點擊Program,燒寫成功后點擊 Verify 校驗。第四章第四章 LinuxLinux 內(nèi)核移植與下載內(nèi)核移植與下載4.14.1 LinuxLinux 內(nèi)核總流程內(nèi)核總流程運行VMwa
13、re Player創(chuàng)建kernel目錄進入kernel目錄內(nèi)核編譯判斷編譯是否成功生成映像文件zImage內(nèi)核燒寫重啟實驗板,啟動內(nèi)核否是64.24.2 LinuxLinux 源代碼安裝源代碼安裝參照以前做過的實驗五、七 BootLoader 實驗。內(nèi)核解壓:4.34.3 LinuxLinux 源代碼安裝分析源代碼安裝分析Linux 提供三個不同的命令進行 Linux 的配置,效果完全一樣:make config 控制臺命令行方式配置命令make menuconfig 文本菜單方式配置命令make xconfig X 窗口圖形界面方式配置命令其他部分命令:Make mrproper 命令清除所
14、有的舊的配置和舊的編譯目標文件等。Make dep 命令搜索 Linux 編譯輸出與源代碼之間的依賴關(guān)系、并生成依賴文件。Make clean 清除以前構(gòu)造內(nèi)核時生成的所有目標文件、模塊文件和臨時文件。Make zImage 編譯Linux內(nèi)核,生成壓縮的內(nèi)核映像文件4.44.4 LinuxLinux 內(nèi)核配置、編譯、燒寫內(nèi)核配置、編譯、燒寫.1 LinuxLinux內(nèi)核配置內(nèi)核配置進入內(nèi)核源代碼目錄 linux-2.4.21-51Board_EDR,執(zhí)行 make mrproper:刪除所有以前在構(gòu)核過程所產(chǎn)生的所有文件,執(zhí)行 make menuconfig,對內(nèi)核進行配置。
15、Linux 針對 MMC/SD 內(nèi)核配置的步驟:1)在主菜單下選擇LoadableLoadable modulemodule supportsupport -* Enable Loadable moduLe Support利用模塊可將不常用的設(shè)備驅(qū)動或功能作7為模塊放在內(nèi)核外部,必要時動態(tài)地調(diào)用。操作結(jié)束后從內(nèi)存中刪除,這樣可以有效地使用內(nèi)存,同時也可減小了內(nèi)核的大小。模塊可以自行編譯并具有獨立的功能,即使需要改變模塊的功能,也不用對整個內(nèi)核進行修改。文件系統(tǒng),設(shè)備驅(qū)動,二進制格式等很多功能都支持模塊。一定要選擇*。 Set version information on all Symbols
16、 for modules利用這個功能能夠讓內(nèi)核使用其它內(nèi)核版本模塊或沒有包含在此 kernel 的特殊的模塊。一般選擇N。* Kernel module Loader這個設(shè)置使kernel 對模塊處于常備狀態(tài)。在不使用Insmod 或rmmod 命令情況下,kernel 程序自動將需要執(zhí)行的模塊調(diào)用到內(nèi)存中,一定時間內(nèi)不使用該模塊時自動將其從內(nèi)存刪除,一般要選擇*。82)再回到主菜單下選擇 General setup 選擇“Support for hot-pluggable devices” , 出現(xiàn)“MMC/SD device drivers”:點擊“MMC/SD device driver
17、s” ,進入下一頁選擇:.2 LinuxLinux內(nèi)核編譯內(nèi)核編譯配置完成后,重新編譯內(nèi)核,需要輸入以下指令:生成的 zImage 存放路徑為:10將 zImage 拷貝到 tftpboot 文件夾下:.3 LinuxLinux內(nèi)核燒寫內(nèi)核燒寫重新打開一個終端,輸入命令:rootubuntu:# minicom,然后重啟開發(fā)板電源。看到 Boot 啟動信息后按任意鍵啟動Boot 的 Operation Menu,我們需要用這個boot 內(nèi)嵌工具下載內(nèi)核。然后再提示信息 Please enter your selection 后面輸入 2,獲取本地 IP 地址:
18、11可以看到Operation Menu 菜單上方顯示:My ip address is 0,則表示板載Linux 與Ubuntu 服務(wù)器連接成功。如果看不到 My ip,則需要去修改/etc 中bootptab 文件最后一行,將其修改為與本機的my mac address 相同,本例圖中顯示的是 my mac address is 00:08:0C:81:1D: 90。重新打開一個終端,進入/etc 目錄,輸入:#gedit bootptab輸入 3,下載內(nèi)核文件 ZImage(在 Ubuntu 的文件系統(tǒng)的/tftpboot/目錄中)下載成功后選擇 4,燒寫內(nèi)核。第五
19、章第五章 根文件系統(tǒng)建立與文件系統(tǒng)下載根文件系統(tǒng)建立與文件系統(tǒng)下載5.15.1LinuxLinux 文件系統(tǒng)的類型文件系統(tǒng)的類型.1 EXTEXT 文件系統(tǒng)文件系統(tǒng)Ext2fs 是 Linux 的標準文件系統(tǒng),它已經(jīng)取代了擴展文件系統(tǒng)(或 Extfs) 。擴展文件系統(tǒng) Extfs 支持的文件大小最大為 2 GB,支持的最大文件名稱大小為 255 個字符,而且它12不支持索引節(jié)點(包括數(shù)據(jù)修改時間標記) 。.2 NFSNFS 文件系統(tǒng)文件系統(tǒng)NFS 是一個 RPC service ,它是由 SUN 公司開發(fā),并于 1984 年推出。NFS 文件系統(tǒng)能夠使文件實現(xiàn)共
20、享,它的設(shè)計是為了在不同的系統(tǒng)之間使用,所以 NFS 文件系統(tǒng)的通信協(xié)議設(shè)計與作業(yè)系統(tǒng)無關(guān)。當使用者想使用遠端文件時只要用“mount”命令就可以把遠端文件系統(tǒng)掛載在自己的文件系統(tǒng)上,使遠端的文件在使用上和本地機器的文件沒有區(qū)別。NFS 的具體配置可參考實驗一的網(wǎng)絡(luò)文件系統(tǒng) nfs 的配置。.3 JFFS2JFFS2 文件系統(tǒng)文件系統(tǒng)JFFS 文件系統(tǒng)是瑞典 Axis 通信公司開發(fā)的一種基于 Flash 的日志文件系統(tǒng),它在設(shè)計時充分考慮了 Flash 的讀寫特性和電池供電的嵌入式系統(tǒng)的特點,在這類系統(tǒng)中必需確保在讀取文件時,如果系統(tǒng)突然掉電,其文件的可靠性不受到影響。 對 R
21、ed Hat 的 Davie Woodhouse 進行改進后,形成了 JFFS2。主要改善了存取策略以提高 FLASH 的抗疲勞性,同時也優(yōu)化了碎片整理性能,增加了數(shù)據(jù)壓縮功能。需要注意的是,當文件系統(tǒng)已滿或接近滿時,JFFS2 會大大放慢運行速度。這是因為垃圾收集的問題。相對于 EXT2fs 而言,JFFS2 在嵌入式設(shè)備中更受歡迎。5.25.2 文件系統(tǒng)的制作文件系統(tǒng)的制作.1文件系統(tǒng)解壓文件系統(tǒng)解壓將 D:emdorEELiod_V4_SDKLinux-2.4Filesystem 中的內(nèi)容復(fù)制E:share 中,再Ubuntu 中從共享目錄中復(fù)制到/tmp/中,形成Fil
22、esystem文件夾,然后將文件系統(tǒng)壓縮包解壓,形成rootfs270文件系統(tǒng)文件夾??梢越⒁粋€小的應(yīng)用程序,將其復(fù)制到文件系統(tǒng)的某個目錄中。.2制作制作JFFS2JFFS2文件映像文件映像確認已將將光盤的 Filesystem 下的mkfs.jffs2 和mkrootfs.sh 拷貝到文件系統(tǒng)根目錄下,在根目錄下(例如上面的Filesystem),運行命令(先將Filesystem文件夾復(fù)制到根目錄下)生成映像文件 rootfs270.img,拷貝到/tftpboot 中燒寫到 flash 中,啟動后運行結(jié)果?;蛘哌\行# ./mkrootfs.sh 也可生成文件系統(tǒng)的映像文
23、件 rootfs.img。135.35.3 文件系統(tǒng)的下載文件系統(tǒng)的下載參照嵌入式系統(tǒng)實驗五,重新打開一個終端,輸入命令:rootubuntu:# minicom然后重啟開發(fā)板電源??吹?Boot 啟動信息后按任意鍵啟動Boot 的 Operation Menu,我們需要用這個boot 內(nèi)嵌工具下載內(nèi)核。然后再提示信息 Please enter your selection 后面輸入 2,獲取本地 IP 地址:可以看到Operation Menu 菜單上方顯示:14My ip address is 0,則表示板載Linux 與Ubuntu 服務(wù)器連接成功。如果看不到 My
24、 ip,則需要去修改/etc 中bootptab 文件最后一行,將其修改為與本機的my mac address 相同,本例圖中顯示的是 my mac address is 00:08:0C:81:1D: 90。重新打開一個終端,進入/etc 目錄,輸入:#gedit bootptab輸入5,下載文件系統(tǒng)rootfs.img(在Ubuntu的文件系統(tǒng)/tftpboot目錄中)下載成功后選擇6,燒寫文件系統(tǒng)內(nèi)核和系統(tǒng)文件燒寫結(jié)束,選擇7啟動Linux系統(tǒng),使用root用戶登錄,進入載板linux系統(tǒng),啟動后位于/root文件夾中5.45.4 功能模塊運行和調(diào)制功能模塊運行和調(diào)制可以按照以下步驟對
25、MMC 卡的驅(qū)動程序進行測試:重新打開一個終端,輸入 minicom,開發(fā)板啟動后,將 MMC 存儲卡插入 MMC/SD 卡插槽中,輸入下面的指令:15如果有顯示的內(nèi)容,表示 sd 卡已經(jīng)檢測到。如果沒有內(nèi)容,說明 sd 卡沒有檢測到。首先在根目錄下創(chuàng)建一個名為“sd”的文件夾:(請大家以自己的名字首寫字母命名此文件夾):然后進入 dev 文件夾,紅框標注的為需要用的文件:再利用 mount 命令掛載 MMC 卡:進入到 sd 文件夾下,用 ls 查看,就可以看到 MMC 卡里面的內(nèi)容了:可以對 MMC 卡里的內(nèi)容進行讀、寫、復(fù)制等操作:16第六章第六章 思考題思考題1. 嵌入式系統(tǒng)開發(fā)的軟件
26、有哪些? 答:VMware Player、H-JTAG。 VMware Player 用于啟動 Ubuntu 虛擬機環(huán)境。H-JTAG 用于搜索目標板。2. 嵌入式系統(tǒng)開發(fā)硬件設(shè)備有哪些? 答:裝有 Linux 操作系統(tǒng)的 PC 機一臺、 XSBase270 ARM 實驗開發(fā)平臺一套、MMC/SD 存儲卡一塊3. 軟件的界面表示進入哪一個環(huán)境? 答:(1)虛擬機環(huán)境下:(2)Linux 內(nèi)核配置環(huán)境下: 17 (3)boot 內(nèi)嵌工具的環(huán)境下:(4)51Board 板的環(huán)境下:18第第 7 7 章章 課設(shè)中遇到的問題及解決方法課設(shè)中遇到的問題及解決方法1、問題: Linux內(nèi)核燒寫時,重新打開一個終端,輸入命令:rootubuntu:# minic
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作經(jīng)營合同格式
- 個人兩室兩廳房屋租賃合同7篇
- 2025年專業(yè)勞務(wù)輸出合同
- 2025年云南省橋梁建設(shè)合同
- 2025年二手房個人交易合同范本解析與
- 2025年企業(yè)策劃合作權(quán)益轉(zhuǎn)讓合同
- 品牌產(chǎn)品服務(wù)合同5篇
- 5G通信技術(shù)發(fā)展-第1篇-深度研究
- 宇宙背景輻射起源研究-深度研究
- 新能源汽車租賃服務(wù)合同樣本(2025年)
- 2025包頭青山賓館有限公司面向社會公開招聘18人筆試參考題庫附帶答案詳解
- 課件-DeepSeek從入門到精通
- 2025至2030年中國毛絨卡通玩具數(shù)據(jù)監(jiān)測研究報告
- 2025年度智能充電樁場地租賃合同范本3篇
- 2024年蕪湖職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 心電監(jiān)護儀的操作及注意事項 課件
- GB/T 718-2024鑄造用生鐵
- 細胞生物學(xué)(全套1047張課件)
- 《嵌入式技術(shù)》課程標準(STM32版)
- tplink-mr11u刷openwrt教程
評論
0/150
提交評論