基于LINUX系統(tǒng)的嵌入式LED顯示的設(shè)計_第1頁
基于LINUX系統(tǒng)的嵌入式LED顯示的設(shè)計_第2頁
基于LINUX系統(tǒng)的嵌入式LED顯示的設(shè)計_第3頁
基于LINUX系統(tǒng)的嵌入式LED顯示的設(shè)計_第4頁
基于LINUX系統(tǒng)的嵌入式LED顯示的設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)是先進(jìn)的計算機技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)以及各種具體應(yīng)用相結(jié)合的產(chǎn)物,是技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的新型集成知識系統(tǒng)。本次課程設(shè)計的目的是在有C語言基礎(chǔ),掌握在Linux下常用編輯器的使用Makefile 的編寫和使用以及Linux下的程序編譯與交叉編譯過程需要部分?jǐn)?shù)字電路的知識的基礎(chǔ)上。學(xué)習(xí)LED的相關(guān)知識, 掌握74HC273芯片的工作原理以及了解SPI接口的相關(guān)知識。主要內(nèi)容是學(xué)習(xí)LED相關(guān)知識,了解74HC273芯片對LED點亮的工作機制,熟練閱讀74HC273芯片資料,掌握對它的使用。 關(guān)鍵詞:嵌入式系統(tǒng)、LED、點陣目錄一、引言1二、嵌入式系統(tǒng)的特點21、概念

2、22、8段LED原理33、點陣式LED原理34、LED數(shù)碼管電路圖45、74HC273在開發(fā)板上的連接5四、實驗部分61、實驗設(shè)備及工具62、實驗基礎(chǔ)63、實驗環(huán)境連接7五、 實驗步驟121、閱讀理解源碼122、編譯應(yīng)用程序123、下載調(diào)試13六、心得體會15七、參考文獻(xiàn)16附錄:17一、引言目前,嵌入式技術(shù)已成為通信和消費類產(chǎn)品的共同發(fā)展方向。嵌入式系統(tǒng)幾乎包括了生活中的所有電器設(shè)備,如掌上、移動計算設(shè)備、電視機頂盒、手機上網(wǎng)、數(shù)字電視、多媒體、汽車、微波爐、數(shù)字相機、家庭自動化系統(tǒng)、電梯、空調(diào)、安全系統(tǒng)、自動售貨機、蜂窩式電話、消費電子設(shè)備、工業(yè)自動化儀表與醫(yī)療儀器等。嵌入式系統(tǒng)是先進(jìn)的計

3、算機技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)和各個行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物,這就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。嵌入式系統(tǒng)一般指非系統(tǒng)。它是以應(yīng)用為中心、軟硬件可裁減的、能適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性要求的專用計算機系統(tǒng)。簡單地說,嵌入式系統(tǒng)是集系統(tǒng)的應(yīng)用軟件與硬件于一體,類似于中的工作方式,具有軟件代碼小、高度自動化、響應(yīng)速度快等特點,因此特別適合于要求實時和多任務(wù)的系統(tǒng)。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成。二、嵌入式系統(tǒng)的特點嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可剪裁,適應(yīng)引用系

4、統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的計算機系統(tǒng)。)嵌入式系統(tǒng)通常是面向特定應(yīng)用的,嵌入式與通用型的最大不同就是,嵌入式大多工作在為特定用戶群設(shè)計的系統(tǒng)中,它通常都具有低功耗、小體積、高集成度等特點,能夠把通用中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計趨于小型化,因此,器件的移動能力大大增強,同時跟網(wǎng)絡(luò)的耦合也越來越緊密。)嵌入式系統(tǒng)的硬件和軟件都必須高效地設(shè)計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭力。)因為嵌入式系統(tǒng)和具體應(yīng)用有機地結(jié)合在一起,它的升級換代也和具體產(chǎn)品同步進(jìn)行,所以,嵌入式系統(tǒng)產(chǎn)品一旦

5、進(jìn)入市場,一般都具有較長的生命周期。)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機之中,而不是存貯于磁盤等載體中。嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使在設(shè)計完成后,用戶也不能對其中的程序進(jìn)行修改,而是必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。三、LED基本原理1、概念在某些半導(dǎo)體材料的 PN 結(jié)中,注入的少數(shù)載流子與多數(shù)載流子復(fù)合時會 把多余的能量以光的形式釋放出來,從而把電能直接轉(zhuǎn)換為光能。PN 結(jié)加反 向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利用注入式電致發(fā)光原理制 作的二極管叫發(fā)光二極管,通稱 LED。LED 的發(fā)光顏色和發(fā)光效率與制作 LED 的材料和

6、工藝有關(guān),目前廣泛使用 的有紅、綠、藍(lán)三種。由于 LED 工作電壓低(僅 1.5-3V),能主動發(fā)光且有 一定亮度,亮度又能用電壓(或電流)調(diào)節(jié),本身又耐沖擊、抗振動、壽命 長(10 萬小時),所以在大型的顯示設(shè)備中,目前尚無其他的顯示方式與 LED 顯示方式匹敵。 把紅色和綠色的 LED 放在一起作為一個像素制作的顯示屏叫雙基色屏或 偽彩色屏;把紅、綠、藍(lán)三種 LED 管放在一起作為一個像素的顯示屏叫三基 色屏或全彩屏。制作室內(nèi) LED 屏的像素尺寸一般是 2-10 毫米,常常采用把幾 種能產(chǎn)生不同基色的 LED 管芯封裝成一體,室外 LED 屏的像素尺寸多為 12-26 毫米,每個像素由若

7、干個各種單色 LED 組成,常見的成品稱像素筒或像素模 塊。 LED顯示屏如果想要顯示圖象,則需要構(gòu)成像素的每個 LED 的發(fā)光亮度都 必須能調(diào)節(jié),其調(diào)節(jié)的精細(xì)程度就是顯示屏的灰度等級。灰度等級越高,顯 示的圖像就越細(xì)膩,色彩也越豐富,相應(yīng)的顯示控制系統(tǒng)也越復(fù)雜。在當(dāng)前 的技術(shù)水平下,256 級灰度的圖像,顏色過渡已十分柔和,圖像還原效果比 較令人滿意。 資料顯示,LED 光源比白熾燈節(jié)電 87%、比熒光燈節(jié)電 50%,而壽命比白 熾燈長 2030 倍、比熒光燈長 10 倍。LED 光源因具有節(jié)能、環(huán)保、長壽命、安 全、響應(yīng)快、體積小、色彩豐富、可控等系列獨特優(yōu)點,被認(rèn)為是節(jié)電降能 耗的最佳實

8、現(xiàn)途徑。2、8段LED原理LED的7個字段分別稱為a、b、c、d、e、f、g,有時還有一個小數(shù)點段h,圖1(a)所示。通過7個(或8個)發(fā)光段的不同組合,顯示09和AF共16個字母數(shù)字,從而實現(xiàn)十六進(jìn)制的顯示。為使7段顯示器顯示數(shù)字或字符,就需點亮相應(yīng)的段,每個段分別由數(shù)據(jù)線進(jìn)行控制,通常數(shù)據(jù)線D0D7順序控制ah段,如圖11-34(b)所示,所需的控制信號稱為段碼。由于數(shù)字與段碼之間沒有規(guī)律性,因此必須進(jìn)行數(shù)字與段碼之間的轉(zhuǎn)換以便顯示數(shù)字。常用的轉(zhuǎn)換方法是將要顯示字形的段碼列成一個表,稱為段碼表。顯示時,根據(jù)字符查段碼表,取出其對應(yīng)的段碼送到數(shù)據(jù)線上來控制顯示。3、點陣式LED原理點陣式LE

9、D的顯示單元一般由8行8列LED組成,其外形及內(nèi)部連接如圖3所示,可以再由這8行8列的LED拼成更大的LED陣列。點陣式LED顯示器能顯示各種字符、漢字及圖形、圖像,并具有色彩。點陣式LED中,每個LED表示一個像素,通過每個LED的亮與滅來構(gòu)造出所需的圖形,各種字符及漢字也是通過圖形方式來顯示的。對于單色點陣式LED,每個像素需要1位二進(jìn)制數(shù)表示,1表示亮,0表示滅。對于彩色點陣式LED,則每個像素需要更多的二進(jìn)制位表示,通常需要一個字節(jié)。點陣式LED顯示器的顯示控制采用掃描方式,在數(shù)據(jù)存儲器中開辟若干個存儲單元作為顯示緩沖區(qū),緩沖區(qū)中存有所需顯示圖形的控制信息。顯示時依次通過列信號驅(qū)動器輸

10、出一行所需所有列的信號,然后再驅(qū)動對應(yīng)的行信號,控制該行顯示。只要掃描速度適當(dāng),顯示的圖形就不會出現(xiàn)閃爍4、LED數(shù)碼管電路圖其中各個引腳的功能在下面都有描述。圖1.LED數(shù)碼管電路圖5、74HC273在開發(fā)板上的連接74HC273 在 8 字?jǐn)?shù)碼管中開發(fā)板中的連接如下圖所示: 圖2. 開發(fā)板上的7段LED的連接 開發(fā)板設(shè)置2 個數(shù)碼管,由74HC273 控制。74HC273是同步串行轉(zhuǎn)并行的鎖存器,在此通過SPI 總線和CPU 連接,鎖存數(shù)據(jù)后驅(qū)動數(shù)碼管發(fā)光。 圖3. 開發(fā)板上點陣式LED的連接四、實驗部分1、實驗設(shè)備及工具硬件:UP-TECH S2410/P270 DVP 嵌入式實驗平臺、

11、PC 機 Pentium 500 以上, 硬盤 10G 以上。軟件:PC 機操作系統(tǒng) REDHAT LINUX 9.0MINICOMARM-LINUX 開發(fā)環(huán)境 2、實驗基礎(chǔ)目的是為后續(xù)實驗搭建好軟、硬件環(huán)境,配置好相關(guān)的協(xié)議、服務(wù),并通過編寫最簡單的HelloWorld程序進(jìn)行測試。由于實驗都要依靠前面的配置,本段只著重敘述實驗的具體實現(xiàn)。3、實驗環(huán)境連接(1)、建立工作目錄 rootzxt smile# mkdir hello rootzxt smile# cd hello(2)、編寫程序源代碼用下面的命令來編寫 hello.c 的源代碼,進(jìn)入 hello 目錄使用 vi 命令來編輯代碼:

12、按“i ” 或者“a ” 進(jìn)入編輯模式,將上面的代碼錄入進(jìn)去,完成后按 Esc 鍵進(jìn)入命令狀態(tài),再用命令“:wq” 保存并退出。這樣我們便在當(dāng)前目錄下建立了一個名為 hello.c 的文件。進(jìn)入/arm2410cl/exp/basic/10_led 目錄,使用 vi 編輯器或其他編輯器閱讀理解源代碼 (3)、編譯應(yīng)用程序運行 make 產(chǎn)生 test_led 可執(zhí)行文件 test_led(4)、編寫Makefile(5)、編譯應(yīng)用程序在 hello 目錄下運行“make” 來編譯我們的程序了。如果進(jìn)行了修改,重新編譯則運行:rootzxt hello# make cleanrootzxt he

13、llo# make(6)、下載調(diào)試在宿主 PC 計算機上啟動 NFS 服務(wù),并設(shè)置好共享的目錄,在建立好 NFS 共享目錄以后,我們就可以進(jìn)入 MINICOM 中建立開發(fā)板與宿主 PC 機之間的通訊了。其步驟如下:服務(wù)器設(shè)置,輸入命令”setup”分別進(jìn)行對系統(tǒng)服務(wù)及防火墻配置。圖1 服務(wù)器配置 為宿主PC機配置了NFS服務(wù)NFS(Network File System)指網(wǎng)絡(luò)文件系統(tǒng),它實現(xiàn)了文件在不同的系統(tǒng)間使用。當(dāng)我們想用遠(yuǎn)端檔案時,只需調(diào)用“mount”就可以遠(yuǎn)端系統(tǒng)掛接在自己的檔案系統(tǒng)之下。每次重啟宿主PC機時,先輸入命令”service portmap restart”和”serv

14、ice nfs restart”,以啟動nfs服務(wù)。啟動vi編輯器查看網(wǎng)段輸入命令”Vi /etc/exports”查看網(wǎng)段為”192.168.0.*”,按鍵”ESC”,輸入”: wp”存盤退出。重新啟動NFS服務(wù),輸入”完成主機IP地址設(shè)置。圖2NFS服務(wù)器配置進(jìn)入共享文件”cd /root/share/exp/basic/10_led”,輸入”ls”查看10_led下的兩個.c文件。輸入”make clean”,”make”生成兩個.0文件。轉(zhuǎn)入超級終端<1>硬件連接:連接宿主機和UP-TECH S2410/P270 DVP 嵌入式實驗平臺。<2>打開宿主PC 機電

15、源,進(jìn)入 Linux操作系統(tǒng)。(7)、啟動實驗平臺硬件連接: 連接電源,將12V電源線的連到UP-NETARM2410-CL的電源接口;連接串口線,一端連接PC的串口,另一端連接到UP-NETARM2410-CL的串口(RS232-0);連接網(wǎng)線,將隨機附帶的交叉網(wǎng)線把UP-NETARM2410-CL靠近于電源接口的網(wǎng)口和PC機的網(wǎng)口連接好。建立超級終端:運行Windows系統(tǒng)下(以WindowsXP為例)開始所有程序附件通訊超級終端(HyperTerminal)。新建一個通信終端。如果要求輸入?yún)^(qū)號、電話號碼等信息請隨意輸入,出現(xiàn)如圖所示對話框時,為所建超級終端取名為arm,可以為其選一個圖標(biāo)

16、。單擊“確定”按鈕圖3 新建超級終端在接下來的對話框中選擇ARM開發(fā)平臺實際連接的PC機串口(如COM1),按確定后出現(xiàn)如圖所示的屬性對話框,設(shè)置通信的格式和協(xié)議。這里波特率為115200,數(shù)據(jù)位8,無奇偶校驗,停止位1,無數(shù)據(jù)流控制。按確定完成設(shè)置。完成新建超級終端的設(shè)置以后,可以選擇超級終端文件菜單中的另存為,把設(shè)置好的超級終端保存在桌面上,以備后用。用串口線將PC機串口和平臺UART0正確連接后,就可以在超級終端上看到程序輸出的信息了。圖4 超級終端端口設(shè)置啟動實驗平臺 ::打開電源開關(guān),系統(tǒng)會由VIVI開始引導(dǎo)。正常啟動時會顯示啟動信息到“Press Return to start t

17、he LINUX now, any other key for vivi”,按除回車鍵外的其它鍵則進(jìn)入vivi控制臺。圖5 啟動超級終端平臺圖6 超級終端命令輸入輸入”22”和”查看是否連通,若成功連接,”Ctrl+C”結(jié)束,在進(jìn)行掛載后,查找根目錄下的文件”cd /host/exp/basic/10_led”,通過“l(fā)s”查看文件,然后使用“insmod s3c2410-led.o ”命令完成將一個可動態(tài)加載的模塊加載到內(nèi)核中。輸入” lsmod” 顯示當(dāng)前內(nèi)核加載的模塊,輸入命令”./test_led”進(jìn)行程序測試。圖7 下位機運行五、實驗步驟1、閱讀理解源碼進(jìn)入/arm2410cl/ex

18、p/basic/10_led 目錄,使用 vi 編輯器或其他編輯器閱讀理解源代碼 2、編譯應(yīng)用程序運行 make 產(chǎn)生 test_led 可執(zhí)行文件 test_ledrootBC exp/basic# cd 10_led rootBC 10_led# make armv4l-unknown-linux-gcc -c -I. -Wall -O -D_KERNEL_ -DMODULE armv4l-unknown-linux-gcc -I. -Wall -O -D_KERNEL_ -DMODULE rootBC 2410-Classics LED# ls Makefile readme s3c24

19、10-led.c s3c2410-led.o test_led test_led.c 3、下載調(diào)試切換到 minicom 終端窗口,使用 NFS mount 開發(fā)主機的/arm2410cl 到/host 目錄,然后進(jìn)入/host/exp/basic/10_led 目錄,用 insmod s3c2410-led.o 命令插入 led 驅(qū)動,并用 lsmod命令查看是否已經(jīng)插入。/mnt/yaffsmount -t nfs -o nolock 192.168.0.189:/arm2410cl /host /host/exp/basiccd 10_led/ /host/exp/10_ledls Ma

20、kefile readme s3c2410-led.c s3c2410-led.o test_led test_led.c test_led.o /host/exp/10_ledinsmod s3c2410-led.o Using s3c2410-led.o 0-numeric tube : Dprintk device open s3c2410-hc273 initializedUsing exio.o /host/exp/10_ledlsmod Module Size Used by Tainted: P s3c2410-led 2048 0 (unused) /host/exp/10_l

21、ed./test_led 即可以看到8字?jǐn)?shù)碼管和點陣數(shù)碼管工作。6、 結(jié)果分析七、心得體會通過做這次ARM嵌入式課程設(shè)計我深深的體會到,專心投入去完成一件事情是多么讓人激動不已的,當(dāng)某個環(huán)節(jié)的問題被你解決后,那種成就感能帶給自己更大的信心和激發(fā)你對學(xué)習(xí)的熱情,可能這是大學(xué)最后一個課程設(shè)計的原因,我把大量的精力和激情都投入到這次課程設(shè)計中,所以在整個學(xué)習(xí)過程中,我解決了一些平時沒有碰到的問題,這更讓我對技術(shù)這個行業(yè)產(chǎn)生強烈的興趣,下面是我這兩周的課程設(shè)計心得。這次課程設(shè)計我們做的是在ARM嵌入式平臺上通過LED顯示不同的符號,這是一個具有挑戰(zhàn)性的功課,我們組分完每個人的任務(wù)后,接下來查資料,設(shè)計

22、,分析,和同學(xué)討論,在電腦上用軟件仿真,這幾天,緊張而又充實。這次課程設(shè)計是對我所學(xué)知識的全面檢驗。我們在課堂上掌握的僅僅是專業(yè)基礎(chǔ)課的理論面,如何去面對實際的設(shè)計是一個值得我們思考的問題,又如何把我們學(xué)的書本內(nèi)容運用到實際中呢?我想做本次課程設(shè)計就給我們提供了良好的實踐平臺。在本次課程設(shè)計中我感觸很深的就是要查閱很多指導(dǎo)書籍。在此次設(shè)計中,我學(xué)會了自上而下的系統(tǒng)設(shè)計思想,掌握了綜合應(yīng)用所學(xué)理論的能力,而且對我的毅力是個考驗,我是連續(xù)將近兩周周做下來的。對我而言,知識上的收獲重要,精神上的豐收喜。挫折是一份財富,經(jīng)歷是一份擁有。此次課程設(shè)計將對我今后的進(jìn)步產(chǎn)生積極影響。最后由衷感謝老師的指導(dǎo),

23、同學(xué)的幫助。 八、參考文獻(xiàn)【1】趙宏,inux系統(tǒng)指南.成都:西南交通大學(xué)出版社,2008【2】張曉林,崔迎煒.嵌入式系統(tǒng)設(shè)計與實現(xiàn)。北京:北京航空航天大學(xué)出版社,2006【3】楊剛.嵌入式基礎(chǔ)實驗教程.北京:北京大學(xué)出版社,2007【4】陳文智.嵌入式系統(tǒng)開發(fā)原理與實踐 .北京:清華大學(xué)出版社,2005【5】杜春雷.ARM體系結(jié)構(gòu)與編程.清華大學(xué)出版社,2007【6】博創(chuàng)公司.2410經(jīng)典實驗指導(dǎo)書3.2.北京博創(chuàng)興業(yè)科技有限公司,2007【7】鄭慕德.嵌入式微型計算機系統(tǒng)實例教程.北京:科學(xué)出版社,2006【8】劉洪濤,孫天澤.嵌入式技術(shù)與設(shè)計.北京:人民郵電出版社,2009【9

24、】【10】【11】附錄:#include<linux/config.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#include<linux/miscdevice.h>#include<linux/sched.h>#include<linux/delay.h>#include<linux/poll.h>#include<linux/spinlock.h>#include<linux/

25、delay.h>#include<linux/ioport.h>#include<asm/io.h>#include<asm/hardware.h>#include<asm/sizes.h>#include<asm/uaccess.h>#include<asm/arch/S3C2410.h>#include<asm/arch/irqs.h>/* debug macros */#undef DEBUG#define DEBUG#ifdef DEBUG#define DPRINTK( x. )printk(&

26、quot;s3c2410-led: " x)#else#define DPRINTK( x. )#endif#define DEVICE_NAME "s3c2410 led"#define LED_TUBE_PHY_START 0x08000110#define LED_DIG_PHY_START 0x08000100#define LED_TUBE_IOCTRL 0x11#define LED_DIG_IOCTRL 0x12staticint ledMajor = 0;#define LED_MINOR 1#ifdef CONFIG_DEVFS_FSstatic

27、 devfs_handle_t devfs_led_dir,devfs_led;#endifstatic u32 s3c2410_led_tube_addr = IDE_BASE + 0x100;static u32 s3c2410_led_dig_vaddr = IDE_BASE + 0x110;staticint s3c2410_led_ioctl (struct inode *inode, struct file *filp, unsignedint cmd, unsignedint arg)/printk("DOT buffer is %xn" ,arg>&g

28、t;8 );switch(cmd)case LED_DIG_IOCTRL:return *(volatileunsignedlong *)s3c2410_led_dig_vaddr=(arg>>8) | arg << 16; ; default :return printk("your command is not exist"); return 0;static ssize_t s3c2410_led_write(struct file *filp, constchar *buf, size_t count, loff_t * f_pos)int

29、i;unsignedchar mdata16;if (copy_from_user(mdata,buf,10) return -EFAULT;for (i=0;i<8;i+)/printk(":%d ",mdatai);/*(volatile unsigned char *)(s3c2410_led_tube_addr+i)=0xff;*(volatileunsignedchar *)(s3c2410_led_tube_addr+i*2)=mdatai;/printk(":%x ",*(volatile unsigned short *)(s3c2

30、410_led_tube_addr+i);/printk("n");return 0;staticint s3c2410_led_open(struct inode *inode, struct file *filp) MOD_INC_USE_COUNT; printk("led device open sucess!n");return 0;staticint s3c2410_led_release(struct inode *inode, struct file *filp) MOD_DEC_USE_COUNT; printk("led d

31、evice releasen");return 0;staticstruct file_operations s3c2410_led_fops = owner:THIS_MODULE, open:s3c2410_led_open, ioctl:s3c2410_led_ioctl, write:s3c2410_led_write, release:s3c2410_led_release,;int _init s3c2410_led_init(void)int ret;BWSCON = (BWSCON & (BWSCON_ST1 | BWSCON_WS1 | BWSCON_DW1

32、) | (BWSCON_ST1 | BWSCON_DW(1, BWSCON_DW_16);BANKCON1= BANKCON_Tacs4 | BANKCON_Tcos4 | BANKCON_Tacc14 |BANKCON_Toch4 | BANKCON_Tcah4 | BANKCON_Tacp6 | BANKCON_PMC1;GPACON|=(1<<12); ret = register_chrdev(0, DEVICE_NAME, &s3c2410_led_fops);if (ret < 0) DPRINTK(DEVICE_NAME " can't

33、 get major numbern");return ret; #ifdef CONFIG_DEVFS_FS devfs_led_dir = devfs_mk_dir(NULL, "led", NULL); devfs_led = devfs_register(devfs_led_dir, "0raw", DEVFS_FL_DEFAULT, ledMajor,LED_MINOR, S_IFCHR | S_IRUSR | S_IWUSR, &s3c2410_led_fops, NULL);#endif DPRINTK (DEVICE_N

34、AME"tdevice initializedn");return 0; void _exit s3c2410_led_exit(void)#ifdef CONFIG_DEVFS_FSdevfs_unregister(devfs_led);devfs_unregister(devfs_led_dir);#endifunregister_chrdev(ledMajor, DEVICE_NAME);module_init(s3c2410_led_init);module_exit(s3c2410_led_exit);#include<stdio.h>#include

35、<stdlib.h>#include<fcntl.h>#include<unistd.h>#include<sys/ioctl.h>#include<sys/mman.h>/#include <linux/delay.h>#define TUBE_IOCTROL 0x11#define DOT_IOCTROL 0x12void jmdelay(int n) int i,j,k;for (i=0;i<n;i+)for (j=0;j<100;j+)for (k=0;k<100;k+);int main() int fd;int i,j,k;unsignedint LEDWORD;unsignedint MLEDA8;unsignedchar LEDCODE10=0xc0

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論