2009嵌入式試卷帶問題詳解_第1頁
2009嵌入式試卷帶問題詳解_第2頁
2009嵌入式試卷帶問題詳解_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、期 日 核 審 rW :名簽人核審訂 期日卷制二二裝二二二二:名簽人卷制題號-一-二二三總分閱卷教師得分得一、選擇題(每題2分,共40 分)題目12345678910答案DDDDBBCAAD題目11121314151617181920答案DCCABDCBBB請將選擇題的答案填入下表,答案以表中的為準(zhǔn)!1.下列不是嵌入式系統(tǒng)特點的是:湘潭大學(xué)興湘學(xué)院2009年下學(xué)期嵌入式系統(tǒng)I期末考試試卷適用年級專業(yè) 06級計算機(jī)科學(xué)與技術(shù),網(wǎng)絡(luò)工程考試方式閉卷考試時間120 分鐘學(xué)院專業(yè)班級學(xué)號姓名A. 系統(tǒng)內(nèi)核小 B.專用性強(qiáng) C.系統(tǒng)精簡 D.實時性要求不高2. 關(guān)于ARM匯編和C語言混合編程下列錯誤的是

2、:A C語言中可以直接嵌入某些匯編指令B. C語言中可以調(diào)用匯編的子程序C.匯編程序中可以調(diào)用 C語言的函數(shù) D. C語言嵌入的匯編指令時,不可以使用C的變量3. 關(guān)于ATPCS規(guī)則,說法錯誤的是:A. 只能使用R0-R3來傳遞參數(shù)B. R13為堆棧指針SP,需要保護(hù)C. R14為連接寄存器,用于存放程序返回地址D.單字的返回值存放在R04. 關(guān)于交叉編譯描述正確的是:A. 編譯器運(yùn)行在目標(biāo)機(jī),生成的可執(zhí)行文件在宿主機(jī)上運(yùn)行B. 編譯器運(yùn)行在宿主機(jī),生成的可執(zhí)行文件在宿主機(jī)上運(yùn)行C. 編譯器運(yùn)行在目標(biāo)機(jī),生成的可執(zhí)行文件在目標(biāo)機(jī)上運(yùn)行D .編譯器運(yùn)行在宿主機(jī),生成的可執(zhí)行文件在目標(biāo)機(jī)上運(yùn)行5.

3、 建立嵌入式Linux開發(fā)環(huán)境中,使用 Bootp協(xié)議的直接目的是:A. 分配宿主機(jī)的IP地址 B.分配目標(biāo)機(jī)的IP地址C.用于宿主機(jī)和目標(biāo)機(jī)之間通訊D.用于監(jiān)控目標(biāo)機(jī)的運(yùn)行。6. 關(guān)于make工具的使用,下面錯誤的是:A. 不指定目標(biāo)時,make缺省處理makefile文件的第一個目標(biāo)。B. makefile 文件中對宏名的引用為 # (宏名)。C. makefile文件中$參數(shù)表示一條規(guī)則中目標(biāo)的名字。D. make CC=arm-linux-gcc命令表示使用 arm-linux-gcc代替makefile 文件中CC的宏定義執(zhí)行make命令。7. 下面不屬于嵌入式操作系統(tǒng)的是:A. V

4、xWorks B. QNX C. MacOS D. WinCE8. 關(guān)于Linux2.4內(nèi)核,說法錯誤的是:A. Linux為單內(nèi)核,效率高,緊湊B.按進(jìn)程優(yōu)先級調(diào)度C.具有虛擬文件系統(tǒng),可以支持多種文件系統(tǒng)D.設(shè)備驅(qū)動模塊化9. 嵌入式Linux開發(fā)中使用 GDB調(diào)試,說法錯誤的是:A GDB程序在宿主機(jī)上運(yùn)行B.需要使用遠(yuǎn)程調(diào)試模式C.需要交叉編譯 GDBServer D.被調(diào)試程序在宿主機(jī)上運(yùn)行10. 下列屬于常見的嵌入式GUI的有:A. Win dows B. QT C. GNOMED. Min iGUI11. Linux將設(shè)備分成三類,不是這三類的是:12.B.C.網(wǎng)絡(luò)設(shè)備關(guān)于二階段

5、BootLoaderBootLoaderBootLoaderB.字符設(shè)備C.塊設(shè)備 D.雜項設(shè)備BootLoader 說法錯誤的是:的第一階段代碼全部由匯編語言構(gòu)成;的第一階段代碼在 Flash中運(yùn)行;中可以使用glib庫中的函數(shù);BootLoader第二階段代碼大部分由 C語言寫成,所以需要使用棧。13.關(guān)于Linux存儲管理,錯誤的是:A .使用頁式的虛擬內(nèi)存管理B. 每個進(jìn)程都有4GB內(nèi)存C. 最低1G是內(nèi)核空間D.使用三級頁表14. 嵌入式系統(tǒng)一般由嵌入式微處理器,系統(tǒng)外部電路,和特定應(yīng)用程序 4個部分組成。A .嵌入式操作系統(tǒng)B.硬件驅(qū)動程序C. BootLoaderD.文件系統(tǒng)15

6、. 向無任何程序的目標(biāo)機(jī)中寫入BootLoader程序,一般使用下面那種接口:A .串口 B. JTAG C. Ethernet D. USB16. 關(guān)于ARM7系列微處理器的操作模式,不對的是:A 一共有7種操作模式B.除了用戶模式,其他都為特權(quán)模式C.不同模式下使用的寄存器可能會不相同D.通過改變SPSR中的低5位來切換模式17. 關(guān)于BusyBox,下列說法錯誤的是:A 它常用來構(gòu)建嵌入式Linux的根文件系統(tǒng) B.支持的shell命令可以進(jìn)行配置C.支持的命令完全和 Linux命令相同 D.作為嵌入式Linux根文件系統(tǒng)時需要交叉編譯18. Linux網(wǎng)絡(luò)設(shè)備驅(qū)動中用于在Linux網(wǎng)絡(luò)

7、子系統(tǒng)中的各層之間傳遞數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)為:A. net_device B. sk_buff C. net_dev D. skb19. 在Linux2.6中,關(guān)于中斷下列說法錯誤的是:A. 中斷處理分為頂半部和底半部B.中斷處理中可能沒有底半部C.底半部支持Tasklet,工作隊列,軟中斷三種機(jī)制D. Tasklet方法可以被睡眠20. 有關(guān)Linux內(nèi)核裁剪下列說法錯誤的是A .可以使用make menuconfig命令進(jìn)行內(nèi)核的配置B. 所有的配置項都可以按以編譯入內(nèi)核,編譯成模塊,不編譯三種方式配置C. 使用make zImage命令會編譯生成內(nèi)核鏡像文件zImageD. 嵌入式Linux內(nèi)

8、核編譯時應(yīng)該采用交叉編譯器1. 簡述使用Linux的socket建立UDP服務(wù)端程序的步驟及相關(guān)函數(shù)。(10分) 答:(1)創(chuàng)建UDP套接字(2)捆綁服務(wù)器端口到套接字(3)把套接字換成監(jiān)聽套接字(4 )接收用戶的連接,發(fā)送應(yīng)答(5 )停止服務(wù)2. 嵌入式Linux開發(fā)中經(jīng)常使用NFS,使得開發(fā)變得更加簡便。請問在已經(jīng)具有支持NFS的內(nèi)核的嵌入式Linux開發(fā)平臺上怎么配置NFS服務(wù),請寫出必要的步驟?( 7 分)答:1)配置NFS服務(wù)器要配置NFS服務(wù)器,可以通過使用文本編輯器(如 vi或gedit )修改配置文件/etc/exports的方法來完成。在每次改變/etc/exports 的時

9、候,必須把改變通知給 NFS守護(hù)進(jìn)程,或使用以下命 令來重新載入配置文件:/sbin/service nfs reload2)啟動和停止NFS服務(wù)要啟動或停止NFS服務(wù),必須以root登錄并使用以下命令來啟動NFS守護(hù)進(jìn)程,其命令格式如下:/sb in /service nfs start | stop要啟動NFS,在“ #”提示符下鍵入以下命令行:/sbi n/service nfs start該命令在執(zhí)行過程中會顯示啟動過程是否正確。要停止NFS,則在“ #”提示符下鍵入以下命令行:/sb in /service nfs stop還可以使用以下命令來查看 NFS守護(hù)進(jìn)程的狀態(tài):/sbi n

10、/service nfs status3請描述建立一個嵌入式開發(fā)平臺的步驟。(13分)答:(1)連接主機(jī)和目標(biāo)板(2)使用flash工具燒寫 bootloader(3)配置并啟動主機(jī)的 bootp服務(wù)(4) 配置并啟動主機(jī)的tftp服務(wù)(5)使用tftp下載內(nèi)核及根文件系統(tǒng)鏡像到目標(biāo)板,重啟目標(biāo)板(6)配置并啟動NFS服務(wù)(7) 在目標(biāo)板使用 mou nt掛載主機(jī)的目錄(8 )再次使用bootp命令確認(rèn)bootp服務(wù)是否建立,使用tftp命令確認(rèn)tftp服務(wù)建立。(9)將內(nèi)核鏡像和根文件系統(tǒng)cp到tftp根目錄。(10 )重啟目標(biāo)板,確認(rèn)嵌入式linux正常啟動。int globalmem_o

11、pen(struct inode *inode, struct file *filp)/*將設(shè)備結(jié)構(gòu)體指針賦值給文件私有數(shù)據(jù)指針*/filp-private_data =( 1)globalmem_devp;return 0;/*文件釋放函數(shù)*/int globalmem_release(struct inode *inode, struct file *filp)return 0;/* ioctl設(shè)備控制函數(shù) */static int globalmem_ioctl(struct inode *inodep, struct file *filp, unsignedint cmd, un si

12、g ned long arg)struct globalmem_dev *dev = filp-private_data; /*獲得設(shè)備結(jié)構(gòu)體指針 */switch (cmd) case MEM_CLEAR:if (2)down interruptible(&dev-sem) / 獲取信號量retur n- ERESTARTSYS; memset(dev-mem, 0, GLOBALMEM_SIZE);(3) up(&dev-sem); / 釋放信號量prin tk(KERNNFO globalmem is set to zeron);break;default:return - EINVAL

13、;return 0;/*讀函數(shù)*/static ssize_t globalmem_read(struct file *filp, char _user *buf, size_t size,loff_t *ppos)un sig ned long p = *ppos;un sig ned int count = size;int ret = 0;struct globalmem_dev *dev = filp-private_data; /*獲得設(shè)備結(jié)構(gòu)體指針 */*分析和獲取有效的寫長度 */if (p = GLOBALMEM_SIZE)return cou nt ?- ENXIO: 0;i

14、f (cou nt GLOBALMEM_SIZE - p)count = GLOBALMEM_SIZE - p;if ( (2) down_interruptible(&dev-sem) return - ERESTARTSYS;/*內(nèi)核空間- 用戶空間*/if (4) copy_to_user(buf, (void*)(dev-mem + p), coun t) ret =- EFAULT;else (5)*ppos+=count;ret = count;printk(KERNNFO read %d bytes(s) from %dn, count, p);(3) up(& dev-sem)

15、; /釋放信號量return ret;/*寫函數(shù)*/static ssize_t globalmem_write(struct file *filp, const char _user *buf,size_t size, loff_t *ppos)un sig ned long p =*ppos;un sig ned int count = size;int ret = 0;struct globalmem_dev *dev = filp-private_data; /*獲得設(shè)備結(jié)構(gòu)體指針 */*分析和獲取有效的寫長度 */if (p = GLOBALMEM_SIZE)return cou n

16、t ?- ENXIO: 0;if (cou nt GLOBALMEM_SIZE - p)count = GLOBALMEM_SIZE - p;if ( (2)down interruptible.(&dev-sem) / 獲得信號量return - ERESTARTSYS;/*用戶空間- 內(nèi)核空間*/if (6) copy from user(dev-mem + p, buf, count)ret =- EFAULT;else (5)*ppos+=count;ret = count;printk(KERN_INFO written %d bytes(s) from %dn, count, p)

17、;(3)up(&dev-sem); /釋放信號量return ret;/*文件操作結(jié)構(gòu)體*/static const struct file_operati ons globalmem_fops =.ow ner = THIS_MODULE,.llseek = globalmem_llseek,.read = globalmem_read,.write = globalmem_write,.ioctl = globalmem_ioctl,.ope n = globalmem_ope n,.release = globalmem_release,;/*初始化并注冊cdev*/static voi

18、d globalmem_setup_cdev(struct globalmem_dev *dev, int in dex)int err, dev no = MKDEV(globalmem_major, i ndex);cdev_init(7) &dev-cdev, (8)&globalmem_fops);dev-cdev.ow ner = THIS_MODULE;dev-cdev.ops =(9) &globalmem_fops;err = (10 ) _cdev_add(& dev-cdev, dev no, 1);if (err)prin tk(KERN_NOTICE Error %d addi ng LED%d, err, i ndex);/*設(shè)備驅(qū)動模塊加載函數(shù)*/int globalmem_i nit(void)int result;dev_t devno = MKDEV(globalmem_major, 0);/*申請設(shè)備號*/if (globalmem_major)result = ( 11)register_chrdev_region(d

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論