版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
..目錄TOC\o"1-1"\h\z\t"標(biāo)題2,2,標(biāo)題3,3"前言-1-1.1嵌入式系統(tǒng)簡介-2-1.2認(rèn)識博創(chuàng)經(jīng)典實(shí)驗(yàn)箱-2-1.3建立開發(fā)環(huán)境-3-1.4給下位機(jī)燒寫軟件系統(tǒng)-3-二.基本原理-4-2.1LED顯示控制原理-4-7段〔或8段LED-5-點(diǎn)陣式LED-6-2.274HC273在開發(fā)板上的連接-6-7段〔或8段LED的連接-6-點(diǎn)陣式LED的連接-7-2.3LED編程-8-7段LED的段碼表-8-點(diǎn)陣式LED的顯示緩沖區(qū)-9-三.系統(tǒng)分析與設(shè)計(jì)-9-3.1設(shè)計(jì)需求-9-3.2LED點(diǎn)陣顯示與C語言編程-9-3.2.1LED點(diǎn)陣顯示-9-3.2.2C語言編程103.3Makefile文件的編寫123.4實(shí)驗(yàn)環(huán)境的連接14四.運(yùn)行結(jié)果16總結(jié)18致謝19參考文獻(xiàn)20摘要由于電子技術(shù)的迅猛發(fā)展,在我們生活的到處都會發(fā)現(xiàn),LED燈的廣泛存在。LED以其組構(gòu)方式靈活,顯示靈活,壽命長,功耗低,技術(shù)成熟,成本低廉等特點(diǎn),廣泛在車站,證券所,運(yùn)動場所,交通干道各種室內(nèi)外顯示場所的信息發(fā)布,公益宣傳,環(huán)境參數(shù)實(shí)時(shí)顯示,重大活動倒計(jì)時(shí)等場所得到廣泛應(yīng)用。本文通過上位機(jī)編程控制下位機(jī),在LED燈驅(qū)動程序設(shè)計(jì)的過程中,從零開始做起,到最后完成LED驅(qū)動程序設(shè)計(jì)并成功驅(qū)動LED燈,編寫本文檔有助于鞏固實(shí)訓(xùn)所學(xué)。設(shè)計(jì)該LED燈驅(qū)動程序主要是為了完成在Linux下設(shè)計(jì)LED燈驅(qū)動程序并成功驅(qū)動LED顯示相應(yīng)的圖案。關(guān)鍵詞:嵌入式makefile點(diǎn)陣LED..前言嵌入式系統(tǒng)一般由嵌入式微處理器,外圍硬件設(shè)備,嵌入式操作系統(tǒng),用戶應(yīng)用程序4個(gè)部分組成。用于實(shí)現(xiàn)對其他設(shè)備的控制,監(jiān)視或管理等功能。嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用于科學(xué)研究,工業(yè)控制,軍事技術(shù),交通通信,醫(yī)療衛(wèi)生,消費(fèi)娛樂等領(lǐng)域,人們常用的手機(jī),PDA,汽車,智能家電,GPS等均是嵌入式系統(tǒng)的典型代表。本課程設(shè)計(jì)要求利用實(shí)驗(yàn)室提供的ARM2410實(shí)驗(yàn)箱進(jìn)行相應(yīng)的設(shè)計(jì),主要包括理解LED原理,掌握在LINUX下常用編輯器的使用,掌握MAKEFILE的編寫和使用,掌握LINUX下的程序編譯與交叉編譯過程,有一定的數(shù)字電路的知識,能夠設(shè)計(jì)出新穎的顯示圖樣,最后通過上下位機(jī)實(shí)現(xiàn)結(jié)果的顯示一.實(shí)驗(yàn)平臺1.1嵌入式系統(tǒng)簡介嵌入式系統(tǒng)是基于單片機(jī)的一種升級版,它是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。我們可從幾方面來理解嵌入式系統(tǒng):1、嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應(yīng)用的,嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強(qiáng)的專用性,必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的裁減利用。嵌入式系統(tǒng)和具體應(yīng)用有機(jī)地結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進(jìn)行,因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入市場,具有較長的生命周期。2、嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。3、嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機(jī)本身中,而不是存貯于磁盤等載體中。4、嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即使設(shè)計(jì)完成以后用戶通常也是不能對其中的程序功能進(jìn)行修改的,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。實(shí)際上,凡是與產(chǎn)品結(jié)合在一起的具有嵌入式特點(diǎn)的控制系統(tǒng)都可以叫嵌入式系統(tǒng)。現(xiàn)在人們講嵌入式系統(tǒng)時(shí),某種程度上指近些年比較熱的具有操作系統(tǒng)的嵌入式系統(tǒng)。1.2認(rèn)識博創(chuàng)經(jīng)典實(shí)驗(yàn)箱博創(chuàng)經(jīng)典UP-TECH-S2410/P270-DVP實(shí)驗(yàn)箱是由北京博創(chuàng)興業(yè)科技有限公司推出的一款嵌入式實(shí)驗(yàn)箱。它的核心模塊為S2410或P270,當(dāng)它安裝S2410核心模塊時(shí)為S2410實(shí)驗(yàn)箱,安裝P270核心模塊時(shí)為P270實(shí)驗(yàn)箱。1.3建立開發(fā)環(huán)境1.在下位機(jī)斷電的情況下,利用實(shí)驗(yàn)箱中自帶的串口線將上位機(jī)的com1口與下位機(jī)的RS232-0口進(jìn)行連接。2.利用實(shí)驗(yàn)箱中自帶的直連網(wǎng)線將上位機(jī)與下位機(jī)進(jìn)行連接。3.根據(jù)下位機(jī)中安裝的核心模塊,選擇相應(yīng)的嵌入式系統(tǒng)開發(fā)軟件光盤。4.將選擇好的嵌入式系統(tǒng)開發(fā)軟件光盤放入上位機(jī)的光驅(qū)中,在終端命令窗口中掛載該光盤。mount–oiocharset=gb2312/dev/cdrom/mnt5.進(jìn)入光盤的Linux工具軟件目錄。執(zhí)行該目錄下的shell文件"install.sh",Linux工具軟件會自動安裝完成。對于S2410,會將程序安裝在目錄"arm2410cl"下,交叉編譯器安裝在目錄"/opt/host"下。用戶可以通過使用命令"armv41-unknown-linux-gcc"運(yùn)行交叉編譯器。6.啟動minicom超級終端程序,選擇"Serialportsetup"進(jìn)入串口配置界面進(jìn)行串口配置。然后可以打開下位機(jī)的電源,通過minicom對下位機(jī)進(jìn)行操作。7.使用命令ifconfig分別查看上位機(jī)和下位機(jī)的IP地址,判斷上位機(jī)與下位機(jī)是否處于同一個(gè)網(wǎng)段。若它們不在同一網(wǎng)段,使用命令ifconfig或者KDE桌面的工具,將它們配置在同一網(wǎng)段。使用命令ping查看上位機(jī)與下位機(jī)的網(wǎng)絡(luò)連接是否正常,如不正常,請檢查網(wǎng)線的連接、IP地址的配置、IP地址是否沖突等。8.將上位機(jī)配置為NFS服務(wù)器,設(shè)置共享目錄為"/arm2410cl"。9.在上位機(jī)中啟動NFS服務(wù),下位機(jī)使用命令mount掛載上位機(jī)的共享目錄。mount–tnfs52:arm2410cl/mnt/nfs1.4給下位機(jī)燒寫軟件系統(tǒng)下位機(jī)的軟件系統(tǒng)由Bootloader、系統(tǒng)內(nèi)核、根文件系統(tǒng)和應(yīng)用程序四部分組成。Bootloader相當(dāng)于PC機(jī)上的BIOS,在下位機(jī)加電時(shí)自動運(yùn)行,執(zhí)行硬件初始化和調(diào)用系統(tǒng)內(nèi)核的功能。Bootloader分為U-boot、Vivi、Blob、ARMBoot、RedBoot等多種,本實(shí)驗(yàn)使用實(shí)驗(yàn)箱自帶光盤中的vivi。系統(tǒng)內(nèi)核就是運(yùn)行在下位機(jī)上的操作系統(tǒng)內(nèi)核,本實(shí)驗(yàn)使用實(shí)驗(yàn)箱自帶光盤中的zImage,是ARM-Linux的內(nèi)核,版本號為2.6。根文件系統(tǒng)是Linux系統(tǒng)必不可少的一部分,用來管理下位機(jī)中的文件。本實(shí)驗(yàn)使用實(shí)驗(yàn)箱自帶光盤中的root.cramfs。Cramfs是專門針對Flash設(shè)計(jì)的只讀壓縮的文件系統(tǒng),其容量上限為256M,采用zlib壓縮,文件系統(tǒng)類型可以是EXT2或EXT3,經(jīng)常作為下位機(jī)的根文件系統(tǒng)。應(yīng)用程序是需要燒寫到下位機(jī),在下位機(jī)中運(yùn)行的程序,在上位機(jī)中以壓縮文件包的形式保存,本實(shí)驗(yàn)使用實(shí)驗(yàn)箱自帶光盤中的yaffs.tar.bz2。應(yīng)用程序所的文件系統(tǒng)為Yaffs〔YetAnotherFlashFileSystem,Yaffs是一種專門為Flash設(shè)計(jì)的嵌入式文件系統(tǒng),運(yùn)行速度快、占用內(nèi)存小,提供寫均衡、垃圾收集等底層功能。給下位機(jī)燒寫軟件系統(tǒng)的步驟:1.燒寫Vivi到下位機(jī);2.在上位機(jī)的WindowsXP中配置超級終端,連接下位機(jī);3.燒寫系統(tǒng)內(nèi)核到下位機(jī);4.燒寫根文件系統(tǒng)到下位機(jī);5.燒寫應(yīng)用程序到下位機(jī)。二.基本原理2.1LED顯示控制原理LED是發(fā)光二極管英文LightEmittingDiode的縮寫格式,LED器件種類繁多,早期的LED產(chǎn)品是單個(gè)發(fā)光管,隨著數(shù)字化設(shè)備的出現(xiàn),LED數(shù)碼管和字符管得到了廣泛的應(yīng)用,LED點(diǎn)陣等顯示器件的出現(xiàn),適應(yīng)了信息化社會發(fā)展的需要,成為了大眾傳媒的重要工具。LED發(fā)光燈按類型可以分為單色發(fā)光燈、雙色發(fā)光燈、三色發(fā)光燈、面發(fā)光燈、閃爍發(fā)光燈、電壓型發(fā)光燈等;按發(fā)光強(qiáng)度可分為普通亮度發(fā)光燈、高亮度發(fā)光燈、超高亮度發(fā)光燈等。2.1.17段〔或8段LEDLED的7個(gè)字段分別稱為a、b、c、d、e、f、g,有時(shí)還有一個(gè)小數(shù)點(diǎn)段h,圖1<a>所示。通過7個(gè)〔或8個(gè)發(fā)光段的不同組合,顯示0~9和A~F共16個(gè)字母數(shù)字,從而實(shí)現(xiàn)十六進(jìn)制的顯示。為使7段顯示器顯示數(shù)字或字符,就需點(diǎn)亮相應(yīng)的段,每個(gè)段分別由數(shù)據(jù)線進(jìn)行控制,通常數(shù)據(jù)線D0~D7順序控制a~h段,如圖11-34<b>所示,所需的控制信號稱為段碼。由于數(shù)字與段碼之間沒有規(guī)律性,因此必須進(jìn)行數(shù)字與段碼之間的轉(zhuǎn)換以便顯示數(shù)字。常用的轉(zhuǎn)換方法是將要顯示字形的段碼列成一個(gè)表,稱為段碼表。顯示時(shí),根據(jù)字符查段碼表,取出其對應(yīng)的段碼送到數(shù)據(jù)線上來控制顯示。圖18段LED顯示器外形及各段對應(yīng)的數(shù)據(jù)線圖18段LED顯示器外形及各段對應(yīng)的數(shù)據(jù)線LED有兩種不同的形式:一種是8個(gè)發(fā)光二極管的陽極都連在一起,稱為共陽極,如圖2〔a所示;另一種是8個(gè)發(fā)光二極管的陰極都連在一起,稱為共陰極,如圖2〔b所示。圖2圖28段LED顯示器原理圖2.1.2點(diǎn)陣式LED點(diǎn)陣式LED的顯示單元一般由8行8列LED組成,其外形及內(nèi)部連接如圖3所示,可以再由這8行8列的LED拼成更大的LED陣列。點(diǎn)陣式LED顯示器能顯示各種字符、漢字及圖形、圖像,并具有色彩。點(diǎn)陣式LED中,每個(gè)LED表示一個(gè)像素,通過每個(gè)LED的亮與滅來構(gòu)造出所需的圖形,各種字符及漢字也是通過圖形方式來顯示的。對于單色點(diǎn)陣式LED,每個(gè)像素需要1位二進(jìn)制數(shù)表示,1表示亮,0表示滅。對于彩色點(diǎn)陣式LED,則每個(gè)像素需要更多的二進(jìn)制位表示,通常需要一個(gè)字節(jié)。點(diǎn)陣式LED顯示器的顯示控制采用掃描方式,在數(shù)據(jù)存儲器中開辟若干個(gè)存儲單元作為顯示緩沖區(qū),緩沖區(qū)中存有所需顯示圖形的控制信息。顯示時(shí)依次通過列信號驅(qū)動器輸出一行所需所有列的信號,然后再驅(qū)動對應(yīng)的行信號,控制該行顯示。只要掃描速度適當(dāng),顯示的圖形就不會出現(xiàn)閃爍。圖3點(diǎn)陣式LED的外形和內(nèi)部連接圖3點(diǎn)陣式LED的外形和內(nèi)部連接2.274HC273在開發(fā)板上的連接2.2.17段〔或8段LED的連接開發(fā)板上設(shè)置了2個(gè)數(shù)碼管,由74HC273控制,如圖4所示。74HC273是同步串行轉(zhuǎn)并行的鎖存器,在此通過SPI總線和CPU連接,鎖存數(shù)據(jù)后驅(qū)動數(shù)碼管發(fā)光。圖4圖4開發(fā)板上7段LED的連接2.2.2點(diǎn)陣式LED的連接點(diǎn)陣式LED在開發(fā)板上的連接如圖5所示。點(diǎn)陣式LED驅(qū)動器邏輯中設(shè)置了8個(gè)字節(jié)的緩沖區(qū),每個(gè)字節(jié)按位對應(yīng)點(diǎn)陣式LED模塊上的一列8個(gè)點(diǎn)。驅(qū)動器中的掃描電路會將緩沖區(qū)的內(nèi)容不斷輸出到LED模塊,CPU可以讀寫此緩沖區(qū),從而可以更新現(xiàn)實(shí)內(nèi)容。圖5圖5開發(fā)板上點(diǎn)陣式LED的連接點(diǎn)陣LED寄存器組共8個(gè)字節(jié)寄存器,地址A4A3A2A1=從0000到0111,按地址遞增順序分別對應(yīng)點(diǎn)陣LED模塊從左到右的8個(gè)列。每個(gè)字節(jié)寄存器對應(yīng)一列,字節(jié)寄存器內(nèi)8個(gè)位對應(yīng)該列的8個(gè)LED,從Bit0到Bit7分別對應(yīng)從上到下的LED,如圖6所示。圖6點(diǎn)陣式LED寄存器組圖6點(diǎn)陣式LED寄存器組2.3LED編程本次實(shí)驗(yàn)中,利用LED驅(qū)動程序"s3c2410-led.o"提供的open、ioctl、write、release等函數(shù)控制LED顯示。可在相同目錄下找到其源程序"s3c2410-led.c"進(jìn)行分析。2.3.17段LED的段碼表由于開發(fā)板上兩個(gè)數(shù)碼管的連接是共陽極,分別顯示"十位"和"個(gè)位"數(shù)字,中間是一個(gè)點(diǎn)號,總是讓它置"1"。所以當(dāng)想要其中之一顯示為"0"時(shí),那么其對應(yīng)的段碼應(yīng)為"11000000",轉(zhuǎn)化為十六進(jìn)制即為0xc0。同理可以給出"1"~"9"的段碼,從而形成如下段碼表:unsignedcharLEDCODE[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};注意:前10個(gè)表示字符"0"~"9"的段碼,最后一個(gè)表示各段全滅,不顯示。用戶程序使用ioctl函數(shù)用來控制2個(gè)數(shù)碼管的顯示:ioctl<fd,0x12,LEDWORD>;由于兩個(gè)8字?jǐn)?shù)碼管需要同時(shí)顯示,故需要將"十位"的段碼左移8位,拼接上"個(gè)位"的段碼,形成一個(gè)16位的LEDWORD。2.3.2點(diǎn)陣式LED的顯示緩沖區(qū)點(diǎn)陣式LED驅(qū)動器邏輯中設(shè)置了8個(gè)字節(jié)的緩沖區(qū),每個(gè)字節(jié)按位對應(yīng)點(diǎn)陣式LED模塊上的一列8個(gè)點(diǎn)。如要顯示字符或圖形,需要先給出對應(yīng)點(diǎn)陣數(shù)據(jù)存儲在緩沖區(qū)才能顯示。圖7所示的是字符"0"和心形圖的點(diǎn)陣,參照圖6分別給出各自8個(gè)字節(jié)中的數(shù)據(jù)為:"0":{0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00}
心形圖:{0x00,0x0c,0x12,0x22,0x44,0x22,0x12,0x0c}通過調(diào)用write函數(shù)控制點(diǎn)陣式LED顯示對應(yīng)字符或圖形。圖7圖7字符"0"和心形圖的點(diǎn)陣三.系統(tǒng)分析與設(shè)計(jì)3.1設(shè)計(jì)需求本次綜合實(shí)訓(xùn)任務(wù)主要是基于Linux的LED驅(qū)動程序設(shè)計(jì)及完成相關(guān)的操作。大致分為兩個(gè)階段,第一階段為環(huán)境搭建,第二部分是驅(qū)動程序設(shè)計(jì)。需要完成的任務(wù)是,由驅(qū)動程序驅(qū)動開發(fā)板的LED燈,并且經(jīng)測試,能夠正確的點(diǎn)亮或熄滅開發(fā)板上的LED燈,即為完成本次實(shí)訓(xùn)任務(wù)。3.2LED點(diǎn)陣顯示與C語言編程LED點(diǎn)陣顯示點(diǎn)陣的接法有共陰極和共陽極兩種〔共陽極指的是對每一行LED來講是共陽極的。顯示的方法有兩種:1、逐列掃描方式:亮的列從左向右掃描完8列〔相當(dāng)于位碼循環(huán)移位8次即顯示出一幀完整的圖像。..ucharcodeTAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3};uchari,t;delay<uchart>
{while<t-->{;}}voidmain<void>{while<1>
{P2=0x01;
for<i=0;i<8;i++>
{
P1=TAB[i];
delay<100>;
P2=P2<<1|P2>>7;
}
}
}..2、逐行掃描方式:與逐列掃描調(diào)換,掃描完8行顯示出一幀圖像。本設(shè)計(jì)中圖形顯示的C語言程序的分析3.2.2利用嵌入式實(shí)驗(yàn)平臺和LED的工作原理,在本設(shè)計(jì)中的C語言編程如下:1>調(diào)用系統(tǒng)庫函數(shù)#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<unistd.h>#include<sys/ioctl.h>#include<sys/mman.h>#include<linux/delay.h>#defineTUBE_IOCTROL0x11#defineDOT_IOCTROL0x122子函數(shù)的設(shè)計(jì)voidjmdelay<intn>{inti,j,k;for<i=0;i<n;i++>for<j=0;j<100;j++>for<k=0;k<100;k++>;}3主函數(shù)的設(shè)計(jì)intmain<>{intfd;inti;unsignedintLEDWORD;unsignedcharLEDCODE[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};unsignedcharman_data[9][8]={{0x4c,0x92,0x92,0x7c,0x0c,0x12,0x12,0x0c},{0,0,0,0,0,0,0x0b,0xd3},{0,0,0,0,0x0b,0xd3,0x3c,0x48},{0,0,0x0b,0xd3,0x3c,0x4b,0x20,0},{0,0,0x03,0x13,0xfc,0x08,0,0},{0,0,0,0x0b,0xd3,0x3c,0x48,0},{0,0x0b,0xd3,0x3c,0x48,0x20,0,0},{0,0x08,0x93,0x4b,0x3c,0x24,0x48,0x20},{0x48,0x20,0,0,0,0,0,0}};fd=open<"/dev/led/0raw",O_RDWR>;if<fd<0>{printf<"####Leddeviceopenfail####\n">;return<-1>;}LEDWORD=0xff00;printf<"willenterTUBELED,pleasewaiting\n">;LEDWORD=0xff00;ioctl<fd,0x12,LEDWORD>;sleep<1>;for<i=10;i>=0;i-->{LEDWORD=<LEDCODE[i]<<8>|LEDCODE[i];ioctl<fd,0x12,LEDWORD>;jmdelay<1500>;}printf<"willenterDIGLED,pleasewaiting\n">;sleep<1>;for<i=0;i<9;i++>{ write<fd,man_data[i],8>; jmdelay<1000>;}close<fd>;return0;}3.3Makefile文件的編寫在Makefile中可以使用函數(shù)來處理變量,從而讓我們的命令或是規(guī)則更為的靈活和具有智能。make所支持的函數(shù)也不算很多,不過已經(jīng)足夠我們的操作了。函數(shù)調(diào)用后,函數(shù)的返回值可以當(dāng)做變量來使用。makefile帶來的好處就是——"自動化編譯",一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動編譯,極大的提高了軟件開發(fā)的效率。make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具,一般來說,大多數(shù)的IDE都有這個(gè)命令,比如:Delphi的make,Visual
C++的nmake,Linux下GNU的make??梢?makefile都成為了一種在工程方面的編譯方法。Makefile文件的一般格式objects=main.okbd.ocommand.odisplay.o\
insert.osearch.ofiles.outils.o
edit:$<objects>
cc-oedit$<objects>
main.o:main.cdefs.h
cc-cmain.c
kbd.o:kbd.cdefs.hcommand.h
cc-ckbd.c
command.o:command.cdefs.hcommand.h
cc-ccommand.c
display.o:display.cdefs.hbuffer.h
cc-cdisplay.c
insert.o:insert.cdefs.hbuffer.h
cc-cinsert.c
search.o:search.cdefs.hbuffer.h
cc-csearch.c
files.o:files.cdefs.hbuffer.hcommand.h
cc-cfiles.c
utils.o:utils.cdefs.h
cc-cutils.c
clean:
rmedit$<objects>Makefile文件編寫的規(guī)則:1如果這個(gè)工程沒有編譯過,那么我們的所有C文件都要編譯并被鏈接。
2如果這個(gè)工程的某幾個(gè)C文件被修改,那么我們只編譯被修改的C文件,并鏈接目標(biāo)程序。
3如果這個(gè)工程的頭文件被改變了,那么我們需要編譯引用了這幾個(gè)頭文件的C文件,并鏈接目標(biāo)程序。
利用Makefile文件的編寫方法,編寫本設(shè)計(jì)中的Makefile文件:KERNELDIR=/arm2410cl/kernel/linux--2410cl/INCLUDEDIR=$<KERNELDIR>/includeCROSS_COMPILE=armv4l-unknown-linux-CC=$<CROSS_COMPILE>gccCFLAGS+=-I..CFLAGS+=-Wall-O-D__KERNEL__-DMODULE-I$<INCLUDEDIR>TARGET=s3c2410-led.oled01all:$<TARGET>s3c2410-led.o:s3c2410-led.c $<CC>-c$<CFLAGS>$^-o$@led01:led01.o$<CC>$^-o$@clean:rm-f$<TARGET>*.o*~core.depend注意:"$<CC>$^-o$@"和"rm-f$<TARGET>*.o*~core.depend"前面的空白有一個(gè)Tab制表符生成,不能單純有空格代替。3.4實(shí)驗(yàn)環(huán)境的連接1>.配置實(shí)驗(yàn)的環(huán)境。一、配置NFS服務(wù)NFS〔NetworkFileSystem指網(wǎng)絡(luò)文件系統(tǒng),是Linux系統(tǒng)中經(jīng)常使用的一種服務(wù),NFS是一個(gè)RPCservice,很像windows中的文件共享服務(wù)。它的設(shè)計(jì)是為了在不同的系統(tǒng)間使用,所以它的通訊協(xié)議設(shè)計(jì)與主機(jī)及作業(yè)系統(tǒng)無關(guān)。當(dāng)使用者想用遠(yuǎn)端檔案時(shí)只要用"mount"就可把remote檔案系統(tǒng)掛接在自己的檔案系統(tǒng)之下,使得遠(yuǎn)端的檔案在使用上和local的檔案沒兩樣。在NFS服務(wù)中,宿主機(jī)〔Servers是被掛載〔mount端,為了遠(yuǎn)端客戶機(jī)〔Clients〔如:S3C6410目標(biāo)板可以訪問宿主PC機(jī)的文件,我們需要配置宿主機(jī)兩方面內(nèi)容:①打開NFS服務(wù),②允許"指定用戶"訪問宿主PC機(jī)。A、在終端中輸入命令安裝NFS服務(wù):apt-getinstallnfs-kernel-serverB、輸入以下命令以配置NFS服務(wù):sudogedit/etc/exports打開文件后,在文件中添加如下內(nèi)容:/temp/tftpboot/nfsroot*<insecure,rw,sync,no_root_squash>添加完畢,保存文件并退出,繼續(xù)輸入如下命令,為NFS服務(wù)端所在目錄授予權(quán)限:chmod777/temp/tftpboot/nfsrootC、重新啟動NFS服務(wù)sudo/etc/init.d/nfs-kernel-serverrestartsudo/etc/init.d/portmaprestartD、測試NFS服務(wù):showmount–emount17:/temp/tftpboot/nfsroot/mntls-l/mnt二、配置超級終端A、在Windwos操作系統(tǒng)下,打開超級終端,新建一個(gè)連接,步驟如下:首先為新建連接輸入一個(gè)名稱,然后選擇我們所需要連接到的端口,最后配置端口屬性,這里只需要修改兩處:①位/秒<B>:115200,②數(shù)據(jù)流控制<F>:無。B、連接到開發(fā)板C、配置開發(fā)板僅僅連接到開發(fā)板還不夠,要使用開發(fā)板進(jìn)行開發(fā)測試工作,需要進(jìn)行一定的配置后,才能正常工作,接下來準(zhǔn)備在超級終端下對開發(fā)板進(jìn)行配置按如下步驟在超級終端下分別輸入如下命令:Ⅰ、setenvbootargsnoinitrdinit=/linuxrcconsole=ttySAC2,115200mem=256Mroot=/dev/nfsnfsroot=17:/temp/tftpboot/nfsrootip=5:17::::eth0:offⅡ、Ⅲ、Ⅴ、save執(zhí)行完以上命令后,開發(fā)板就配置完成了,可以使用"print"命令來查看開發(fā)板參數(shù)。2>.根據(jù)要求編寫C語言程序和
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年集體土地租賃修建公園協(xié)議
- 2024年陜西省規(guī)范化離婚合同范本一
- 2025年度大巴車租賃合同(含車輛改裝服務(wù))2篇
- 2025年度智能家電產(chǎn)品全國銷售總代理協(xié)議3篇
- 2024年門店合規(guī)與法律風(fēng)險(xiǎn)管理合同
- 重癥監(jiān)護(hù)及ICU護(hù)理質(zhì)量控制
- 2024瓷磚直銷協(xié)議范本版B版
- 2024年版美食廣場聯(lián)營合同
- 2024年精裝修浴室工程承包合同版B版
- 2024短期財(cái)務(wù)周轉(zhuǎn)貸款協(xié)議范本一
- 4R危機(jī)管理理論
- FANUC機(jī)器人培訓(xùn)教程(完成版)
- 中醫(yī)診療技術(shù)操作規(guī)程
- 樂理知識考試題庫130題(含答案)
- 2024年《多媒體技術(shù)與應(yīng)用》 考試題庫及答案
- (完整)北京版小學(xué)英語1至6年級詞匯(帶音標(biāo))
- 終止合同告知函 委婉
- 0-3歲嬰幼兒基礎(chǔ)護(hù)理智慧樹知到期末考試答案章節(jié)答案2024年杭州師范大學(xué)
- 面包烘焙原料供應(yīng)采購合同案例
- 工商企業(yè)管理畢業(yè)論文范文(篇一)
- 基于mRNA-LNP技術(shù)的(細(xì)胞)免疫治療產(chǎn)品開發(fā)指南
評論
0/150
提交評論