嵌入式LInux設計與開發(fā)練習題_第1頁
嵌入式LInux設計與開發(fā)練習題_第2頁
嵌入式LInux設計與開發(fā)練習題_第3頁
嵌入式LInux設計與開發(fā)練習題_第4頁
嵌入式LInux設計與開發(fā)練習題_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、練習題(一)一、填空題1嵌入式系統(tǒng)一般包括_、嵌入式操作系統(tǒng)和 。2Arm7內(nèi)核采用的是 體系結(jié)構 。3S3C2410X芯片包含 通道PWM定時器和_通道內(nèi)部計時器。4gcc的編譯流程分為預處理、編譯、 和_。5C語言中的預處理語句是以符號 開頭的。6多任務系統(tǒng)中有3個功能單位:任務、 和_。二、選擇題1下列操作系統(tǒng)中,具有Windows圖形界面的是 ( )AVxWorks BQNX CWindows CE DLinux 2使vi編輯器處于可編輯狀態(tài)的命令是 ( )Ar Bp Ci Db3下列選項中,能幫助用戶生成makefile的工具是 ( )Agcc Bautotools Cgdb Dvi

2、4可以使用TFTP通過網(wǎng)絡下載文件的命令是 ( )Arun Btftpboot Csleep Dmv5下列不屬于Linux系統(tǒng)中線程的是 ( )A用戶級現(xiàn)程 B網(wǎng)絡級線程 C輕量級線程 D內(nèi)核級線程6下列選項中,常用于網(wǎng)絡中不同機器之間的進程間通信的是 ( )A套接字 B管道 C信號 D信號量7使用有關線程操作的函數(shù)時必須包含的頭文件是 ( )Apthread.h Bstdio.h Ctime.h Dstring.h8TCP/IP參考模型包含幾層 ( )A4 B5 C6 D79在TCP中,用于發(fā)送數(shù)據(jù)的函數(shù)是 ( )Abind() Bsend() Caccept() Drecv() 10下列選

3、項中,不屬于Linux系統(tǒng)的設備分類的是 ( )A字符設備 B數(shù)據(jù)設備 C塊設備 D網(wǎng)絡設備三、判斷對錯1Arm9采用的是5級指令流水線。 ( )2Vi編輯器有4種模式:標準模式、插入模式、命令行模式和可視模式。 ( )3NFS文件系統(tǒng)的目的是讓不同的機器、不同的操作系統(tǒng)之間可以共享文件。 ( )4一個線程可以包含多個進程。 ( )5TCP和UDP都是面向可靠的傳輸服務。 ( )6設備驅(qū)動程序可以使用模塊的方式動態(tài)加載到內(nèi)核去。 ( )7標準I/O提供了3種類型的緩沖存儲:全緩沖、行緩沖、不帶緩沖。 ( )8交叉編譯操作需要在安裝交叉編譯器后才能進行。 ( )9Linux環(huán)境下不能同時打開多個

4、終端。 ( )10進程具有動態(tài)性、交互性和異步性,但不具有并發(fā)性。 ( )四、問答題1簡述并行通信和串行通信的概念及各自的特點。 并行通信是指利用多條數(shù)據(jù)傳輸線將一個字數(shù)據(jù)的各比特位同時傳送。它的特點是傳輸速度快,適用于傳輸距離短且傳輸速度較高的通信。 串行通信是指利用一個傳輸線將數(shù)據(jù)以比特位為單位順序傳送。特點是通信線路簡單,利用簡單的線纜就可以實現(xiàn)通信,成本低,適用于傳輸距離長且傳輸速度較慢的通信。2闡述什么是交叉編譯,并解釋為什么要進行交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。 由于一般通用計算機擁有非常豐富的系統(tǒng)資源、使用方便的集成開放環(huán)境和調(diào)試工具等,而

5、嵌入式系統(tǒng)的系統(tǒng)資源非常緊缺,無法在其上運行相關的編譯工具,因此,嵌入式系統(tǒng)的開發(fā)需要借助宿主機(通用計算機)來編譯出目標機的可執(zhí)行代碼。3畫出OSI參考模型與TCP/IP參考模型的對應關系。 五、程序填空題1 在書寫makefile時,適當使用變量替換會使其進一步得到簡化。題中給出了一個makefile的原始寫法,隨后給出了經(jīng)變量替換后的前三行語句,請在下劃線上填寫后續(xù)語句。 完整的makefile原始寫法如下:david: kang.o yul.ogcc kang.o yul.o o davidkang.o: kang.c kang.h gcc Wall g c kang.c o kang

6、.oyul.o: yul.c yul.hgcc Wal l g c yul.c o yul.o經(jīng)過變量替換后的makefile如下:OBJS=kang.o yul.oCC=gccCFLAGS=-Wall g (1) (2) (3) (4) (5) (6) 2已知hello.h和hello.c兩個文件,按要求將所需命令寫在下劃線上。 預處理階段的命令是: (1) 編譯階段的命令是: (2) 匯編階段的命令是: (3) 鏈接階段的命令是: (4) 運行可執(zhí)行文件的命令是: (5) 六、綜合題(共34分)1用QT編寫一個顯示 “ welcome linux ”的窗口程序。 2有如下二叉樹,寫出它的先

7、序序列、中序序列和后序序列。 3編程實現(xiàn)如下功能:使用fork()函數(shù)創(chuàng)建一個子進程,根據(jù)其返回值result判斷函數(shù)fork()的返回情況,并進行錯誤處理。 練習題(二)一、填空題1嵌入式系統(tǒng)一般具備的三個基本要素是:“計算機系統(tǒng)”、_和 。2ARM(Advanced RISC Machines)有3種含義,它是一個_的名稱,也是一類_的通稱,還是一種技術的名稱。3S3C2410X芯片提供 通道的DMA,并具有_請求引腳。4Vim有_種模式,在其他任何模式下按下_按鍵都可以回到命令模式。5一個makefile文件中通常包含三方面內(nèi)容:_、dependency_file和_。二、單項選擇題1下

8、列選項中,不屬于嵌入式系統(tǒng)特點的是 ( )A面向特定應用 B量體裁衣 C對代碼要求低 D不具備二次開發(fā)功能 2使vi編輯器處于標準模式的命令是 ( )ACtrl Bp CEsc Db3嵌入式Linux開發(fā)中常用到的一種調(diào)試工具是 ( )Agcc Bgdb Carm-linux-gcc Dkernal4單向鏈表的最后一個節(jié)點的指針域為 ( )Anext BNULL CFirst Dprev5可以讓不同的機器、不同的操作系統(tǒng)直接進行彼此共享文件的文件系統(tǒng)是 ( )ASMBA BNFS CTFTP D根文件系統(tǒng)6下列Linux內(nèi)源碼頂層目錄的文件夾中,存放有關體系結(jié)構代碼的是 ( )AArch Bd

9、river Cfs DNet7在對文件的操作中,既可以對文件施加建議性鎖,又可以施加強制鎖的函數(shù)是 ( )Afcntl( ) Blockf( ) Clseek( ) Dselect( )8下列選項中,不屬于Unix進程間通信的方式是 ( )A變量 B管道 CFIFO D信號9下列選項中,不屬于設備驅(qū)動程序特點的是 ( )A可裝載 B可移植 C可設置 D動態(tài)性 10下列選項中,用于在內(nèi)核空間向控制臺輸出信息的函數(shù)是 ( )Aprintf() Bprintk() Cprint() Dputchar()三、判斷對錯1在S3C2410芯片中,對內(nèi)核的供電電壓和對存儲器的供電電壓可以不同。 ( )2gc

10、c的編譯流程可分為4個步驟:預處理、編譯、匯編、鏈接。 ( )3tftp服務中使用的tftp協(xié)議是基于UDP實現(xiàn)的。 ( )4BootLoader是不依賴硬件平臺的,所以在新電路板上無需移植U-boot程序。 ( )5在Linux中,所有的設備文件一般都位于“/dev”下,其中串口一和串口對應的設備名是相同的,都是“/dev/ttyS”。 ( )6設備驅(qū)動程序既可以用靜態(tài)方式編譯在內(nèi)核中,也可以動態(tài)加載到內(nèi)核中。 ( )7TCP協(xié)議適于可靠傳輸,UDP協(xié)議適于不可靠傳輸。 ( )8嵌入式Linux驅(qū)動的設備號是一個數(shù)字,由主設備號和次設備號組成。 ( )9嵌入式Linux系統(tǒng)中控制一個LED小

11、燈,直接對其操作即可,無需編寫驅(qū)動。 ( )10進程具有動態(tài)性、交互性和異步性,但不具有并發(fā)性。 ( )四、問答題1簡述vim編輯器的幾種工作模式。 Vim編輯器的使用按不同的使用方式可以分為4種模式:標準模式、插入模式、命令行模式和可視模式。標準模式:在此模式下任何鍵盤的輸入都是作為命令來對待。命令的輸入通常是不回顯的,只顯示執(zhí)行的結(jié)果。在此模式下用戶可以輸入命令來控制屏幕光標的移動,字符、子或行的刪除等操作,也可進入到其它3種模式下。在其它任何模式下按下“Esc”鍵都可以回到此模式。插入模式:用戶只有在此模式下才可以進行文字輸入和修改等編輯工作,因此也稱此模式為編輯模式。在標準模式下輸入“

12、i”即可進入此模式。命令行模式:在此模式下,用戶可以將文件保存或退出vim,也可設置編輯環(huán)境,比如查找字符、列出行號等。在命令模式中輸入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)進入該模式,在此模式下輸入的命令會在底行顯示,這些命令輸入后要按“Enter”鍵才執(zhí)行。可視模式:在命令模式中輸入“v”(按字符選擇)、“V”(按行選擇)、“ctrl”+“v”(按塊選擇)進入該模式。在此模式下,通過移動光標來選擇文本,選擇的文本將反白顯示。 2簡述嵌入式Linux中I/O處理的五種模型。I/O處理的模型有以下五種。(1)阻塞I/O模型:在此模型下,若調(diào)用的I/O函數(shù)沒有完成相關的功能,

13、則會使進程掛起,直到相關數(shù)據(jù)到達才會返回。(2)非阻塞模型:在此模型下,當請求的I/O操作不能完成時,不讓進程睡眠,而且立即返回。非阻塞I/O使用戶可以調(diào)用不會阻塞的I/O操作,如open()、write()、read()。如果該操作不能完成,則會立即返回出錯或者返回0。(3)I/O多路轉(zhuǎn)接模型:此模型下,如果請求的I/O操作阻塞,且它不是真正阻塞I/O,而是讓其中一個函數(shù)等待,期間,I/O還能進行其他操作。(4)信號驅(qū)動I/O模型:此模型下,通過安裝一個信號處理程序,系統(tǒng)可以自動捕獲特定信號,從而啟動I/O。這是由內(nèi)核通知用戶何時啟動一個I/O操作決定的。(5)異步I/O模型:此模型下,當一

14、個描述符已準備好,可以啟動I/O時,進程會通知內(nèi)核。3列舉并簡述嵌入式Linux中使用較多的進程間通信的幾種工作方式。 現(xiàn)在在Linux中使用較多的進程間通信方式主要有以下幾種。(1)管道及有名管道:管道可用于具有親緣關系進程間的通信,有名管道除具有管道所有的功能外,還允許無親緣關系進程間的通信。(2)信號:信號是在軟件層次上對中斷機制的一種模擬,它是比較復雜的通信方式,用于通知進程有某事件發(fā)生,一個進程收到一個信號與處理器收到一個中斷請求效果上可以說是一樣的。(3)消息隊列:消息隊列是消息的鏈接表,包括POSIX消息隊列,System V消息隊列。它克服了前兩種通信方式中信息量有限的缺點,具

15、有寫權限的進程可以按照一定的規(guī)則向消息隊列中添加新消息;對消息隊列有讀權限的進程則可以從消息隊列中讀取消息。(4)共享內(nèi)存:它使得多個進程可以訪問同一塊內(nèi)存空間,不同進程可以及時看到對方進程中對共享內(nèi)存中數(shù)據(jù)的更新,這種通信方式需要依靠某種同步機制,如互斥鎖或信號量等。(5)信號量:主要作為進程之間以及同一進程的不同線程之間的同步或互斥手段。(6)套接字:用于網(wǎng)絡中不同機器之間的進程通信。4畫出設備驅(qū)動程序流程圖。 五、程序填空題1 在嵌入式Linux開發(fā)過程中,為了驅(qū)動LED小燈,需要編寫LED驅(qū)動,在驅(qū)動中實現(xiàn)對端口寄存器的配置,對端口數(shù)據(jù)寄存器的操作,以及設備的注冊、打開、各種I/O操作

16、和注銷等。下面是一個LED驅(qū)動的框架,請在下劃線上填寫合適的語句。 #include <linux/fs>.#define DEVICE_NAME “l(fā)ed”#define DEVICE_MAJOR 231static struct file_operations led_fops= (1) (2) (3) (4) ;static int led_init(void).; register_chrdev_region(.); .static int led_release(struct inode *node, struct file *file).static int led_i

17、octl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg).static int led_open(struct inode * inode, struct file *file).static void led_cleanup(void )unregister_chrdev_region(.); (5) ; (6) (7) ; (8) 2假設由上述驅(qū)動程序得到的驅(qū)動模塊為“l(fā)ed.ko”,那么請將該模塊動態(tài)加載到內(nèi)核中,并且生成相應的結(jié)點所需的命令寫在下劃線上。 動態(tài)加載命令是: (9) 生成結(jié)點命令是: (10) 六、綜合題(共40分)1用QT編寫一個如下圖所示的窗口程序,當點擊“quit”按鈕時,程序退出。 2在ARM Linux中,二叉樹是最為基本的數(shù)據(jù)結(jié)構,請分析二叉樹的先序遍歷、中序遍歷和后序遍歷的流程,并寫出下列二叉樹的先序序列、中序序列和后序序列。 3編程實現(xiàn)一個完整的守護進程:首先創(chuàng)建一個子進程1(守護進程),然后在該子進程中新建一個子進程2,該子進程2暫停10s,然后自動退出,

溫馨提示

  • 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

提交評論