版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
GECS5PV2101第一章建立宿主機(jī)PC開發(fā)環(huán) 安裝vmwareworkstation軟 第二章嵌入式開發(fā)環(huán)境搭 第三章Qte開發(fā)環(huán)境搭 移植JPEG 第四章設(shè)備驅(qū)動和接口測 2 第五章Linux應(yīng)用開發(fā)示 5.1o Qt4o Qt4跑馬 5.8Qt4聊天程 344打開光盤工具軟件找到555566667788994Iwillinstalltheoperatingsystemlater,點(diǎn)Next、 11Createanewvirtualdiskualmachine之后虛擬計(jì)算機(jī)就已經(jīng)啟動。你的ubuntu之旅。安裝中文簡體版本的ubuntu,“安裝ubuntu”。 設(shè)置ubunturoot1、先設(shè)定一個root的,sudopasswdroot2、root登錄,surootcpp/etc/lightdm/lightdm.conf 4、編輯lightdm.confsudogedit/etc/lightdm/lightdm.confgreeter-show-manual-login=trueallow-greeter-show-manual-login=trueallow-guest=false#不允許guest登錄執(zhí)行pulseaudio--start--log-target=syslog將root加到pulse-access組:sudousermod-a-Gpulse-access#sudoapt-getintallgnome-session-#viuser-session=ubuntu->user-session=gnome-VMwareVMInstallVMwareToolsVMwaretools輸入cdvmware-tools-distrib/輸進(jìn)入vmware-tools-distrib hostname$sudovi$sudoviostname中一樣的名字geclab。至此,修改計(jì)算機(jī)名字的操作完成。 #sudoapt-get 即可配置、啟動ctrl+azserialportsetupA,輸入正確的串口終端一般為/dev/ttyS0E,輸入N1FGNOsavesetupasdfl保存全部配置。 (2)OptionsSessionsOptions->Serial圖所示,然后單擊OK,注意需要RTS/CTS去掉打鉤!Enterlinuxnfs-kernel-servermonnfsstat如果沒有安裝,則在linux聯(lián)網(wǎng)的情況下,執(zhí)行如下兩條命令(Ubuntu為例)#sudo#sudoapt-getinstallnfs-kernel-servernfs#sudoapt-get#vim/opt/filesystem192.168.1.*(rw,sync,no_root_squash)//#vimnfs文件系統(tǒng)的路徑,要自己建立該,192.168.1IP/opt/filesystem*(rw,sync,no_root_squashIP#61linux#mount–tnfs-onolock 注意:/opt/filesysytem為linux的 (此處必須與vim/etc/exports中的 #sudoapt-getinstalltftp-hpatftpd-hpa#vim#vimdebhttp /ubuntu/precisemainuniverserestrictedmdeb-srchttp /ubuntu/precisemainuniverserestrictedmultiversedebhttp /ubuntu/precise-securityuniversemainmultiverserestricteddeb-srchttp /ubuntu/precise-securityuniversemainmultiverserestricteddebhttp /ubuntu/precise-updatesuniversemainmultiverserestricteddebhttp /ubuntu/precise-proposeduniversemainmultiverserestricteddeb-srchttp /ubuntu/precise-proposeduniversemainmultiverserestricteddebhttp /ubuntu/precise-backportsuniversemainmultiverserestricteddeb-srchttp /ubuntu/precise-backportsuniversemainmultiverserestricteddeb-srchttp /ubuntu/precise-updatesuniversemainmultiverserestrictedsudovim/etc/default/tftpd-hpatftpd-hpa#TFTP_DIRECTORY="/var/lib/tftpboot"http://注釋原來的共享路徑 TFTP_OPTIONS="-ls od777 od777#sudo/etc/init.d/xinetd#sudo/etc/init.d/tftpd-hpa#netstat #netstat #ifconfigeth0#ifconfigeth0#ifconfigeth000#ifconfigeth0#ifconfigeth0#ifconfig#ifconfigeth0#ifconfigeth0#fconfig#fconfigethp0#tftp xxx#tftp–p#tftp–p–lfilenametu中后改變其運(yùn)行權(quán)限,并運(yùn)行: od777QtSdk-offline-linux-x86-編譯器,請?jiān)诮K端輸入命令#apt-getinstallg++進(jìn)行安裝。untu系統(tǒng)菜單欄的應(yīng)用程序->編程下。sudoapt-getsudoapt-getinstallgnome-#viexportexportexportexportQMAKESPEC=$QTDIR/mkspecs/linux-g++ #source #qmake- 軟件比較,有時候甚至是不可能的。X86CPUarmarm-linux-as交叉器,例如arm-linux-ld將光盤叉編譯工具的源碼arm-2009q3.tar.bz2拷貝到/usr/local/arm(沒有該 #tarjxvfarm-#vim~/.bashrcexportPATH=/usr/local/arm/arm-#source #tarxjvfuboot-gec210.tar.bz2#cduboot-gec210/#vim2010-09-50-for-linux.tar拷貝到/usr/local/arm #tarxjvfarm-none-linux-gnueabi-arm-2010-09-50-for- 原來的工具#exportPATH=/usr/local/arm/arm-2009q3/bin:$PATH從光盤中找到linux--gec-v3.0.tar.bz2拷貝到用 ,解壓2.6.35.7-gec-v3.0.tar.bz2進(jìn)入內(nèi)核 #cpGEC210_7INCH_CONFIG#cpGEC210_4.3INCH_CONFIG#cpGEC210_7INCH_CONFIG#cpGEC210_4.3INCH_CONFIG#sudoapt-getinstallncurses-dev config配置內(nèi)核vimzImage 生成uImage鏡像文件:#cp#cparch/arm/boot/zImage#mkimage#mkimage-n‘linux--gec-v3.0’-Aarm-Olinux-T-d-dzImage-e-Cnone-abusybox定制一個根文件系統(tǒng),對于嵌入式文件系統(tǒng),根下需包含以下:bin、dev、etc、sbin、tmp、usr、lib、proc、sys等。這里設(shè)定根是/root/rootfs;busybox、bash編譯之后,安裝到該下:#mkdir#mkdir#cd#cd#mknod#mknodconsolec5#mknod#mknodnullc1交叉工具鏈的lib下,當(dāng)移植應(yīng)用程序到目標(biāo)板上時,需要把交叉編譯的庫也一起移植到目標(biāo)板上。這里用到的交叉工具鏈?zhǔn)?usr/local/arm/4.5.1/所以庫的是/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/lib(讀者庫若有所不同請自件。本文提供一個來防止缺失,內(nèi)容如下:vimvimforfileinlibclibcryptlibdllibmlibpthreadlibresolvlibutilcp$file*.socp-d$file.so.*/root/rootfs/libcp-dld*.so*cp-dlibstdc++.so*/root/rootfs/libcp-dlibgcc_s*/root/rootfs/lib#sourcecp-dlibnss*.so*/root/rootfs/libcp-dlibuuid.so*/root/rootfs/libcp#source #cp-dlibstdc++.so*#arm-none-linux-gnueabi-strip-s #arm-none-linux-gnueabi-strip-s將光盤上busybox-1.19.2-x210.tar.bz2拷貝到任意 #tarxjvfbusybox-1.19.2-x210.tar.bz2#cdbusybox- BusyboxSettings---GeneralConfiguration---Build [*]Build [*]BuildBusyBoxasastaticbinary(nosharedInstallationOptions---(/root/rootfs)BusyBoxinstallation vimARCH#make&&make安裝完成后,busybox會在安裝 #vimetc/inittab#first:runthesystemscript#third:runthebashs#restartinit#second:runthelocalsscript#umountallfilesystem::shutdown:/bin/umount-a-文件#vi#devicemount- options fsck00000000000000文件#mkdir/root/rootfs/etc/init.d#vimumask022exportPATHrunlevel# TrapCTRL-C&conlyinthisssowecaninterruptsubprocessemount-mkdir-pmount-tdevptsdevptsecho/sbin/mdev>/proc/sys/kernel/hotplugmdev-smkdir-p/var/lockmkdir/dev/fb/dev/v4lln-s/dev/fb0/dev/fb/0ln-s/dev/0/dev/v4l/0hwclock-whwclock-sifconfiglo/bin/hostname#vi#Ash#vim:#Nocorefilesbydefaultulimit-S-c0>/dev/null2>&1USER="`id-un`"exportUSERLOGNAMEPS1PATH#vimIP#vim/sbin/ifconfiglo/sbin/ifconfigeth03netmask/sbin/routeadddefaultgw#vimsd[a-z][0-9]0:0666*/etc/mdev/udisk_opt#mkdir/root/rootfs/etc/mdev#vimecho"-------udevinsert----$MDEV---$ACTION">/dev/s3c2410_serial0if["$ACTION"=="add"];thenif[-d/sys/block/*/$MDEV];thenmkdir-p/media/$MDEVmount/dev/$MDEV/media/$MDEV-tvfatelif["$ACTION"=="remove"];thenumount-l/media/$MDEVrm-rf/media od777 od777 od777source.tar一定要解壓到ubuntu任意#tarxvfyaffs2-source.tar#cdyaffs2/utils#cpmkyaffs2image #mkyaffs2imagerootfsrootfs.img燒寫linux移植JPEGln-sarm-none-linux-gnueabi-gccarm-linux-ln-sarm-none-linux-gnueabi-g++arm-linux-ln-sarm-none-linux-gnueabi-gccarm-linux-ln-sarm-none-linux-gnueabi-g++arm-linux- ln-sarm-none-linux-gnueabi-ararm-linux- ln-sarm-none-linux-gnueabi-striparm-linux- ln-sarm-none-linux-gnueabi-objcopyarm-linux-objcopyln-sarm-none-linux-gnueabi-objdumparm-linux-#tarzxvfjpegsrc.v6b.tar.gz#cd CCgccarm-none-linux-gnueabi-AR=arac改為arm-none-linux-gnueabi-aracAR2ranlibarm-none-linux-gnueabi-ranlib#make#mkdir#mkdir-p/usr/local/arm/4.5.1/arm-none-linux-把/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib文件夾內(nèi)的libjpeg.*到文件系統(tǒng)源碼的/lib上#cd/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib#cp-dlibjpeg.*/root/rootfs/lib#tarxjvftslib-#cdtslib-#cdtslib-#sudoapt-getinstallautoconfautomake#./configure#./configure--prefix=/home/tslib/--host=arm-linuxnnull=yes--enable-#make#make 下的ts.conf文件,將module_rawinput前面的注釋去掉,使QT支持觸摸屏。#vim mentifyouwishtousethelinuxinputlayereventinterfaceion#mkdir#cp-drf/home/tslib交叉編譯qt-embedded1)編譯過程中需要x11庫的支持#apt-getinstalllibx11-dev#apt-getinstalllibxext-dev#apt-getinstalllibxtst-#tarzxvfqt-everywhere-opensource-src-Qt4.7.0。詳細(xì)參數(shù)含義./configure-embeddedhelp查看,默認(rèn)安裝#./configure-opensource-embeddedarm-xtformqws/linux-arm-g++-no-webkit-qt-libtiff-qt-libmng-no-qt3support-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon-L/home/tslib/lib-I/home/tslib/include#cd#cd#ln#ln-sarm-none-linux-gnueabi-ararm-linux-#make#make#cp-drflib/root/rootfs/usr/local/Trolltech/QtEmbedded-4.7.0-#cp-drfplugins/root/rootfs/usr/local/Trolltech/QtEmbedded-4.7.0-#cd od777librt-#ln-slibrt-2.11.1.so修改profile#vimexportTSLIB_CONSOLEDEVICE=noneexportTSLIB_FBDEVICE=/dev/fb0exportTSLIB_PLUGINDIR=/usr/local/tslib/lib/tsexportPOINTERCAL_FILE=/etc/pointercalexportexportQWS_MOUSE_PROTO="TPanel:/dev/event0Tslib"exportV_ROOT=/usr/local/tslibexportexportQWS_KEYBOARD=TTY:/dev/tty1exportPATH=/bin:/usr/bin:$PATHif[!-e/etc/pointercal];then3.6編譯Qte #cd#cd #vimexportQMAKEDIR=$QTDIR/qmakeexportexportQMAKESPEC=qws/linux-arm-g++ #cpoWorld oWorld oWorld-(注意:以下的程序及驅(qū)動都是通過nfs服務(wù)器掛載到開發(fā)板的/mnt 配置虛擬機(jī)ip#ifconfigeth0nfs #ifconfigeth062 /opt/filesystem到開發(fā)板的 /opt/filesystem下面從光盤中找到文件夾210driver-code,從里面找到led文件夾,拷貝到虛擬機(jī)的 #cd#mount#mount–tnfs-onolock #insmodled_drv.ko#cd/opt/filesystem/led/led_app/#cd/mnt/led/led_app/#./led_test1off#./led_test2off #insmodbuttons_drv.ko #cd/mnt/adc/adc_drv/#insmodadc_drv.ko #insmodbuzzer_drv.ko#./buzzeron1520#./buzzeroff #cd/mnt/rtc/#./rtc_testgettime面。要無線網(wǎng)絡(luò)還需要交叉編譯_supplicant這個工具和相關(guān)的配置。 #tarxzvfopenssl-#tarxvvf 將openssl-0.9.8e-tls-extensions.patch拷貝到openssl-0.9.8e源碼 enssl-0.9.8e源碼 #patch-p1<openssl-0.9.8e-tls-#mkdir#./Configurelinux-elf- linux:arm-linux-gccno-shared--#makeinstall配置編 _supplicant-0.7.2源文件, 下對makefile#vim#cpdefconfig.config pairwise=CCMPTKIPgroup=TKIPCCMPWEP104} }# }#Open:} 添加如下來自動加載驅(qū)動和配置文件,在開發(fā)板頂層 if[-z$1];echo"$0usage<NetNmae><PassWord>";exit0; sed-i"8c =\"${1}\""$configsed-i"14cpsk=\"${2}\""$configsed-i"19c=\"${1}\""$configsed-i"25cpsk=\"${2}\""$configsed-i"30c=\"${1}\""$configsed-i"34cpsk=\"${2}\""$configsed-i"39cpsk=\"${2}\"" _supplicant-B-iwlan0- _supplicant.conf-sleepifconfigeth0downifconfigwlan0upsleep2 -i#echo"nameserver">/etc/resolv.conf#ifconfigwlan02#routeadddefaultgw ,建立udhcpc配置default.script #udhcpcscripteditedbyTimRiker[-n"$1"]||{echo"Error:shouldbecalledfromudhcpc";exit1;}[-n"$subnet"]&&NETMASK="netmask$subnet"BROADCAST="broadcast+"[-n"$broadcast"]&&BROADCAST="broadcastcase"$1"inecho"SettingIPaddresson$interface"ifconfig$interfaceecho"SettingIPaddress$ipon$interface"ifconfig$interface$ip$NETMASK$BROADCASTif[-n"$router"];thenecho"Deletingrouters"whileroutedeldefaultgwdev$interface;:foriin$router;echo"Addingrouterrouteadddefaultgw$idev$interfacemetric$((metric++))echo"Recreating$RESOLV_CONF"echo-n>$RESOLV_CONF-$$[-n "]&&echo"search ">>$$foriin$dns;echo"AddingDNSserverecho"nameserver$i">>$$mv$RESOLV_CONF-$$exit 個參數(shù),第一個參數(shù)是無線網(wǎng)絡(luò)的,第二個參數(shù)是無線網(wǎng)絡(luò)的。 #4.15test然后到開發(fā)板,運(yùn)行以下命令:[root@GEC210/mnt]#insmod[root@GEC210[root@GEC210/mnt]# od777[root@GEC210/mnt]#800x480bpp:32mmaped 94.588225]ov96500-0030:ov9650hasbeen 94.589162]ov96500-0030:ov9650ProductID96:52ManufacturerID7f:a2 94.589231]ov96500-0030:parallelmode 94.589298]ov9650_s_fmt 94.589956]ov9650:powerON 94.589986]====ov9650initialization====capturestart 111.182599]ov9650:power od777 madysnd-soc-gec210-wm8960.ko,snd-soc-wm8960.koMP3gecmusicnfs od777 #insmodsnd-soc-wm8960.ko#insmodsnd-soc-gec210-wm8960.ko## yerrorwhileloadingsharedlibraries:libz.so.1:cannotopensharedobjectfile:Nosuchfileordirectory# y我們從光盤中剛才拷貝mady的 下拷貝# yMPEGAudioDecoder0.15.2(beta)-Copyright(C)2000-2004RobertLeslieetal.[1081.266516]DmaAddr=@c Total=131072bytesPrdSz=8192#Prds=16dm[1081.278159]DmaAddr=@c Total=131072bytesPrdSz=8192#Prds=16dm[1081.288793]DmaAddr=@c Total=131072bytesPrdSz=4096#Prds=32dm[1081.298599]DmaAddr=@c Total=131072bytesPrdSz=8192#Prds=16dm5.1o源碼文件intint{ oreturn}pcarm-linux-gcc#arm-linux-gcc-oo[root@GEC210 可執(zhí)行程序到目標(biāo)板上運(yùn)行(注意:本程序是通過掛載nfs[root@GEC210 oointintmain(intargc,char{intcharint{printf("open}intcharint{printf("open}{printf("openreturn}{{{printf("readreturn}{printf("writereturnprintf("readreturn}{printf("writereturn}}return}#arm-linux-gcc-oio#./ioioinit #include#include#include#include#include#include#include#include#includentntmain(intargc,char{intintpid_tcharbuf_r[100oochar*intr_num=0;{printf("pipecreate{printf("pipecreatereturn-}{{printf("%dnumbersreadfrom{{printf("%dnumbersreadfromthepipeis\"%s}}else{printf("parentwrite\"printf("parentwrite\"%s\"}}pcarm-linux-gcc#arm-linux-gcc-opipe_rwparentwrite oworld!"12numbersreadfromthepipeis"oworld!pthread_mutex_tmutex=pthread_mutex_tmutex=intvoidpthread1(voidvoidpthread2(voidintint{pthread_tintpthread_tintret=pthread_create(&id1,NULL,(voidperror("Failedperror("Failedtocreatearet=pthread_create(&id2,NULL,(voidperror("Failedret=pthread_create(&id2,NULL,(voidperror("Failedtocreatea}voidvoidpthread1(void{{{}perror("Thread1lockprintf("Thread1lockthe{{}perror("Thre
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《我想和你們一起玩》課件
- 2026年機(jī)械安全操作規(guī)范考試題庫(安全生產(chǎn)管理篇)試題及答案
- 綠化養(yǎng)護(hù)人員管理制度及崗位責(zé)任制
- 2026年加油站安全崗位責(zé)任制范文
- 企業(yè)項(xiàng)目任務(wù)管理快速分工與進(jìn)度跟進(jìn)工具
- 項(xiàng)目評審流程標(biāo)準(zhǔn)化手冊
- 地理教師考試題及答案
- 大專藥師考試題目及答案
- 內(nèi)科中級考試題及答案
- 醫(yī)院保衛(wèi)培訓(xùn)試題及答案
- CJ/T 164-2014節(jié)水型生活用水器具
- 沈陽市法庫縣遼文化小學(xué)-穿中國“鞋”,走中國“路”-六年級弘揚(yáng)中國特色社會主義道路自信主題班會【課件】
- 貨車充電協(xié)議書范本
- 夫妻門衛(wèi)合同協(xié)議
- 公司雙選工作方案
- 村財(cái)務(wù)管理制度
- 腸梗阻的診斷和治療方案
- 急性心力衰竭中國指南(2022-2024)解讀
- 《冠心病》課件(完整版)
- 醫(yī)師師承關(guān)系合同范例
- 汽車電器DFMEA-空調(diào)冷暖裝置
評論
0/150
提交評論