基于Linux的廣告機系統(tǒng)_第1頁
基于Linux的廣告機系統(tǒng)_第2頁
基于Linux的廣告機系統(tǒng)_第3頁
基于Linux的廣告機系統(tǒng)_第4頁
基于Linux的廣告機系統(tǒng)_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

告機,但它已成為一大亮點,在媒體市場中,廣告機的單機版和單一媒體發(fā)布的形式,可滿足日益增長的市場需求它沒有。研究多種媒體形式,多功能的交互式網(wǎng)絡廣告機。Abstract(一)本設計的目的、意義及應達到的技術要求 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 1.8文件系統(tǒng)掛載 2.模塊編程 2.1驅動的編程方式 2.2模塊編譯 2.3加載/卸載模塊 3.1linux設備驅動基本概念 3.5字符設備驅動編寫流程 3.6雜項字符設備 3.7雜項字符設備相關函數(shù) 3.8簡單雜項字符設備編寫流程 3.9按鍵驅動編程 4.LCD應用層編程 4.1LCD驅動 4.2LCD屏的組成 6.分析問題 廣告機,通常被稱為國外數(shù)字標牌,作為媒體推廣新的,但動態(tài)的方式,它走的是人的眼睛快速的步伐?,F(xiàn)在不難發(fā)現(xiàn),銀行,寫字樓,地鐵,街道和公共交通工具在我們身邊,越來越多的地方都出現(xiàn)了類似的電視,不停地滾動和播放不同的內(nèi)容信息的產(chǎn)品,這種新的媒體技術通過特定的平該廣播的經(jīng)濟,商業(yè)和娛樂信息到特定的一群人顯示設備是廣告機的典型組成部分。本文提出了一種基于Linux的廣告機系統(tǒng),其特點是事實,沒有必要連接其他的事情,需要進行更新,以改變視頻,圖片,字幕的內(nèi)容等等。隨著電子技術,多媒體技術和網(wǎng)絡技術的飛速發(fā)展,引擎廣告作為一種產(chǎn)品,似乎是“第五大媒體”的傳統(tǒng)報刊,廣播,電視和互聯(lián)網(wǎng)之后。我仍然在研究和有關廣告機新開始思考的早期階段。由于它是基于市場上的新產(chǎn)品,廣告機逐漸被人們所認可,用戶不時,所以我們有理由相信,在不久的將來,會有廣告是更加人性化和整個生命所接受更多的機會。1、可播放豐富的電子資源,包括視頻、圖片、文本。2、實現(xiàn)圖片切換3、實現(xiàn)圖片切換為視頻4、實現(xiàn)視頻與音頻的同步。[文獻21]在全球網(wǎng)絡的時代,網(wǎng)絡廣告代表廣告發(fā)展的新趨勢。普及和互聯(lián)網(wǎng)的發(fā)展提供了企業(yè)一個全新的廣告?zhèn)鞑サ墓ぞ?。在線廣告將成為國內(nèi)外廣告業(yè)同行競爭的領域。研究現(xiàn)狀和在線廣告在中國的發(fā)展趨勢,將提供前瞻性的網(wǎng)絡廣告在中國的發(fā)展理論預測和指導。本文分析了來自中國的網(wǎng)絡和在線廣告的基礎知識,中國的網(wǎng)絡廣告發(fā)展的現(xiàn)狀和存在的問題,并預測中國網(wǎng)絡廣告的發(fā)展趨勢:隨著中國企業(yè)和網(wǎng)民接受網(wǎng)絡廣告的增加,將會有一個在線廣告前所未有的發(fā)展機遇;廣告一個合法的軌道運行;該評價方法更加科學;互聯(lián)網(wǎng)已成為“第四大媒體”的傳統(tǒng)報紙,廣播,電視媒體之后。網(wǎng)絡廣告的四大媒體中所占的份額將逐步增加,并有望成為第一種類型的廣告...。文獻[22]介紹了在基于μCOS-Ⅱ嵌入式操作系統(tǒng)上設計數(shù)字音頻播放器的方法,實現(xiàn)在該播放器上對歌曲音頻文件的存儲、播放、選擇、暫停、倒退等功能。從中了解到嵌入式Linux系統(tǒng)開發(fā)過程中,從底層系統(tǒng)支持到上層GUI應用的方方面面,內(nèi)容涵蓋Linx操作系統(tǒng)的安裝及相關工具的使用、配置,嵌入式編程所需要的基礎知識,硬件部件的使用及編程,U-Boot、Iiux內(nèi)核的分析、配置和移植,根文件系統(tǒng)的構造,內(nèi)核調試技術,驅動程序編寫及移植,GUI系統(tǒng)的移植,應用程序調試技術。文章的系統(tǒng)論述對設計思想產(chǎn)生很大影響。1、Linux編譯環(huán)境的搭建,如何配置標準的編譯器;3、模塊的編譯,了解如何往內(nèi)核中加載模塊;4、LED屏的顯示,如何讓LED屏顯示相應的圖片或者視頻;5、實現(xiàn)視頻與音頻的同步。二、本設計如圖1所示,整個系統(tǒng)被粗略地劃分為三個部分:廣告機監(jiān)控終端,服務器控制中心,以及廣告機顯示終端。監(jiān)視終端通過Web瀏覽器控制頁面由管理員接收該控制命令輸入,并提交表單通過網(wǎng)絡路由服務器控制中心。服務器控制中心根據(jù)提交的監(jiān)控終端,以啟動相應的插座服務過程中,建立與所述顯影板插座監(jiān)控服務進程的網(wǎng)絡通信,以及同時發(fā)送相應的控制命令和信息的不同形式類別調用相應的CGI程序。廣告機的顯示終端解析相應的控制命令和信息來控制的顯示終端設備上廣告機監(jiān)控終端和服務器控制中心的設備為普通PC機。廣告機顯示終端采用的是粵嵌嵌入式GEC6818開發(fā)板。該開發(fā)板的處理器是三星Cortex-A53系列高性能八核處理器S5P6818,最高主頻高達1.4GHz,可應用于嵌入式Linux和Andriod等操作系統(tǒng)的驅動、應用開發(fā)。開發(fā)板留有豐富的有著豐富的外圍設備和強大媒體能力的嵌入式平臺,可以靈活地選擇多種LCD或者其他顯示設備,作為廣告機信息發(fā)布節(jié)點的媒體播放設備。編譯程序的時候,就是把程序編譯成可以被機器識別的文件,實際上就是把代碼編譯成CPU可以識別的指令,不同的CPU,指令集就不同。因此需要安裝一個可以在linux中編譯,并且編譯后這種在兩個CPU之間進行轉換的編譯器稱之為交叉編譯器源碼包:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz把源碼包放到共享目錄下,并且復制到linux系統(tǒng)中的tools目錄,然后解壓輸入密碼123456,再重復輸入兩次123456這個密碼那么就修改超級用戶密碼為123456了關閉終端,從新打開arm-linux-gcc-v表示成功安裝uboot是屬于bootloader的其中一種,開源并且比較通用的一種在嵌入式中,bootloader又稱之為啟動加載器,是一個系統(tǒng)必須有的部分,主要負責初始化最基本的硬件(最重要的是啟動外擴內(nèi)存),然后把內(nèi)核復制到外擴內(nèi)存中,并且引導內(nèi)核啟動只要能完成初始化硬件,搬運內(nèi)核并且引導內(nèi)核啟動的,都可以稱之為bootloaderuboot中主要就是初始化內(nèi)存,然后通過內(nèi)存操作來搬運內(nèi)核,并且引導其啟動常用mmc命令族來實現(xiàn)這些功能除此之外還可以從網(wǎng)絡上下載需要的內(nèi)核,文件系統(tǒng)等進入超級用戶權限:sudopasswdroot(如果前面已經(jīng)執(zhí)行過了,可以不用再執(zhí)行)輸入密碼123456,再重復輸入兩次123456這個密碼那么就修改超級用戶密碼為123456了移植過程:把源碼包放到共享目錄下,并且復制到linux系統(tǒng)中的work目錄,然后解壓內(nèi)核是整個系統(tǒng)的功能的實現(xiàn)內(nèi)核源碼是大量的.c和.h文件組成最終會被編譯成一個大型的.bin文件,也就是一個可執(zhí)行程序在板子上搭建一個操作系統(tǒng),需要移植一個內(nèi)核如果需要輸入密碼,則輸入123456(前提是執(zhí)行過sudopasswdroot)cp/mnt/hgfs/share/linux-3.5.buildok.tar.gz/work/把內(nèi)核源碼復制到work下tarxflinux-3.5.buildok.tar.gz解壓內(nèi)核源碼包makecleanmakedistcleancptiny4412_linux_defconfig.configmakemenuconfig(保證窗口足夠大.這個命令需要窗口大小足夠才可以執(zhí)行成在內(nèi)核配置菜單中,選擇SystemType--->[]SupportTrustZone-enabledTrustedExecutionEnvironment使用上下左右鍵移動,回車鍵確定,空格鍵操作make-j16Environment選項文件系統(tǒng)用戶管理一個系統(tǒng)的磁盤,給應用程序提供運行環(huán)境等等文件系統(tǒng)都是通過源碼包制作的輸入密碼123456(前提是執(zhí)行過sudopasswdroot)cp/mnt/hgfs/share/busybox-1.17.2-20101120.tgz./tarxfbusybox-1.17.2-20101120.tgzcdbusybox-1.17.2makecleanmakedistcleanmakemenuconfig需要配置的都在選項BusyboxSettings中BusyboxSettings--->BuildOptions--->CrossCompilerprefix(NEW)這個選項要修改為*交叉編譯器arm-linux-InstallationOptions--->(./_install)BusyBoxinstallationprefix(NEW)修改為/work/r保存退出make&&makeinstallcd/work/root_nfs/mkdirlibdevetc/init.dhomeprocsysroottmpvar-p/tools/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/*./lib/-rfd/tools/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/*./l創(chuàng)建兩個設備節(jié)點文件cd/work/root_nfs/dev處理配置文件cd/work/root_nfs/etc/cp/etc/passwd/work/root_nfs/etccp/etc/group/work/root_nfs/etccp/etc/fstab/work/root_nfs/etcviminittab,在文檔中添加以下內(nèi)容::sysinit:/etc/init.d/rcS::sysinit:/etc/init.d/rcSconsole::askfirst:-/bin/sh::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount-a-rvimprofile,在文檔中添加以下內(nèi)容USERUSER="`id-un`"LOGNAME=$USERPS1="[\u@\h\w]#"PATH=$PATHHOSTNAME=`/bin/hostname`exportUSERLOGNAMEPS1PATH輸入以下內(nèi)容#!/#!/bin/shmount-amkdir/dev/ptsmount-tdevpts/dev/ptsecho/sbin/mdev>/proc/sys/kernel/hotplugmdev-s/bin/hostnamexyd一個系統(tǒng)組成:接下來只需要讓文件系統(tǒng)和內(nèi)核直接進行連接就是把文件系統(tǒng)掛載到內(nèi)核上文件系統(tǒng)的掛載比較常見的方式:一個是網(wǎng)絡掛載一個是本地掛載一般在研發(fā)過程中,linux的文件系統(tǒng),基本都是使用的網(wǎng)絡掛載,原因在于研發(fā)過程中需要經(jīng)常修改文件系統(tǒng)中的東西,或者修改內(nèi)核中的東西,網(wǎng)絡掛載的方式,讓這些修改變得很輕松如果是本地掛載,需要往文件系統(tǒng)中發(fā)送文件,相對會麻煩很多,本地掛載一般是在產(chǎn)品研發(fā)成功,可以出成品,不需要再去修改文件系統(tǒng)或者內(nèi)核的時候,把文件系統(tǒng)掛載到本地存儲芯片中網(wǎng)絡掛載文件系統(tǒng)下面所有操作都是在超級用戶權限下執(zhí)行的,通過su命令進入掛載步驟:確保ubuntu系統(tǒng)可以正常上網(wǎng)點擊系統(tǒng)右下角的網(wǎng)絡適配器,選擇設置選擇NAT模式在終端中執(zhí)行命令apt-getinstallnfs-server關閉防火墻ufwdisable設置文件系統(tǒng)所在路徑為開放路徑vim/etc/exports在最后一行加入/work/root_nfs/*(rw,sync,no_subtree_check,no_root_squash)屏蔽掉上一行#/opt/target*(rw,sync,no_subtree_check)保存退出exportfs-rv顯示exporting*:/work/root_nfs/代表路徑生效設置網(wǎng)卡為物理網(wǎng)卡菜單欄中"編輯"----虛擬網(wǎng)絡編輯器點擊系統(tǒng)右下角的網(wǎng)絡適配器,選擇設置選擇橋接模式servicenfs-kernel-serverrestartservicenfs-kernel-serverrestart執(zhí)行兩次設置IP地址,子網(wǎng)掩碼,網(wǎng)關等第四步填入IP地址,子網(wǎng)掩碼,網(wǎng)關,分別為06保存退出點擊網(wǎng)絡連接按鈕,選擇剛剛配置好的網(wǎng)絡連接啟動開發(fā)板。在CRT工具中進入uboot操作界面,輸入命令printenv可以看到環(huán)境變量其中bootargs是需要操作的變量setbootargsnoinitrdroot=/dev/nfsnfsroot=06:/work/root_nfs/ip=61:06::::eth0:offinit=/linuxrcconsole=ttySAC0lcd=S702再輸入save,回車,接上網(wǎng)線如果回車能夠出現(xiàn)[root@xyd/]#,代表文件系統(tǒng)掛載成功,至此開發(fā)環(huán)境搭建成功注意:如果停下的時候,回車沒有反應2.nfs服務器是否開啟,執(zhí)行兩次servicenfs-kernel-serverrestart4.沒有聲明文件系統(tǒng)路徑/work/root_nfs/*(rw,sync,no_subtree_check,no_root_squash)5.uboot的bootargs環(huán)境變量修改出錯在linux系統(tǒng)中,比較明顯的分為驅動層和應用層應用層在編程的時候,是不需要去關注物理設備的具體情況,比如型號,品牌等等只需要操作由驅動層提供的設備節(jié)點文件即可,操作方式就是文件操作驅動層的編程跟平常的編程不太一樣驅動層編好的代碼是不需要去執(zhí)行的驅動層的編程方式是模塊編程,這是內(nèi)核層編程的基本語法應用程序編程,程序是從main函數(shù)開始,到exit結束,在這個過程中,應用程序是一直在運行的模塊編程目的是為了往內(nèi)核加載一個模塊,模塊被加載之后,內(nèi)核就支持這個模塊的功能了,在加運行模塊加載函數(shù),把模塊的配置操作完成之后,模塊不會在執(zhí)行其他任何操作會被清理掉模塊是內(nèi)核層的代碼,只對內(nèi)核進行操作模塊編寫跟應用層是不一樣的應用層#include<stdio.h>intmain(void){printf(“helloworld\n”);return0;}驅動層#include<linux/module.h>#include<linux/kernel>module_init(xxx_init);module_exit(xxx_exit);MODULE_LICENSE(“GPL”);//入口函數(shù)聲明//出口函數(shù)聲明//開源許可協(xié)議把上面寫好的C文件編譯為模塊不能直接使用arm-linux-gcc來進行編譯,因為這個編譯器只是用來編譯應用程序的內(nèi)核模塊的編譯一般是沒有一個固定的編譯器的但是內(nèi)核源碼提供了模塊編譯的功能,想要編譯,就需要借助于內(nèi)核源碼編好之后,會生成.ko的后綴的文件,這是可以往內(nèi)核加載的模塊使用內(nèi)核源碼進行編譯,需要以下的一個MakefilevimMakefile把表格里的內(nèi)容輸入進去FILEFILE=moduleobj-m=$(FILE).oKDIR=/work/linux-3.5/make-C$(KDIR)M=$(PWD)modules@rm*.o.tmp_versions.*cmd**.mod**symvers*cmd**order-rfmodule對應要編譯的.c文件,如果.c文件為module.c,那么這里就填上module如果.c文件為hello.c,那么就要填上hello,必須得是C文件才可以編譯以module.ko為例,把module.ko放到開發(fā)板的文件系統(tǒng)中在CRT工具中運行起來系統(tǒng),輸入下面的命令來加載或者卸載即可第一次卸載前先執(zhí)行命令mkdir/lib/modules/3.5.0-FriendlyARM-p再去執(zhí)行卸載命令加載和卸載的時候,會打印出來hellomodule和byebyemodule3.字符設備linux系統(tǒng)空間劃分:用戶空間和內(nèi)核空間無論windows系統(tǒng)還是linux系統(tǒng),都有兩種以上的運行模式linux系統(tǒng)分為兩層:核心層運行在高優(yōu)先級,處理一些與內(nèi)核相關的事情;應用層/用戶層運行在低比如shell,文本編輯器等就是比較常見的低優(yōu)先級程序這種分層主要是為了保護內(nèi)核,保證系統(tǒng)的穩(wěn)定運行,用戶創(chuàng)建的進程運行在低優(yōu)先級上,基本不會出現(xiàn)運行中產(chǎn)生的bug影響到內(nèi)核的進程運行的情況,因為兩層之間是隔離開來的,再者每個進程會有當進程崩潰的時候,只是局部被破壞,而不會影響到其他進程內(nèi)核層和應用層之間因為隔離開來,顯然沒有辦法直接互相通信,或者說數(shù)據(jù)傳輸?shù)鹊鹊怯行┣闆r下,兩層之間是需要進行交互的,為了保證內(nèi)核穩(wěn)定,內(nèi)核層不會直接打開隔離內(nèi)核層是有特意留下一些接口。應用層可以通過這些接口有這些接口表現(xiàn)形式上基本都是函數(shù)系統(tǒng)調用接口,就是上面說的,內(nèi)核層留下的可以跟應用層直接交互的接口驅動就是內(nèi)核層實現(xiàn)外部設備功能的代碼塊一個外部設備,都會有一個對應的驅動模塊,當驅動實現(xiàn)好之后,應用程序就可以通過使用這個驅實現(xiàn)設備功能,基本上都是通過總線來進行管理的,比如內(nèi)核文件管理總線,平臺設備總線等等驅動:實現(xiàn)外部設備功能應用程序:使用驅動,間接地使用設備塊設備驅動:存儲設備對應的驅動特性:以塊為單位進行數(shù)據(jù)傳輸,空間都是連續(xù)的網(wǎng)絡設備驅動:網(wǎng)卡等設備對應的驅動特性:網(wǎng)絡設備通信的模式是隊列字符設備驅動:除了塊設備和網(wǎng)絡設備以外的,都屬于字符設備特性:以字節(jié)為單位進行操作,空間不連續(xù)字符設備分為雜項字符設備,早期字符設備,標準字符設備1.查看原理圖,數(shù)據(jù)手冊,了解物理設備的用法2.在內(nèi)核中找到相近的驅動程序,以此為模板進行開發(fā),有些情況需要從0開始3.注冊驅動程序,給用戶層提供訪問接口5.實現(xiàn)內(nèi)核機制,比如中斷,定時器等6.編譯模塊,加載到內(nèi)核中7.編寫應用程序去測試這個驅動一個設備驅動最重要的屬性就是設備號設備號是一個設備在內(nèi)核中的唯一識別,這是唯一的往內(nèi)核中注冊成功一個設備驅動,就會分配一個唯一的設備號設備號主要由兩部分組成:主設備號和次設備號設備號是有主設備號+次設備號構成的雜項字符設備的主設備號是固定的10雜項字符設備注冊函數(shù)函數(shù)功能:注冊一個雜項字符設備形參:misc:雜項字符設備結構體,用于描述這個雜項字符設備返回值:0代表成功,負數(shù)代表失敗雜項字符設備注銷函數(shù)功能:注銷一個雜項字符設備雜項字符設備結構體intminor;//次設備號};這個結構體中體現(xiàn)出來幾個重要的點設備號:因為主設備號固定10,因此這里是次設備號,如果次設備號為255,表示系統(tǒng)自動分配設備節(jié)點文件:每一個驅動都要在文件系統(tǒng)中留下一個節(jié)點文件,為了給應用程序調用的文件操作集合:這個參數(shù)設置了這個驅動具備哪些文件操作,需要自己定義,聲明2.定義一個文件操作集合結構體,傳遞參數(shù)3.定義一個雜項字符設備結構體,傳遞參數(shù)4.在加載函數(shù)中調用雜項字符設備注冊函數(shù)5.在卸載函數(shù)中調用雜項字符設備注銷函數(shù)6.編寫一個應用程序去測試這個驅動是否可行ctrl+左鍵:查看指定的結構體,變量,函數(shù)等等管腳的使用非常簡單管腳的使用需要用到相關的寄存器配置管腳的使用需要影射寄存器地址,然后操作相關寄存器按鍵屬于開發(fā)板上的物理外設,因此使用這個按鍵就需要知道按鍵在哪個管腳上,寄存器地址是多少腳配置為輸入模式,對應位給0即可因為這是芯片的物理地址,在程序中是不可以直接去操作芯片的物理地址的因此需要調用函數(shù)把物理地址映射到進程中來函數(shù)功能:把芯片的物理地址addr映射到進程空間,通過返回值返回,映射空間大返回值:映射后的虛擬地址,失敗時返回NULL在模塊加載函數(shù)中,使用ioremap函數(shù),把兩個寄存器物理地址映射到進程中在模塊卸載函數(shù)中,使用iounmap函數(shù),把兩個寄存返回不一樣的數(shù)據(jù),比如按下返回字符1,松開返回字符0LCD屏是一個外部物理設備,想要操作LCD屏,那就必須得有相關的內(nèi)核驅動支持LCD驅動在內(nèi)核中已經(jīng)完成了支持,并且比較復雜,這里就直接使用這個驅動即可這里主要是在應用程序中去使用一個LCD驅動,實現(xiàn)字符,漢字,圖片,視頻等等的內(nèi)容播放LCD屏就是由一個一個的像素點組成的,單位體積中的像素越多,顯示效果就越好對于LCD的顯示效果來說,象素點和顏色位深都是很重要的點像素點就是一個屏幕的基本構成顏色位深就是一個像素點的顏色構成LCD驅動注冊好之后,會在內(nèi)核中申請一塊現(xiàn)存空間,這個顯存空間顯示一幀圖像的數(shù)據(jù)顯存的大小取決于像素點個數(shù)和顏色位深顯存=像素點個數(shù)*顏色位深/8想要操作LCD屏,只需要往顯存中填充數(shù)據(jù)即可,可以直接通過文件操作readwrite去填充數(shù)據(jù)因為顯存是在內(nèi)核層中的,因此直接使用文件操作,效率會很低因此為了提高效率,需要把顯存映射到進程空間來,使用函數(shù)mmap即可函數(shù)功能:把顯存映射到進程空間來addr:映射的進程空間首地址,給NULL代表系統(tǒng)自動分配fd:要映射的顯存空間的設備節(jié)點文件返回值:映射的進程空間首地址,失敗返回NULLrequest:命令,命令沒有固定形式,不同的設備有不同的命令命令都是人為去定義的在屏幕上顯示一個字符/漢字的方式和顯示一張圖片的方式是不一樣的進行排列有這個兩個算法的支持,只要調用這些相關的算法,就可以實現(xiàn)圖片的轉換源碼包中主要就是一些.c文件和頭文件C文件實現(xiàn)函數(shù)功能的定義,頭文件進行函數(shù)的聲明1.使用源碼包中提供的函數(shù),編寫自己的程序2.直接使用源碼包中提供的現(xiàn)成的程序,直接拿來用使用源碼包實際上就是使用別人寫好的函數(shù)使用別的函數(shù),想要在編譯的時候通過,必須讓編譯器能夠找到該函數(shù)對應的頭文件和庫文件因此,拿到源碼包之后,首先必須編譯源碼包,得到對應的頭文件和庫文件,把頭文件和庫文件放到編譯器可以找到的路徑程序編譯通過之后,想要在某個運行平臺上運行,必須有對應的動態(tài)庫支持才可以,所以源碼包編譯出來的庫文件也需要放到運行平臺上在移植前首先保證自己進入了超級用戶權限,并且安裝好了交叉編譯器移植步驟:命令:運行之后,會生成Makefile,運行這個Makef把編譯生成的頭文件和庫文件放到交叉編譯器的路徑下把編譯后的庫文件放到運行平臺下Makefile需要調用程序生成的原因:源碼包一般都是可以在任何平臺上運行的,但是Makefile是依賴與運行平臺的,因此在源碼包中只有一個用來生成Makefile的程序,生成一個用于當前平臺的--prefix:安裝路徑,生成的文件存儲的目錄在編譯使用了這些源碼包中的函數(shù)的C文件的時候,需要鏈接動態(tài)庫jpeg所有的源碼包頂層目錄下,都會有一個README,這個文件是用來說明源碼包的使用步驟2.指定要解壓的jpeg圖片源FILE*infile;}6.讀取解壓后的數(shù)據(jù)操作這些數(shù)據(jù),比如顯示到LCD上這份示例代碼中,顯示的圖片的文件是直接從外界輸入進來的,但是如果圖片很多,那就不可能從外面一個一個輸入;只能把所有的圖片放在一個指定的目錄下,通過目錄操作獲取這個目錄下的圖片的文件名唯一不同的是readdir,readdir每一次如果有多個文件,需要多次調用,能夠獲取到信息為:};本文采用Linux系統(tǒng)進行廣告機設計,實現(xiàn)廣告機功能的性能穩(wěn)定性差,維護困難。本設計中存在Linux編譯環(huán)境的搭建,配置標準的編譯器uboot的應用,同步,在實現(xiàn)音頻部分有可能不夠準確,也有可能會出現(xiàn)音頻與視頻的不同步。在以下界面選擇編輯,選擇ipv4分組,如圖7.1配置完之后重啟網(wǎng)絡配置虛擬機網(wǎng)絡連接方式,如圖7.2橋接到有線網(wǎng)絡,如圖7.4啟動開發(fā)板,啟動完成后按ctrl+c結束初始程序出現(xiàn)命令行,開發(fā)板上的系統(tǒng)就是Linux系統(tǒng),命令行就是Linux命令行,支持學過的絕大多數(shù)命令使用串口將PC的文件傳送到開發(fā)板(1)先將文件拷貝到windows文件系統(tǒng)中(2)在開發(fā)板命令行執(zhí)行如下命令rx要傳輸?shù)奈募业揭獋魉偷奈募c擊發(fā)送等待發(fā)送成功實現(xiàn)成功本項目設計使用Linux開源系統(tǒng)和軟件工具集,構建了基于嵌入式多網(wǎng)絡節(jié)點、性能優(yōu)越的廣告機系統(tǒng),最終獲得了滿意的效果。廣告機系統(tǒng)是IT技術在廣告行業(yè)的一個重大突破,網(wǎng)絡技術和比如電視和海報,將不再是有吸引力的和有效的。此外,在一些新的廣告方法,你將無法使用常規(guī)的載體介質。目前,引入Π技術對廣告業(yè)的一個方法是一個重大問題,它已成為一個巨大商機。造成PC的技術問題的困擾。本文討論與參與的網(wǎng)絡廣告機項目結合了嵌入式操作系統(tǒng)在網(wǎng)絡廣告式操作系統(tǒng)的一個突破。式操作系統(tǒng)的一個突破。據(jù)不同的硬件解決方案,多種操作系統(tǒng),包括VxWorks和WNCE的可以發(fā)揮在網(wǎng)絡廣告系方面的研究,并希望能開拓新的應用。1、華清遠見嵌入式培訓中心.嵌入式LinuxC語言應用程序設計[M].北京:人民郵電出版社,2007:43、趙剛等.32位ARM嵌入式系統(tǒng)開發(fā)技術一流程、技巧與實現(xiàn)[M].修訂3版.北京:電子工業(yè)出版社,2008:3104、博創(chuàng)科技.UP-CUPS2410經(jīng)典Linux實驗指導書[M].北京:北京博創(chuàng)興業(yè)科技有限公司,2009:116、劉洪濤.ARM嵌入式體系結構與接口技術[M].北京:人民郵電出版社:2009:177、馬忠梅,徐英慧.ARM嵌入式處理器結構與應用基礎(第3版)[M].北京:北京航天航空火學,2007:78、百度百科.DVl接口[EB/OL]./view/1297324.htm9、宋寶華.Linux設備驅動開發(fā)詳解(第2版)[M].北京:人民郵電出版社,201010、羅苑棠.嵌入式Linux驅動程序和系統(tǒng)開發(fā)實例精講[M].北京:電子工業(yè)出版社,200911、[美].WarrenW.Gay著,詹俊鵠,于衛(wèi)譯。實戰(zhàn)LinuxSocket編程[M].西安:西安電子科技大學出版社,200212、怯肇乾.嵌入式系統(tǒng)硬件體系設計[M].北京:北京航空航天大學出版社,200713、A.Rubini,J.Corbet,LinuxDeviceDriver[M].O'ReillyPress,ThirdEdition,200514、廣嵌.基于TQ6410的Linux使用教程[M].廣州:廣州天嵌計算機科技有限公司,200915、魏偉等.嵌入式硬件系統(tǒng)接口電路設計[M].北京:化學工業(yè)出版社,201016、[美].科波特(Corbet,J.)等著;魏永明等譯.Linux設備驅動程序(第三版)[M].北京:中國17、[美].DanielP.Bovel,MarcoCesati.UnderstangtheLinuxKernel[M].Beiing:O'Reilly.200018、李寧莉.基于ARM的嵌入式Linux系統(tǒng)的研究與應用[D].西安:西安電子科技大學19、韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民有郵電出版社,200820、王麗潔.嵌入式Linux的圖形界面技術研究與實現(xiàn)[D].長沙:國防科學技術大學,200621、何金龍,高文華基于Iix平臺的網(wǎng)絡廣告機的設計[單片機與嵌入式系統(tǒng)應用,20114):256-26122、段鳳云基于ARM的數(shù)字音頻播放器的設計門實驗室科學,2010(3)99-103功能函數(shù){DIR*mydir;chardir[100];if(mydir==NULL){}{{}{{}{}{}}}}//{//link_pbmp_list=init_link();//link_pmusic_l//link_pvideo_list=init_link();//printf("bmp_list\n");//printf("video_list\n");//printf("music_list\n");//}link_pinit_link(){}{}{{{}}}{inti=0;{if(&p->pointer==NULL){printf("linkisNULL\n");}i++;}if(p==NULL){printf("linkisNULLS\n");}}{{}}//{//link_plist=init_link();////////////}{{intx0;inty0;getxy(&x,&y,&x0,&y0);if((x>70&&x<223)&&(y>170&&y<292)){}elseif((x>580&&x<727)&&(y>167&&y<281)){}elseif((x>338&&x<487)&&(y>165&&y<285)){}elseif((x>0&&x<110)&&(y>0&&y<110)){}elseif((x>673&&x<785)&&(y>18&&y<89)){}}}{if(fd==-1){}}intgetxy(int*x,int*y,int*x0,int*y0){inti=0;{printf("n");{}{{printf("***********x\n");}{}}{printf("d\n",p);}if(i==2){*x0=*x;*y0=*y;}i++;if(p==0&&i>=3){printf("x,y(%d,%d)\n",*x,*y);printf("****\n");}}}{}//{////////////////////////////////intx0;inty0;{getxy(&x,&y,&x0,&y0);//printf("*************************\n");}//}//if()//{//{{{r{r}}{}{}}}//{//////////////////}{intret;?if(LCD_fd==-1){}LCD_fd,////////{}}{}{FILE*filp;intx,y,i,ret;BMPIHBmpIH;if(filp==NULL){}//printf("xheigth:%d{for(i=index,x=X;x<X+width;x{}}}{inti=0;{{}}}{{for(x=X;x<X+width;x++){}}}intClean_Area(intX,intY,intwidth,intheight){{for(x=X;x<X+width;x++){}}}{for(i=0;i<16;i++){buffer=ch[i*2];for(j=0;j<8;j++){{}}for(j=0;j<8;j++){{}}}}{for(i=0;i<16;i++){buffer=ch[i*2];for(j=0;j<8;j++){{{{}}}}for(j=0;j<8;j++){{{{}}}}}}{for(i=0;i<16;i++){for(j=0;j<8;j++){{}}}}{for(i=0;i<16;i++){for(j=0;j<8;j++){{{{}}}}}}{intk,xx;{if(string[k]&0x80){}{mould=&__ASCII[string[k]*16];}}}{intk,xx;{if(string[k]&0x80){k++;}{mould=&__ASCII[string[k]*16];}}}{intk,xx;{if(string[k]&0x80){inty0;k++;}{mould=&__ASCII[string[k]*16];}}}{{}}{{intx0;getxy(&x,&y,&x0,&y0);if(x>700&&y<100){}{}}//****}{inti;charstr1[40]={0};FILE*filep=fopen("u{}{printf("str[%i]%s\n",i,str[i]);}{inti;{}{if(strstr(str[i],buf)!=NULL){}}if(strstr(str1,buf)!=NULL&&{r{{}}{}{{buf[i]=0;}}}{{buf[i]=0;}}}}voidgamexy(intx,inty){if(x==0){if(y==0){}if(y==1){}if(y==2){}if(y==3){}}if(x==1){if(y==0){}if(y==1){}if(y==2){}if(y==3){}}if(x==2){if(y==0){}if(y==1){}if(y==2){}if(y==3){}}if(x==3){if(y==0){}if(y==1){}if(y==2){}if(y==3){}}}{intbmp_fb;inti,j;{}intlcd_fb;{perror("lcde")}{}intintintintint{}intlcd_buf[width*height];for(i=0;i<(width*height);i++){}intfil_buf[width*height];{for(j=0;j<width;j++){fil_buf[i*width+j]=lcd_buf[(height-1-i)*width+j];}}int*p=fil_buf;{intj;for(j=0;j<width;j++){}}for(j=0;j<width;j++){}}{inti,j;intbmp_fb;{}intlcd_fb;{}{}intheight;{inti;{p=&bmp_buf[i*800*3];{printf("\n");}}intlcd_buf[LCD_SIZE]={0};for(i=0;i<LCD_SIZE;i++){}{for(j=0;j<800;{}}}{inti;{p=&bmp_buf[i*800*3];{}}intlcd_buf[800*height];for(i=0;i<(width*height);i++){}{for(j=0;j<800;{}}}{intx=(800-width)/2;intx1=0;printf("x=%d\n",x);printf("y=%d\n",y);{}{}intlcd_buf[width*height];for(i=0;i<(width*height);i++){}intfil_buf[width*height];{for(j=0;j<width;j++){fil

溫馨提示

  • 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

提交評論