《嵌入式系統(tǒng)》課程設計(論文)基于S3C2440設備驅動及其界面設計
《《嵌入式系統(tǒng)》課程設計(論文)基于S3C2440設備驅動及其界面設計》由會員分享,可在線閱讀,更多相關《《嵌入式系統(tǒng)》課程設計(論文)基于S3C2440設備驅動及其界面設計(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 福建工程學院 《嵌入式系統(tǒng)》課程設計(論文) 題目: 基于S3C2440設備驅動及其界面設計 班級: 通信0902 姓名: 學號: 指導老師: 目 錄 1序言 ……………………………………………………………………………… 2 2實踐課題題目 …………………………………………………………………
2、… 3 3設計目的 ………………………………………………………………………… 3 4設計過程 ………………………………………………………………………… 3 4.1 MiniGUI在PC上的安裝………………………………………………………3 4.2 MiniGUI在ARM上的移植………………………………………………………4 4.3基于MiniGUI的應用界面編程和基于LED驅動程序的應用程序的編寫……5 5調試結果及改進 …………………………………………………………………11 5.1調試結果………………………………………………………………………11 5.2改進方案…………………
3、……………………………………………………12 6心得體會 …………………………………………………………………………12 7參考文獻 …………………………………………………………………………14 1序言 MiniGUI 是一種面向嵌入式系統(tǒng)或者實時系統(tǒng)的圖形用戶界面支持系統(tǒng)。它主要運行于 Linux 控制臺,實際可以運行在任何一種具有 POSIX 線程支持的 POSIX 兼容系統(tǒng)上。MiniGUI 同時也是國內最早出現(xiàn)的幾個自由軟件項目之一。 MiniGUI 的主
4、要特色有: 遵循 LGPL 條款的純自由軟件。 提供了完備的多窗口機制。這包括:多個單獨線程中運行的多窗口。 單個線程中主窗口的附屬。 對話框和預定義的控件類(按鈕、單行和多行編輯框、列表框、進度條、工具欄等)。 消息傳遞機制。 多字符集和多字體支持,目前支持 ISO8859-1、GB2312、Big5 等字符集,并且支持各種光柵字體和 TrueType、Type 1 等矢量字體。 全拼、五筆等漢字輸入法支持。 BMP、GIF、JPEG、PCX、TGA 等常見圖像文件的支持。 Windows 的資源文件支持,如位圖、圖標、光標等。 插入符、定時器、加速鍵等。 其他(Bee
5、p、ETC/INI 文件操作等)。 小巧。包含全部功能的庫文件大小為 300 K左右。 可配置??筛鶕?jù)項目需求進行定制配置和編譯。 高穩(wěn)定性和高性能。MiniGUI 已經在Linux 發(fā)行版安裝程序、CNC 系統(tǒng)、藍點嵌入式系統(tǒng)等關鍵應用程序中得到了實際的應用??梢浦残院谩D壳?,MiniGUI 可以在 X Window 和 Linux 控制臺上運行。 通過這個課程實踐,我們進一步鞏固嵌入的基礎知識,而且可以復習嵌入式系統(tǒng)的基本結構,開發(fā)環(huán)境的建立和使用,進一步理解嵌入式基本驅動程序、應用程序的設計調試和編譯移植方法,同時新學了MiniGUI在PC上的安裝、移植和基于MiniGUI的
6、基本輸入輸出應用編程編譯與移植,從而完成了整個linux初步課程的學習。 2實踐課題題目 基于S3C2440的設備驅動及其界面設計 3設計目的 3.1進一步鞏固嵌入式系統(tǒng)的基本知識 3.2掌握嵌入式應用系統(tǒng)的基本結構 3.3掌握嵌入式系統(tǒng)開發(fā)環(huán)境建立和使用 3.4掌握嵌入式系統(tǒng)基本驅動、應用程序的設計調試和編譯移植方法 3.5學會查閱有關專業(yè)資料及設計手冊 3.6 MiniGUI界面編程 4設計過程 4.1 MiniGUI在PC上的安裝 4.1.1準備工作 4.1.1.1建立工作目錄:mkdir /minigui
7、-free cd /minigui-free 4.1.1.2復制源文件到工作目錄:cp /mnt/hgfs/D/minigui1.6/* /minigui-free 4.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
8、 tar zxvf qvfb-1.1.tar.gz 4.1.2 MiniGUI庫安裝 4.1.2.1進入目錄:cd libminigui-1.6.10/ 4.1.2.2配置:./configure 在x86上運行只需默認配置即可,配置完成后即可生成Makefile 4.1.2.3編譯:make 成功后即可生成必要的庫文件等。 4.1.2.4安裝:make install 在x86上安裝庫文件。 4.1.2.5把libminigui加入庫搜索路徑: 找到/etc/ld.
9、so.conf,在這個文件末尾加上/usr/local/lib 4.1.2.6把系統(tǒng)共享庫緩存刷新,將libminigui加載上,可以使用命令 ldconfig 這個命令執(zhí)行時要花十多秒,耐心等待。當然不使用刷新命令重啟系統(tǒng)也可以。 4.1.3 MiniGUI資源安裝 4.1.3.1進入目錄:cd minigui-res-1.6.10/ 4.1.3.2安裝:make install 必要資源文件的復制安裝等操作。 4.1.4 MiniGUI例子編譯 4.1.4.1進入目錄:cd mg-samples-1.6.10/
10、4.1.4.2配置:./configure 4.1.4.3編譯:make 編譯src目錄下的例子程序,即可在src目錄下生成可執(zhí)行文件,用于驗證MiniGUI是否在虛擬機上安裝成功。 4.1.5安裝qvfb 4.1.5.1進入目錄:cd qvfb 1.1 4.1.5.2配置:./configure 4.1.5.3編譯:make 4.1.5.4安裝:make install apt-get install qt3-dev-tools-embedded 4.1.6配置MiniGUI.cfg vi /usr/local/etc/MiniGUI.cfg 修
11、改如下部分為 [system] # GAL engine and default options gal_engine=qvfb defaultmode=800x480-16bpp # IAL engine ial_engine=qvfb mdev=/dev/input/mice mtype=IMPS2 [fbcon] defaultmode=800x480-16bpp [qvfb] defaultmode=800x480-16bpp display=0 4.1.7運行MiniGUI例子程序 4.1.7.1打開qvfb:qvfb -width 800 -heigh
12、t 480 & 4.1.7.2運行helloword:./helloworld 出現(xiàn)此窗口說明運行成功。 4.2 MiniGUI在ARM上的移植 4.2.1綜述:實際上過程與MiniGUI在虛擬機上的安裝過程類似,只不過是使用交叉編譯器來編譯而已,以下為老師提供的腳本文件,內容中指定了交叉編譯器和需要連接的一些庫以及要運行的命令,為我們后續(xù)的交叉編譯提供了極大的方便! libcross.sh minigui庫 交叉編譯腳本 rescross.sh minigui資源 交叉編譯腳本 samplecorss.sh minigui例子
13、交叉編譯腳本 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依次運行l(wèi)ibcross.sh,rescross.sh,samplecorss.sh,mdecorss.sh 4.2.4到nfsroot的,目錄
14、下,將libreduce.sh考到這個目錄下,運行l(wèi)ibreduce.sh 4.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驗證移植是否成功: 將mg-samples-1.6.10/src下經過交叉編譯的可執(zhí)行程序(例如HelloWorld)傳送至開發(fā)板上,并運行:./HelloWor
15、ld??赡軙霈F(xiàn)權限不夠的情況,則需要運行chmod 777 HelloWorld,然后再次運行:./HelloWorld。 傳送之前應使用file HelloWorld,若出現(xiàn)ARM字樣,即說明可運行于arm處理器上。 4.3基于MiniGUI的應用界面編程和基于LED驅動程序的應用程序的編寫 4.3.1設計思路 我是先看有關MiniGUI的書籍,理解了整體框架后,再在寫程序的過程中去使用手冊里查閱相關函數(shù),再根據(jù)驅動程序里的函數(shù)模型來調用函數(shù),將框架和函數(shù)搭配在一起。 例如: DLGTEMPLATE為對話框模板,定義對話框整體參數(shù)。 CTRLDATA為控件模板,定義對話框中的
16、控件的參數(shù)。以上兩者可以定義整個界面。 InitDialogBoxProc為對話框窗口過程函數(shù),用于對各種消息的處理,包括按鍵消息,許多函數(shù)就是用在這里。 InitDialogBox (HWND hWnd)包含 DlgInitProgress.controls = CtrlInitProgress;和 DialogBoxIndirectParam (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L); 把控件信息告訴對話框模板,再把對話框模板和過程函數(shù)對應起來。 WinProc為主窗口的過程函數(shù),InitMainWind
17、ow為主窗口的初始化函數(shù),定義主窗口參數(shù),實際上在這個程序中是可以不需要主窗口的。
MiniGUIMain為MiniGUI函數(shù)的入口點。
以上為大致框架,設計過程主要是在于修改InitDialogBoxProc對話框窗口過程函數(shù)。
例如:
用ioctl(led_fd, a, 3)來控制LED的開關。
用GetWindowText(GetDlgItem(hDlg,IDC_EDIT),usr,22)獲取編輯框中的字符串。
4.3.2程序注釋
#include
18、include
19、ude
20、HDC hdc; 定義設備上下文 int color; color=((which==0)? PIXEL_blue:PIXEL_red); 選擇圓的顏色,是藍色還是紅色 hdc=BeginPaint(hWnd); 獲得設備上下文 SetBrushColor(hdc,color); 設置圓的顏色 FillCircle(hdc,x,50,25);
21、 設置圓的位置和半徑 EndPaint(hWnd,hdc); 終止設備上下文 } static DLGTEMPLATE DlgInitProgress = 對話框模板,定義對話框總體參數(shù) { WS_BORDER | WS_CAPTION, 窗口風格 WS_EX_NONE 擴展風格 0, 0, 400, 330, 左上角的位置和
22、寬和高 "led controler", 標題 0, 沒有菜單 0, 沒有圖標 7, 7個控件 NULL, 指向控件的指針 0
23、 沒有附加數(shù)據(jù) }; 定義控件的ID #define IDC_PROMPTINFO 100 靜態(tài)框的ID #define IDC_LED1 110 按鈕LED1到LED4的ID #define IDC_LED2 120 #define IDC_LED3 130 #define IDC_LED4 140 #defi
24、ne IDC_EDIT 150 編輯框的ID static CTRLDATA CtrlInitProgress [] = 控件數(shù)據(jù),包含對話框的所有控件 { { "static", 靜態(tài)框 WS_VISIBLE | SS_SIMPLE, 控件風格 10, 200, 80, 16,
25、 控件左上角位置和寬和高 IDC_PROMPTINFO, 控件ID "input frequency", 控件標題 0, 沒有附加數(shù)據(jù) WS_EX_NONE, 擴展風格 }, {
26、"button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 15, 140, 50, 20, IDC_LED1, "LED1", 0, WS_EX_NONE }, { "button", 按鈕 WS_TABS
27、TOP | WS_VISIBLE | BS_PUSHBUTTON, 85, 140, 50, 20, IDC_LED2, "LED2", 0, WS_EX_NONE }, { "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 155, 140, 50, 20, I
28、DC_LED3, "LED3", 0, WS_EX_NONE }, { "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 225, 140, 50, 20, IDC_LED4, "LED4", 0, WS_EX_NONE },
29、 { "button", 按鈕 WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, 225, 200, 50, 20, IDOK, "OK", 0, WS_EX_NONE }, { "edit", 編輯框
30、 WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER, 90, 200, 100, 20, IDC_EDIT, "", 0, WS_EX_NONE } }; 對話框過程函數(shù),用來處理各種消息 static int InitDialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam) {char usr[20]; switch (message)
31、{ case MSG_INITDIALOG: 初始化對話框消息 return 1; case MSG_PAINT: 重繪消息 draw_circle (hDlg,40,0) ; 畫圓 draw_circle (hDlg,110,1) ; draw_circle (hDlg,180,1) ; draw_circle (hDlg,
32、250,0) ; break; case MSG_COMMAND: 按下對應的按鍵執(zhí)行相應指令 switch (wParam) { case IDC_LED1:a=(q++)%2; ioctl(led_fd, a, 3); break; 控制LED1的開關 case IDC_LED2:b=(w++)%2; ioctl(led_fd, b, 2); break; 控制LED2的開關 case IDC_LED3:c=(e++)%2; ioctl(led_fd, c, 1); break;
33、控制LED3的開關 case IDC_LED4:d=(r++)%2; ioctl(led_fd, d, 0); break; 控制LED4的開關 case IDOK: 按下OK鍵 GetWindowText(GetDlgItem(hDlg,IDC_EDIT),usr,22); 獲取編輯框中的字符串sscanf(usr,"%d",&num); 將字符串轉換成整數(shù) num=(int)((1.0/num)*100000);int i
34、=0; 把輸入的頻率轉換成周期 for(i=0;i<100;i++) { 先全部點亮LED,延時,再關掉全部LED,再延時,閃爍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(led_fd, 0, 3); usleep(
35、num); } break; } break; case MSG_CLOSE: 關閉消息 EndDialog (hDlg, IDCANCEL); 關閉對話框 break; } return DefaultDialogProc (hDlg, message, wParam, lParam); 如果沒有任何消息則返回默認的過程函數(shù) } static void InitDialogBox
36、(HWND hWnd) 建立對話框 { DlgInitProgress.controls = CtrlInitProgress; 把控件信息告訴對話框模板 DialogBoxIndirectParam (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L); 建立對話框,把對話框模板和過程函數(shù)對應起來 }
37、 主窗口過程函數(shù) static int WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam) { switch (message) { case MSG_PAINT: 繪圖消息 break; case MSG_CLOSE: 關閉消息
38、 DestroyMainWindow (hWnd); 關閉主窗口 PostQuitMessage (hWnd); 發(fā)送退出消息給消息循環(huán) break; default: 返回默認過程函數(shù) return DefaultMainWinProc(hWnd, message, wParam, lParam); } return(0); }
39、 int InitMainWindow(void) { MAINWINCREATE CreateInfo; 建立主窗口對象 CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; 窗口風格 CreateInfo.dwExStyle = WS_EX_NONE; 擴展風格 CreateInfo.spCaption = "Hello, world!"; 標題
40、 CreateInfo.hMenu = 0; 無菜單 CreateInfo.hCursor = GetSystemCursor(0); 光標 CreateInfo.hIcon = 0; 無圖標 CreateInfo.MainWindowProc = WinProc; 定義窗口過程函數(shù) CreateInfo.lx = 0;
41、 窗口左上角和寬和高 CreateInfo.ty = 0; CreateInfo.rx = 800; CreateInfo.by = 480; CreateInfo.iBkColor = COLOR_lightwhite; 背景色 CreateInfo.dwAddData = 0; 無附加數(shù)據(jù) CreateInfo.hHosting = HWND_DESKTOP;
42、 托管句柄 hMainWnd = CreateMainWindow (&CreateInfo); 創(chuàng)建主窗口并獲得句柄 if (hMainWnd == HWND_INVALID) return (0); 如果沒打開主窗口返回0 else return (1); 打開成功返回1 } int MiniGUIMain (int argc, const char* argv[]) { MSG Msg;
43、 定義消息變量 led_fd = open("/dev/GPIO-Control", O_RDWR | O_NOCTTY | O_NDELAY); 打開LED設備 if (led_fd < 0) { perror("open device led"); 沒打開則輸出錯誤信息 exit(1); } ioctl(led_fd, a, 0); 先關閉所有LED ioctl(led
44、_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 (HWND_DESKTOP); 建立對話框 InitMainWindow(); 建立主窗口 ShowW
45、indow(hMainWnd, SW_SHOWNORMAL); 顯示主窗口 消息循環(huán) while (GetMessage(&Msg, hMainWnd)) { 從消息隊列中獲取消息 TranslateMessage(&Msg); 將按鍵消息轉換為字符消息 DispatchMessage(&Msg); 把字符消息關聯(lián)到過程函數(shù)
46、 }
MainWindowThreadCleanup (hMainWnd); 關閉主窗口
return 0;
}
#ifndef _LITE_VERSION 如果不是LITE版本則要包含以下頭文件
#include
47、頻率不同。 程序的小缺陷: 界面上的藍色的和紅色的圓沒有閃爍,這主要是我一開始理解錯誤,以為那只是一種裝飾。 5.2改進方案 當a=0時,LED關,同時在界面上顯示藍色,意味著藍色代表LED燈熄滅。 當a=1時,LED開,同時在界面上顯示紅色,意味著紅色代表LED燈點亮。 改動處1: case IDC_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)
48、;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; 改動處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 (hD
49、lg,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(led_fd, 0, 3); draw_circle (hDlg,40,0) ; draw_circle (hDlg,110,0) ; draw_circle (hDlg,180,0) ; draw_circle (
50、hDlg,250,0) ;usleep(num); } 這樣當LED被控制一次,圓也要重繪一次。 6心得體會 先羅列我這次設計遇到的問題和解決方案: 安裝qvfb時配置不成功: 運行./configure --prefix=/usr/ --with-qt-dir=/usr/lib/qt3/ --with-qt-includes=/usr/include/qt3 --with-qt-libraries=/usr/lib/qt/ 讓minigui可執(zhí)行程序在虛擬機上運行: 在mg-samples-1.6.10目錄下運行./configure和make即可,再運行qvfb&,
51、修改參數(shù),再運行./dialogbox(可以運行file dialogbox,查看文件格式,好像是有Intel字樣,表示可以在虛擬機上運行)。 交叉編譯: 直接修改mg-samples-1.6.10/src下的dialogbox.c,改成自己想寫的程序代碼,運行make clean,再回到上一級目錄就是mg-samples-1.6.10,將腳本文件simplecorss.sh復制到此目錄下,運行./ simplecorss.sh,再運行make,回到mg-samples-1.6.10/src下查看是否有dialogbox可執(zhí)行程序,同時運行file dialogbox,查看文件格式,是
52、否有ARM字樣,如果有則交叉編譯成功。腳本文件simplecorss.sh包含了需要用到的庫并指定了交叉編譯器,使用起來較為方便,感謝老師為我們提供的方便。 將交叉編譯的可執(zhí)行程序dialogbox傳送到開發(fā)板后,運行./dialogbox,出現(xiàn)permission denied: 運行:chmod 777 dialogbox ./dialogbox 在開發(fā)板上無法點擊最上層的界面: 注銷qt 使用鼠標或鍵盤作為輸入設備: 修改配置文件MiniGUI.cfg 驅動設備無法啟動: led_fd = open("/dev/GPIO-Control", O_RDWR
53、 | O_NOCTTY | O_NDELAY); 其中設備名要和開發(fā)板上/dev/目錄下的設備名一致,打開方式應為可讀可寫,而不是只讀。 關掉開發(fā)板上的led-player進程,使LED完全受我的minigui可執(zhí)行程序控制: 在運行dialogbox前,先在超級終端里輸入ps,查看開發(fā)板上的所有進程,要關掉led-player進程,輸入kill 740(740為led-player的進程號)。 讓四個圓能出現(xiàn)在dialogbox的界面上: case MSG_PAINT: draw_circle (h
54、Dlg,40,0) ; draw_circle (hDlg,110,1) ; draw_circle (hDlg,180,1) ; draw_circle (hDlg,250,0) ; 以上每個問題都卡了我一些時間,部分是通過請教老師來解決的,在此再次感謝老師給予我的幫助與支持,同時也體現(xiàn)了我知識的淺薄,以及查找資料和自己解決問題的能力的薄弱。 通過這次課程設計,通過我遇到種種問題并且解決它們的過程,我已經把MiniGUI在PC上的安裝、移植和基于MiniGUI的基本輸入輸出應用編程編譯與移
55、植的整個流程過了一遍,初步了解了什么是MiniGUI以及MiniGui應用程序的框架,同時搭配以驅動程序的應用程序,達到了此次課程設計的目的。 由于本人下周在北京學德語,所以只有一周時間來完成課程設計,雖然能夠實現(xiàn)基本功能,但仍有較大改進空間。但是無論如何,本人的課程設計最大的價值在于我的原創(chuàng)性,的確是通過我在上周末剛結束考試就開始看MiniGui的有關書籍并且經過4天的操作,完全依靠我的個人的腦力勞動以及請教老師和同學來完成課程設計的。實際上,據(jù)我所知,只有我和肖吉華(不知名字有沒打錯)有去學習MiniGui的程序,其他人都想用我們寫好的現(xiàn)成的程序。實際上,聽說自大二以來,有些同學就沒
56、好好聽過課,完全指望老師劃重點,然后背一下來應付考試,平時作業(yè)依靠會讀書的少數(shù)幾個人,并且形成惡性循環(huán),以基礎很差為由認為自己讀不好書。到大四了,不學習的理由更加充分了,什么要去找工作,面試,就更加不重視學習了,同時認為“大四了,老師一定會讓他們過”這樣的墮落的想法,更加有恃無恐。由于會讀書的去考研了,我是唯一一個不用考研也不用找工作的會讀書的人,平時班上基本上只有我在學習,然后做好的作業(yè)被他們要去,我的內心是矛盾的,不給的話,不利于同學之間的關系,給的話,我的勞動成果被竊取。本來我是一直打算去美國的,大四才改成去德國,因為在德國更易就業(yè)。去德國的TU9(德國最好的9所理工科大學)不是有錢就可以的,憑借的是我的大學平均分和語言成績。我前三年的大學平均分為84分,語言方面我考了托福和GRE(美國研究生入學考試),成績都在中上水平。當然我在大學基本上就干兩件事,一是刷成績,二是讀語言,沒時間去交際和做項目,這是我的遺憾,但我正在試圖去平衡各種時間的分配,畢竟交際還是很重要的。 7參考文獻 《嵌入式系統(tǒng)接口設計與Linux驅動程序開發(fā)》 《ARM9嵌入式LINUX系統(tǒng)構建與應用》 Minigui用戶手冊 MiniGUI編程手冊 Linux應用程序編程 Linux驅動編程
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。