基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)_第1頁
基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)_第2頁
基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)_第3頁
基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)_第4頁
基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、福建工程學(xué)院嵌入式系統(tǒng)課程設(shè)計(jì)(論文)題目: 基于S3C2440設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì) 班級(jí): 通信0902 姓名: 林驍愷 學(xué)號(hào): 0509101125 指導(dǎo)老師: 張平均、陳婧、李光煬 目 錄1序言 22實(shí)踐課題題目 33設(shè)計(jì)目的 34設(shè)計(jì)過程 34.1 MiniGUI在PC上的安裝34.2 MiniGUI在ARM上的移植44.3基于MiniGUI的應(yīng)用界面編程和基于LED驅(qū)動(dòng)程序的應(yīng)用程序的編寫55調(diào)試結(jié)果及改進(jìn) 11 5.1調(diào)試結(jié)果11 5.2改進(jìn)方案126心得體會(huì) 127參考文獻(xiàn) 141序言MiniGUI 是一種面向嵌入式系統(tǒng)或者實(shí)時(shí)系統(tǒng)的圖形用戶界面支持系統(tǒng)。它主要運(yùn)行于 Linux

2、 控制臺(tái),實(shí)際可以運(yùn)行在任何一種具有 POSIX 線程支持的 POSIX 兼容系統(tǒng)上。MiniGUI 同時(shí)也是國內(nèi)最早出現(xiàn)的幾個(gè)自由軟件項(xiàng)目之一。MiniGUI 的主要特色有:遵循 LGPL 條款的純自由軟件。提供了完備的多窗口機(jī)制。這包括:多個(gè)單獨(dú)線程中運(yùn)行的多窗口。單個(gè)線程中主窗口的附屬。對(duì)話框和預(yù)定義的控件類(按鈕、單行和多行編輯框、列表框、進(jìn)度條、工具欄等)。消息傳遞機(jī)制。多字符集和多字體支持,目前支持 ISO8859-1、GB2312、Big5 等字符集,并且支持各種光柵字體和 TrueType、Type 1 等矢量字體。全拼、五筆等漢字輸入法支持。BMP、GIF、JPEG、PCX、

3、TGA 等常見圖像文件的支持。Windows 的資源文件支持,如位圖、圖標(biāo)、光標(biāo)等。插入符、定時(shí)器、加速鍵等。其他(Beep、ETC/INI 文件操作等)。小巧。包含全部功能的庫文件大小為 300 K左右??膳渲???筛鶕?jù)項(xiàng)目需求進(jìn)行定制配置和編譯。高穩(wěn)定性和高性能。MiniGUI 已經(jīng)在Linux 發(fā)行版安裝程序、CNC 系統(tǒng)、藍(lán)點(diǎn)嵌入式系統(tǒng)等關(guān)鍵應(yīng)用程序中得到了實(shí)際的應(yīng)用??梢浦残院谩D壳?,MiniGUI 可以在 X Window 和 Linux 控制臺(tái)上運(yùn)行。通過這個(gè)課程實(shí)踐,我們進(jìn)一步鞏固嵌入的基礎(chǔ)知識(shí),而且可以復(fù)習(xí)嵌入式系統(tǒng)的基本結(jié)構(gòu),開發(fā)環(huán)境的建立和使用,進(jìn)一步理解嵌入式基本驅(qū)動(dòng)程序

4、、應(yīng)用程序的設(shè)計(jì)調(diào)試和編譯移植方法,同時(shí)新學(xué)了MiniGUI在PC上的安裝、移植和基于MiniGUI的基本輸入輸出應(yīng)用編程編譯與移植,從而完成了整個(gè)linux初步課程的學(xué)習(xí)。2實(shí)踐課題題目基于S3C2440的設(shè)備驅(qū)動(dòng)及其界面設(shè)計(jì)3設(shè)計(jì)目的3.1進(jìn)一步鞏固嵌入式系統(tǒng)的基本知識(shí)3.2掌握嵌入式應(yīng)用系統(tǒng)的基本結(jié)構(gòu)3.3掌握嵌入式系統(tǒng)開發(fā)環(huán)境建立和使用3.4掌握嵌入式系統(tǒng)基本驅(qū)動(dòng)、應(yīng)用程序的設(shè)計(jì)調(diào)試和編譯移植方法3.5學(xué)會(huì)查閱有關(guān)專業(yè)資料及設(shè)計(jì)手冊(cè)3.6 MiniGUI界面編程4設(shè)計(jì)過程4.1 MiniGUI在PC上的安裝4.1.1準(zhǔn)備工作4.1.1.1建立工作目錄:mkdir /minigui-fr

5、ee cd /minigui-free4.1.1.2復(fù)制源文件到工作目錄:cp /mnt/hgfs/D/minigui1.6/* /minigui-free4.1.1.3解壓文件:tar zxvf libminigui-1.6.10.tar.gz tar zxvf minigui-res-1.6.10.tar.gz tar zxvf mg-samples-1.6.10.tar.gz tar zxvf mde-1.6.10.tar.gz tar zxvf qvfb-1.1.tar.gz4.1.2 MiniGUI庫安裝4.1.2.1進(jìn)入目錄:cd libminigui-1.6.10/4.1.2.2

6、配置:./configure 在x86上運(yùn)行只需默認(rèn)配置即可,配置完成后即可生成Makefile4.1.2.3編譯:make 成功后即可生成必要的庫文件等。4.1.2.4安裝:make install 在x86上安裝庫文件。4.1.2.5把libminigui加入庫搜索路徑:找到/etc/ld.so.conf,在這個(gè)文件末尾加上/usr/local/lib4.1.2.6把系統(tǒng)共享庫緩存刷新,將libminigui加載上,可以使用命令 ldconfig這個(gè)命令執(zhí)行時(shí)要花十多秒,耐心等待。當(dāng)然不使用刷新命令重啟系統(tǒng)也可以。4.1.3 MiniGUI資源安裝4.1.3.1進(jìn)入目錄:cd minigu

7、i-res-1.6.10/4.1.3.2安裝:make install 必要資源文件的復(fù)制安裝等操作。4.1.4 MiniGUI例子編譯4.1.4.1進(jìn)入目錄:cd mg-samples-1.6.10/4.1.4.2配置:./configure4.1.4.3編譯:make編譯src目錄下的例子程序,即可在src目錄下生成可執(zhí)行文件,用于驗(yàn)證MiniGUI是否在虛擬機(jī)上安裝成功。4.1.5安裝qvfb4.1.5.1進(jìn)入目錄:cd qvfb 1.14.1.5.2配置:./configure4.1.5.3編譯:make4.1.5.4安裝:make install apt-get install qt

8、3-dev-tools-embedded4.1.6配置MiniGUI.cfgvi /usr/local/etc/MiniGUI.cfg 修改如下部分為system# GAL engine and default optionsgal_engine=qvfbdefaultmode=800x480-16bpp# IAL engineial_engine=qvfbmdev=/dev/input/micemtype=IMPS2fbcondefaultmode=800x480-16bppqvfbdefaultmode=800x480-16bppdisplay=04.1.7運(yùn)行MiniGUI例子程序4.1

9、.7.1打開qvfb:qvfb -width 800 -height 480 &4.1.7.2運(yùn)行helloword:./helloworld出現(xiàn)此窗口說明運(yùn)行成功。4.2 MiniGUI在ARM上的移植4.2.1綜述:實(shí)際上過程與MiniGUI在虛擬機(jī)上的安裝過程類似,只不過是使用交叉編譯器來編譯而已,以下為老師提供的腳本文件,內(nèi)容中指定了交叉編譯器和需要連接的一些庫以及要運(yùn)行的命令,為我們后續(xù)的交叉編譯提供了極大的方便!libcross.sh minigui庫 交叉編譯腳本rescross.sh minigui資源 交叉編譯腳本samplecorss.sh minigui例子交叉編

10、譯腳本mdecorss.sh minigui例子交叉編譯腳本libreduce.sh minigui庫裁剪腳本4.2.2將libcross.sh考到minigui的lib庫的解壓文件夾中將rescross.sh 考到minigui的res資源解壓文件夾中 將samplecorss.sh 考到sample例子解壓文件夾中將mdecorss.sh 考到mde例子解壓文件夾中4.2.3依次運(yùn)行l(wèi)ibcross.sh,rescross.sh,samplecorss.sh,mdecorss.sh4.2.4到nfsroot的,目錄下,將libreduce.sh考到這個(gè)目錄下,運(yùn)行l(wèi)ibreduce.sh4

11、.2.5修改nfsroot下的etc下的MINIGUI的配置文件4.2.6可以使用nfs等通信方式將minigui的庫文件和資源文件和配置文件傳送到開發(fā)板,將MiniGUI.cfg移到開發(fā)板的/etc目錄下,將minigui的庫文件移至開發(fā)板的/lib和/usr/lib下,將minigui的資源文件移至開發(fā)板的/usr/local/下。4.2.7驗(yàn)證移植是否成功:將mg-samples-1.6.10/src下經(jīng)過交叉編譯的可執(zhí)行程序(例如HelloWorld)傳送至開發(fā)板上,并運(yùn)行:./HelloWorld。可能會(huì)出現(xiàn)權(quán)限不夠的情況,則需要運(yùn)行chmod 777 HelloWorld,然后再次

12、運(yùn)行:./HelloWorld。傳送之前應(yīng)使用file HelloWorld,若出現(xiàn)ARM字樣,即說明可運(yùn)行于arm處理器上。4.3基于MiniGUI的應(yīng)用界面編程和基于LED驅(qū)動(dòng)程序的應(yīng)用程序的編寫4.3.1設(shè)計(jì)思路我是先看有關(guān)MiniGUI的書籍,理解了整體框架后,再在寫程序的過程中去使用手冊(cè)里查閱相關(guān)函數(shù),再根據(jù)驅(qū)動(dòng)程序里的函數(shù)模型來調(diào)用函數(shù),將框架和函數(shù)搭配在一起。例如:DLGTEMPLATE為對(duì)話框模板,定義對(duì)話框整體參數(shù)。CTRLDATA為控件模板,定義對(duì)話框中的控件的參數(shù)。以上兩者可以定義整個(gè)界面。InitDialogBoxProc為對(duì)話框窗口過程函數(shù),用于對(duì)各種消息的處理,包括

13、按鍵消息,許多函數(shù)就是用在這里。InitDialogBox (HWND hWnd)包含DlgInitProgress.controls = CtrlInitProgress;和 DialogBoxIndirectParam (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L);把控件信息告訴對(duì)話框模板,再把對(duì)話框模板和過程函數(shù)對(duì)應(yīng)起來。WinProc為主窗口的過程函數(shù),InitMainWindow為主窗口的初始化函數(shù),定義主窗口參數(shù),實(shí)際上在這個(gè)程序中是可以不需要主窗口的。MiniGUIMain為MiniGUI函數(shù)的入口點(diǎn)。以上為大致框架,設(shè)計(jì)

14、過程主要是在于修改InitDialogBoxProc對(duì)話框窗口過程函數(shù)。例如:用ioctl(led_fd, a, 3)來控制LED的開關(guān)。用GetWindowText(GetDlgItem(hDlg,IDC_EDIT),usr,22)獲取編輯框中的字符串。4.3.2程序注釋#include <string.h> 頭文件#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#inc

15、lude <minigui/mywindows.h>#include <minigui/control.h>#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/select.h> #include <sys/time.h> #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ioc

16、tl.h>HWND hMainWnd; 定義主窗口句柄,在程序中用來指代主窗口 static int led_fd; 設(shè)備文件描述符int a=0,b=0,c=0,d=0, num;int q=0,w=0,e=0,r=0;static void draw_circle (HWND hWnd,int x,int which) 畫圓的函數(shù) HDC hdc; 定義設(shè)備上下文 int color; color=(which=0)? PIXEL_blue:PIXEL_red); 選擇圓的顏色,是藍(lán)色還是紅色 hdc=BeginPaint(hWnd); 獲得設(shè)備上下文 SetBrushColor(h

17、dc,color); 設(shè)置圓的顏色 FillCircle(hdc,x,50,25); 設(shè)置圓的位置和半徑 EndPaint(hWnd,hdc); 終止設(shè)備上下文static DLGTEMPLATE DlgInitProgress = 對(duì)話框模板,定義對(duì)話框總體參數(shù) WS_BORDER | WS_CAPTION, 窗口風(fēng)格 WS_EX_NONE 擴(kuò)展風(fēng)格 0, 0, 400, 330, 左上角的位置和寬和高 "led controler", 標(biāo)題 0, 沒有菜單 0, 沒有圖標(biāo) 7, 7個(gè)控件 NULL, 指向控件的指針 0 沒有附加數(shù)據(jù); 定義控件的ID#define ID

18、C_PROMPTINFO100 靜態(tài)框的ID#define IDC_LED1 110 按鈕LED1到LED4的ID#define IDC_LED2 120#define IDC_LED3 130#define IDC_LED4 140#define IDC_EDIT 150 編輯框的IDstatic CTRLDATA CtrlInitProgress = 控件數(shù)據(jù),包含對(duì)話框的所有控件 "static", 靜態(tài)框 WS_VISIBLE | SS_SIMPLE, 控件風(fēng)格 10, 200, 80, 16, 控件左上角位置和寬和高 IDC_PROMPTINFO, 控件ID &q

19、uot;input frequency", 控件標(biāo)題 0, 沒有附加數(shù)據(jù) WS_EX_NONE, 擴(kuò)展風(fēng)格 , "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 15, 140, 50, 20, IDC_LED1, "LED1", 0, WS_EX_NONE , "button", 按鈕 WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 85, 140, 50, 20, IDC_LED2, "LED2", 0, WS

20、_EX_NONE , "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 155, 140, 50, 20, IDC_LED3, "LED3", 0, WS_EX_NONE , "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 225, 140, 50, 20, IDC_LED4, "LED4", 0, WS_EX_NONE , "button", 按鈕 WS_VISIBLE | W

21、S_TABSTOP | BS_PUSHBUTTON, 225, 200, 50, 20, IDOK, "OK", 0, WS_EX_NONE , "edit", 編輯框 WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER, 90, 200, 100, 20, IDC_EDIT, "", 0, WS_EX_NONE ;對(duì)話框過程函數(shù),用來處理各種消息static int InitDialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARA

22、M lParam)char usr20; switch (message) case MSG_INITDIALOG: 初始化對(duì)話框消息 return 1; case MSG_PAINT: 重繪消息 draw_circle (hDlg,40,0) ; 畫圓 draw_circle (hDlg,110,1) ; draw_circle (hDlg,180,1) ; draw_circle (hDlg,250,0) ; break; case MSG_COMMAND: 按下對(duì)應(yīng)的按鍵執(zhí)行相應(yīng)指令 switch (wParam) case IDC_LED1:a=(q+)%2; ioctl(led_fd

23、, a, 3); break; 控制LED1的開關(guān) case IDC_LED2:b=(w+)%2; ioctl(led_fd, b, 2); break; 控制LED2的開關(guān) case IDC_LED3:c=(e+)%2; ioctl(led_fd, c, 1); break; 控制LED3的開關(guān) case IDC_LED4:d=(r+)%2; ioctl(led_fd, d, 0); break; 控制LED4的開關(guān) case IDOK: 按下OK鍵 GetWindowText(GetDlgItem(hDlg,IDC_EDIT),usr,22); 獲取編輯框中的字符串sscanf(usr,&

24、quot;%d",&num); 將字符串轉(zhuǎn)換成整數(shù) num=(int)(1.0/num)*100000);int i=0; 把輸入的頻率轉(zhuǎn)換成周期for(i=0;i<100;i+) 先全部點(diǎn)亮LED,延時(shí),再關(guān)掉全部LED,再延時(shí),閃爍100次ioctl(led_fd, 1, 0); ioctl(led_fd, 1, 1); ioctl(led_fd, 1, 2); ioctl(led_fd, 1, 3); usleep(num); ioctl(led_fd, 0, 0); ioctl(led_fd, 0, 1); ioctl(led_fd, 0, 2); ioctl(

25、led_fd, 0, 3); usleep(num); break; break; case MSG_CLOSE: 關(guān)閉消息 EndDialog (hDlg, IDCANCEL); 關(guān)閉對(duì)話框 break; return DefaultDialogProc (hDlg, message, wParam, lParam); 如果沒有任何消息則返回默認(rèn)的過程函數(shù)static void InitDialogBox (HWND hWnd) 建立對(duì)話框 DlgInitProgress.controls = CtrlInitProgress; 把控件信息告訴對(duì)話框模板 DialogBoxIndirectP

26、aram (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L); 建立對(duì)話框,把對(duì)話框模板和過程函數(shù)對(duì)應(yīng)起來 主窗口過程函數(shù)static int WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam) switch (message) case MSG_PAINT: 繪圖消息 break; case MSG_CLOSE: 關(guān)閉消息 DestroyMainWindow (hWnd); 關(guān)閉主窗口 PostQuitMessage (hWnd); 發(fā)送退出消息給消息循環(huán) break;

27、 default: 返回默認(rèn)過程函數(shù) return DefaultMainWinProc(hWnd, message, wParam, lParam); return(0); int InitMainWindow(void) MAINWINCREATE CreateInfo; 建立主窗口對(duì)象CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; 窗口風(fēng)格 CreateInfo.dwExStyle = WS_EX_NONE; 擴(kuò)展風(fēng)格 CreateInfo.spCaption = "Hello, world!" 標(biāo)題

28、 CreateInfo.hMenu = 0; 無菜單 CreateInfo.hCursor = GetSystemCursor(0); 光標(biāo) CreateInfo.hIcon = 0; 無圖標(biāo) CreateInfo.MainWindowProc = WinProc; 定義窗口過程函數(shù) CreateInfo.lx = 0; 窗口左上角和寬和高 CreateInfo.ty = 0; CreateInfo.rx = 800; CreateInfo.by = 480; CreateInfo.iBkColor = COLOR_lightwhite; 背景色 CreateInfo.dwAddData =

29、0; 無附加數(shù)據(jù) CreateInfo.hHosting = HWND_DESKTOP; 托管句柄 hMainWnd = CreateMainWindow (&CreateInfo); 創(chuàng)建主窗口并獲得句柄 if (hMainWnd = HWND_INVALID) return (0); 如果沒打開主窗口返回0 else return (1); 打開成功返回1int MiniGUIMain (int argc, const char* argv) MSG Msg; 定義消息變量led_fd = open("/dev/GPIO-Control", O_RDWR | O

30、_NOCTTY | O_NDELAY); 打開LED設(shè)備if (led_fd < 0) perror("open device led"); 沒打開則輸出錯(cuò)誤信息exit(1); ioctl(led_fd, a, 0); 先關(guān)閉所有LEDioctl(led_fd, b, 1); ioctl(led_fd, c, 2); ioctl(led_fd, d, 3); #ifdef _MGRM_PROCESSES JoinLayer(NAME_DEF_LAYER , "helloworld" , 0 , 0); #endif InitDialogBox (

31、HWND_DESKTOP); 建立對(duì)話框 InitMainWindow(); 建立主窗口 ShowWindow(hMainWnd, SW_SHOWNORMAL); 顯示主窗口 消息循環(huán) while (GetMessage(&Msg, hMainWnd) 從消息隊(duì)列中獲取消息 TranslateMessage(&Msg); 將按鍵消息轉(zhuǎn)換為字符消息 DispatchMessage(&Msg); 把字符消息關(guān)聯(lián)到過程函數(shù) MainWindowThreadCleanup (hMainWnd); 關(guān)閉主窗口 return 0;#ifndef _LITE_VERSION 如果不是

32、LITE版本則要包含以下頭文件#include <minigui/dti.c>#endif5調(diào)試結(jié)果及改進(jìn)5.1調(diào)試結(jié)果設(shè)計(jì)的界面如下基本的功能都能實(shí)現(xiàn):按LED1到LED4按鈕可以控制對(duì)應(yīng)的LED的開和關(guān),通過鍵盤的Tab鍵可以選擇每個(gè)按鈕和編輯框,在編輯框內(nèi)輸入不同數(shù)字,按OK鍵,使LED的閃爍頻率不同。程序的小缺陷:界面上的藍(lán)色的和紅色的圓沒有閃爍,這主要是我一開始理解錯(cuò)誤,以為那只是一種裝飾。5.2改進(jìn)方案當(dāng)a=0時(shí),LED關(guān),同時(shí)在界面上顯示藍(lán)色,意味著藍(lán)色代表LED燈熄滅。當(dāng)a=1時(shí),LED開,同時(shí)在界面上顯示紅色,意味著紅色代表LED燈點(diǎn)亮。改動(dòng)處1:case IDC

33、_LED1:a=(q+)%2; ioctl(led_fd, a, 3); draw_circle (hDlg,40,a) ;break;case IDC_LED2:b=(w+)%2; ioctl(led_fd, b, 2); draw_circle (hDlg,110,b) ;break;case IDC_LED3:c=(e+)%2; ioctl(led_fd, c, 1); draw_circle (hDlg,180,c) ;break;case IDC_LED4:d=(r+)%2; ioctl(led_fd, d, 0); draw_circle (hDlg,250,d) ; break;

34、 改動(dòng)處2:for(i=0;i<100;i+)ioctl(led_fd, 1, 0); ioctl(led_fd, 1, 1); ioctl(led_fd, 1, 2); ioctl(led_fd, 1, 3); draw_circle (hDlg,40,1) ; draw_circle (hDlg,110,1) ; draw_circle (hDlg,180,1) ; draw_circle (hDlg,250,1) ;usleep(num); ioctl(led_fd, 0, 0); ioctl(led_fd, 0, 1); ioctl(led_fd, 0, 2); ioctl(le

35、d_fd, 0, 3);draw_circle (hDlg,40,0) ; draw_circle (hDlg,110,0) ; draw_circle (hDlg,180,0) ; draw_circle (hDlg,250,0) ;usleep(num); 這樣當(dāng)LED被控制一次,圓也要重繪一次。6心得體會(huì)先羅列我這次設(shè)計(jì)遇到的問題和解決方案:安裝qvfb時(shí)配置不成功:運(yùn)行./configure -prefix=/usr/ -with-qt-dir=/usr/lib/qt3/ -with-qt-includes=/usr/include/qt3 -with-qt-libraries=/us

36、r/lib/qt/讓minigui可執(zhí)行程序在虛擬機(jī)上運(yùn)行:在mg-samples-1.6.10目錄下運(yùn)行./configure和make即可,再運(yùn)行qvfb&,修改參數(shù),再運(yùn)行./dialogbox(可以運(yùn)行file dialogbox,查看文件格式,好像是有Intel字樣,表示可以在虛擬機(jī)上運(yùn)行)。交叉編譯:直接修改mg-samples-1.6.10/src下的dialogbox.c,改成自己想寫的程序代碼,運(yùn)行make clean,再回到上一級(jí)目錄就是mg-samples-1.6.10,將腳本文件simplecorss.sh復(fù)制到此目錄下,運(yùn)行./ simplecorss.sh,

37、再運(yùn)行make,回到mg-samples-1.6.10/src下查看是否有dialogbox可執(zhí)行程序,同時(shí)運(yùn)行file dialogbox,查看文件格式,是否有ARM字樣,如果有則交叉編譯成功。腳本文件simplecorss.sh包含了需要用到的庫并指定了交叉編譯器,使用起來較為方便,感謝老師為我們提供的方便。將交叉編譯的可執(zhí)行程序dialogbox傳送到開發(fā)板后,運(yùn)行./dialogbox,出現(xiàn)permission denied:運(yùn)行:chmod 777 dialogbox./dialogbox在開發(fā)板上無法點(diǎn)擊最上層的界面:注銷qt使用鼠標(biāo)或鍵盤作為輸入設(shè)備:修改配置文件MiniGUI.cfg驅(qū)動(dòng)設(shè)備無法啟動(dòng):led_fd = open("/dev/GPIO-Control", O_RDWR | O_NOCTTY | O_NDELAY); 其中設(shè)備名要和開發(fā)板上/dev/目錄下的設(shè)備名一致,打開方式應(yīng)為可讀可寫,而不是只讀。關(guān)掉開發(fā)板

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論