




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
簡答題及應用題:什么是嵌入式系統(tǒng)?主要有什么特點?答:以應用為中心,以計算機技術為基礎的,并且軟件硬件是可剪裁的,能滿足應用系統(tǒng)對功能、可靠性、成本、體積、功耗等指標的嚴格要求的專用計算機系統(tǒng)。他可以實現(xiàn)對其他設備的控制、監(jiān)視或者管理等功能。及通用的計算機系統(tǒng)相比,特點為:面向特定應用,一般都有實時要求;集先進性的計算機技術、半導體工藝、電子技術與通信網(wǎng)絡技術于一體的并且在不斷創(chuàng)新的知識集成系統(tǒng);嵌入式系統(tǒng)是與具體應用對象有機結合在一起,因而其升級換代也是與具體的產(chǎn)品同步進行的。嵌入式系統(tǒng)的軟硬件設計著重于高效率性。在最大限度滿足應用需求的前提下,降低成本是必須要考慮的主要問題。嵌入式系統(tǒng)軟件一般都固化在存儲器芯片中。嵌入式系統(tǒng)有哪幾個部分?答:嵌入式系統(tǒng)通常由嵌入式處理機、嵌入式外圍設備、嵌入式操作系統(tǒng)與嵌入式應用軟件等幾大部分組成。3、嵌入式操作系統(tǒng)的作用是什么?*實際是一組軟件模塊集合滿足多任務處理、穩(wěn)定運行、安全可靠、占用系統(tǒng)資源少、特有的實時事件處理、便于維護與管理、簡潔良好的用戶界面什么是Linux?什么是嵌入式Linux?答:嚴格來講,Linux是指由Linux本人維護并不斷更新的內核。 一個嵌入式Linux系統(tǒng)指的是一個基于Linux內核的,但不包含有關這個內核的任何專業(yè)的庫或是用戶工具的嵌入式系統(tǒng)。用Linux內核構建嵌入式操作系統(tǒng)有什么優(yōu)勢(優(yōu)良特性)?答:(1)程度代碼是可以獲取的,可靠度高;有完整的源碼,軟件豐富并且免費;得到眾多硬件生產(chǎn)家的廣泛支持;包括cpu、計算機外圍設備完善的通信協(xié)議、軟件標準與文件管理機制;提供完全免費且優(yōu)秀的開發(fā)工具;廣泛的社群支持無需購買licence,是免費的;不依賴特定廠商、供應商;成本相對低廉。RTOS(嵌入式操作系統(tǒng))強調的實時是什么概念?及中斷的關系?答:實時指的是特定操作所消耗的時間(以及空間)的上限是可預知的。操作系統(tǒng)能夠在規(guī)定響應時間內完成客戶服務程序。中斷程序響應中斷并完成是在固定時間內。什么是實時Linux?涉及到哪些軟硬件內容?答:實時Linux(RT-Linux)通過在Linux內核及硬件中斷之間增加一個精巧的可搶先的實時內核,把標準的Linux內核作為實時內核的一個進程及用戶進程一起調度,標準的Linux內核的優(yōu)先級最低,可以被實時進程搶斷。正常的Linux進程仍可以在Linux內核上運行,這樣既可以使用標準分時操作系統(tǒng)即Linux的各種服務,又能提供低延時的實時環(huán)境。它在硬件上涉及到硬件中斷,軟件上涉及到對高優(yōu)先級的實時硬件中斷的快速響應。能在規(guī)定的時間內完成對突發(fā)事件的處理的Linux系統(tǒng);軟件:中斷服務程序、進程調度程序,硬件:嵌入式系統(tǒng)所采用的中斷管理硬件。試簡要說明Linux內核構成,并簡要說明各部分的功能?答:MMU:內存管理單元,完成地址映射(應用虛擬地址方式)VFS:虛擬文件管理系統(tǒng),提供了統(tǒng)一管理計算機資源的途徑。使統(tǒng)一規(guī)范計算機資源的使用格式成為可能,方便傳輸SCHED:進程調用單元。支持多任務運行。利用軟件中斷的特點,將CPU的時間線劃分給各個任務,完成多任務管理IPC:進程間通信單元。實現(xiàn)多個不同程序在運行時可以進行數(shù)據(jù)交換、通信。NET:網(wǎng)絡。網(wǎng)絡不做為通用設備,以特定工作單元存在。負責計算機系統(tǒng)及其他計算機相互通信的接口。通??刹捎媚膸追N方式來開發(fā)嵌入式Linux系統(tǒng)?給出示意圖。答:方式有:(1)連接型(宿主機/目標板鏈接開發(fā))(2)可移動連接型(利用可移動的存儲器作為宿主機/目標板之間的中介)(3)標準化(在開發(fā)板上進行獨立開發(fā))SHAPE主機跨平臺開發(fā)環(huán)境目標板引導加載程序主機跨平臺開發(fā)環(huán)境目標板引導加載程序內核根文件系統(tǒng)主機跨平臺開發(fā)環(huán)境(1)目標板引導加載程序第二引導加載程序內核根文件系統(tǒng)(2)目標板引導加載程序內核完整的根文件系統(tǒng)固有的開發(fā)環(huán)境(3)為什么要建立交叉開發(fā)平臺?在何種情形下可以不必建立?答:嵌入式系統(tǒng)的構造決定。嵌入式處理器多為專用的cpu,1、必須將用C編寫的程序編譯成能在該專用平臺上運行的機器碼。2、C語言庫是必需的,必需提供能在專用cpu上運行的庫的二進制代碼。以上兩點要求有這么一種編譯工具能夠實現(xiàn)兩種CPU之間的交叉。當執(zhí)行應用程序的平臺與用來建立應用程序的平臺相同時就可以不建立交叉開發(fā)平臺。試簡要敘述GNU及其所提供的開發(fā)工具鏈。答:GNU是“GNU'sNotUnix”的遞歸縮寫,它是一個自由軟件工程項目組織。提供各種開源代碼。提供一整套的開發(fā)工具鏈包括:GNU工具鏈基礎,內核頭文件安裝程序,Binutils(二進制工具)的安裝程序,引導編譯器安裝程序,C庫安裝程序,全編譯器安裝程序,完成工具鏈的設置。試解釋make與makefile的關系?簡單舉例說明。答:使用make就必須寫makefile文件,它描述工程中文件之間的關系,提供更新每個文件的命令。Makefile就是一組規(guī)則,它指導make程序的運行,告訴make需要做什么,多數(shù)情況是怎樣編譯與鏈接一個程序。目標與目標運行規(guī)則一旦建立,make就會按此進行工作。 (此段為Makefile)makeclean (此為make執(zhí)行上述Makefile規(guī)則)GCC是什么?為什么說它是必不可少的?答:GCC是由GNU組織開發(fā)的一個免費的C/C++編譯工具,由它將高級語言轉換為機器語言。因為GCC是一個交叉平臺的編譯器,幾乎所有主流CPU處理平臺上目標代碼的變換,它有力的支持了Linux系統(tǒng)的發(fā)展。沒有就無法獲得可執(zhí)行程序。C庫是什么概念?在嵌入式Linux系統(tǒng)中對此有何要求?答:提供C語言里包含常用函數(shù)的源代碼。在嵌入式Linux系統(tǒng)中是必不可少的。否則無法獲得可執(zhí)行程序的完整代碼。因為操作系統(tǒng)是用C語言編寫的。在設計嵌入式Linux系統(tǒng)時為什么要配置內核?可用哪幾種命令來配置?答:針對嵌入式系統(tǒng),內核需要知道運行在怎么樣的平臺上,它要管理的硬件單元,這就需要我們重新組裝內核來達成上述目標。因為完整的Linux的內核比較龐大,不適合嵌入式系統(tǒng)這樣的對速度、容量要求苛刻的系統(tǒng)上面運行,因此我們需要去掉那些及目標系統(tǒng)無關的、只編譯系統(tǒng)需要的功能的代碼。 我們通常使用內核配置命令makeconfig(字符界面);makeoldconfig;makemenuconfig(文本圖形界面);makexconfig(x-window圖形界面)來配置內核。通常使用后兩個命令,在圖形界面下比較直觀。顯然,在makefile中詳細定義了界面是如何生成的,以及配置與編譯內核的規(guī)則。此外還有makeoldconfig命令。重新編譯內核應考慮哪幾個方面的因素?模塊是什么概念?答:建立依存關系,建立內核,建立模塊。模塊的概念:可動態(tài)、靜態(tài)加載的二進制代碼。什么是根文件系統(tǒng)?Linux內核啟動及根文件系統(tǒng)的關系?答:根文件系統(tǒng)是Linux系統(tǒng)的安裝點,應該包括支持Linux系統(tǒng)正常運行的基本內容,包含著系統(tǒng)使用的軟件與庫,以及所有用來為用戶提供支持構架與用戶使用的應用軟件。Linux內核在運行期必須要用到的存儲代碼體系,及內核同時存在,只在內核運行時才存在于內存中。根文件系統(tǒng)必須要能夠提供Linux內核啟動過程中要加載的模塊在構建嵌入式Linux系統(tǒng)時,對根文件系統(tǒng)的目錄項有什么要求?答:構建嵌入式操作系統(tǒng)時應包括的目錄項有:/bin;/boot;/dev;/ect;/home;/lib;/mnt;/opt;/proc;/root;/sbin;/tmp;/usr;/var 其中/bin;/dev;/ect;/lib;/proc;/sbin;/tmp;/usr;/var這9項必須包含,另外5項可有可無。Linux內核在目標板上啟動過程(簡要敘述)?需要考慮哪些因素?答:1、通過合適的bootloader找到內核源代碼,加載到內存2、內核源代碼開始進行初始化3、內核源代碼初始化完畢,開始調用與用戶有關的進程。用戶進程初始化選用與目標板相配的啟動裝載程序如何理解文件系統(tǒng)?常用的文件系統(tǒng)有哪幾種?答:文件系統(tǒng)是對一個存儲設備上的數(shù)據(jù)與元數(shù)據(jù)進行組織的機制另一種看待文件系統(tǒng)的方式是把它看作一個協(xié)議。網(wǎng)絡協(xié)議(比如IP)規(guī)定了互聯(lián)網(wǎng)上傳輸?shù)臄?shù)據(jù)流的意義,同樣,文件系統(tǒng)會給出特定存儲媒體上數(shù)據(jù)的意義。常用的文件系統(tǒng):CRAMFS;JFFS2;Ext2overNFTL;Ext3overNFTL;Ext2overRAMdisk;EXT4。什么是VFS?它在Linux內核中的主要作用是什么?答:VFS(虛擬文件系統(tǒng))是物理文件系統(tǒng)及服務之間的接口層。它對Linux的每個文件系統(tǒng)的所有細節(jié)進行抽象,使得不同的文件系統(tǒng)在Linux核心以及系統(tǒng)中運行的其它進程看來,都是相同的。作用為:記錄可用的文件系統(tǒng)類型,將設備同對應的文件系統(tǒng)聯(lián)系起來,處理一些面向文件的通用操作,涉及到針對文件系統(tǒng)的操作時,VFS把它們影射到及控制文件、目錄以及inode。22、內核模塊的編程與普通程序的編程有哪些區(qū)別?(6分)參考答案:主要區(qū)別為:(1)因為內核模塊運行在內核態(tài),所以包含的頭文件是內核程序相關的頭文件,而普通程序則包含的是glibc的頭文件(1分)(2)模塊程序沒有main函數(shù),而是通過init_module函數(shù)在加載后初始化。(2分)(3)模塊程序內可直接調用內核函數(shù),而普通程序則只能通過系統(tǒng)調用使用內核函數(shù)。(2分)(4)普通用戶程序可運行多次,而內核函數(shù)通常則只能加載1次(1分)。23、什么是交叉編譯?為什么要采用交叉編譯(5分)參考答案:所謂交叉編譯,是指在一個平臺上編譯生成在另一個平臺上運行的可執(zhí)行程序。(3分)。之所以采用交叉編譯,是因為目標平臺上不具備直接運行開發(fā)環(huán)境的條件。(2分)24、簡述嵌入式Linux系統(tǒng)的初始化過程(5分)參考答案:嵌入式Linux系統(tǒng)開機首先運行BootLoader,然后由BootLoader引導啟動內核,由內核檢查與初始化硬件設備,載入設備的驅動程序模塊,安裝root文件系統(tǒng),然后內核將啟動一個名為init的進程(2分)。在init運行完成并啟動其它必要的后續(xù)進程后,系統(tǒng)開始運行,引導過程結束。init進程啟動時需要讀取inittab配置文件,該文件確定init在系統(tǒng)啟動與關機時的工作特性。(3分)應用題1、管道是Linux中進程通信的一種方式,以下程序在父進程與子進程之間創(chuàng)建了一個管道,然后建立它們之間的通信,實現(xiàn)父進程向子進程寫數(shù)據(jù)的功能。說明標號所在行代碼的功能。#include<unistd.h>#include<sys/types.h>#include<errno.h>#include<stdio.h>#include<stdlib.h>intmain(){ intpipe_fd[2]; pid_tpid; charbuf_r[100]; char*p_wbuf; intr_num; memset(buf_r,0,sizeof(buf_r));(1) if(pipe(pipe_fd)<0)(2) { printf("pipecreateerror\n"); return-1; } if((pid=fork())==0)(3) { printf("\n"); close(pipe_fd[1]);(4) sleep(2); if((r_num=read(pipe_fd[0],buf_r,100))>0)(5){ printf("%dnumbersreadfromthepipeis%s\n",r_num,buf_r); } close(pipe_fd[0]);(6) exit(0); } elseif(pid>0)(7) { close(pipe_fd[0]);(8) if(write(pipe_fd[1],"Hello",5)!=-1)(9) printf("parentwrite1success!\n"); if(write(pipe_fd[1],"Pipe",5)!=-1) printf("parentwrite2success!\n"); close(pipe_fd[1]);(10) sleep(3); waitpid(pid,NULL,0); exit(0); }}答案要點:(1)將數(shù)據(jù)緩沖區(qū)清0(2)創(chuàng)建管道(3)創(chuàng)建子進程(4)關閉子進程寫描述符(5)子進程讀取管道內容(6)關閉子進程讀描述符(7)父進程運行控制語句(8)關閉父進程的讀描述符(9)將數(shù)據(jù)寫入緩沖區(qū)(10)關閉父進程寫描述符2、由于BootLoader的實現(xiàn)依賴于CPU的體系結構,因此大多數(shù)BootLoader都分為stage1與stage2兩大部分。依賴于CPU體系結構的代碼,比如設備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達到短小精悍的目的。而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)給復雜的功能,而且代碼會具有更好的可讀性與可移植性。請根據(jù)你對嵌入式系統(tǒng)中bootloader的理解,簡要設計一下stage1與stage2需要完成的功能。參考答案:BootLoader的stage1通常包括以下步驟(以執(zhí)行的先后順序):(3分)基本硬件設備初始化。為加載BootLoader的stage2準備RAM空間??截怋ootLoader的stage2到RAM空間中。設置好堆棧。跳轉到stage2的C入口點。BootLoader的stage2通常包括以下步驟(以執(zhí)行的先后順序):(3分)初始化本階段要使用到的硬件設備。檢測系統(tǒng)內存映射(memorymap)。將kernel映像與根文件系統(tǒng)映像從flash上讀到RAM空間中。為內核設置啟動參數(shù)。調用內核。3、Qt/Embedded對嵌入式GUI提供了強大的支持,信號與插槽機制是QT的核心機制,使用QT實現(xiàn)如下界面的登陸程序,其原代碼如下所示,請回答如下問題.1)什么是Qt中的信號插槽機制?(3分)2)應用程序中用到了哪些控件,列舉2個并說明該控件的特點?(4分)3)根據(jù)注釋完成程序中相應的語句?(4分)#include<QtGui/QtGui>#include"window.h"CWinDlg::CWinDlg(QWidget*parent):QDialog(parent){ setWindowTitle("Example");/*設置窗口的標題*/ Edit1=newQLineEdit;/*創(chuàng)建一個Edit1與一個Buttion1*/ Button1=newQPushButton("OK"); Edit1->setEchoMode(QLineEdit::Password); QVBoxLayout*Layout1=newQVBoxLayout;/*創(chuàng)建一個布局對像Layout1*/ Layout1->addWidget(Edit1);/*把Edit1加入到Layout1*/ Layout1->addWidget(Button1);/*把Button1加入到Layout1*/ (1)setLayout(Layout1);/*應用Layout1布局*/ (2)connect(Button1,SIGNAL(clicked()),this,SLOT(function()));/*建立Signal-Slot,使button1及function()相關聯(lián)*/}CWinDlg::~CWinDlg(){ deleteEdit1;/*刪除Edit1及Button1對象*/ deleteButton1;}voidCWinDlg::function(){ if(Edit1->text()=="example")/*如果Edit1輸入"example"*/ { /*顯示"Pass!"消息框*/ QMessageBox::warning(this,"warning","Pass!",QMessageBox::Yes); } else { /*顯示"Error!"消息框*/ QMessageBox::warning(this,"warning","Error!",QMessageBox::Yes); }}#include<QtGui/QtGui>#include"window.h"intmain(intargc,char*argv[]){ QApplicationapp(argc,argv);/*創(chuàng)建QT應用程序*/ CWinDlgdlg;/*創(chuàng)建窗口*/ returndlg.exec(); /*運行程序*/}答案要點:1)什么是Qt中的信號插槽機制?及回調函數(shù)機制有何不同?(3分)答案要點:回調函數(shù)機制是事先將一個回調函數(shù)指針傳遞給一個處理過程,當這個處理過程得到執(zhí)行時,回調預先定義好的回調函數(shù)以期實現(xiàn)激活其他處理程序的目的。不同及回調函數(shù)機制,Qt提供了信號與插槽機制,信號是一個特定的標識;一個槽就是一個函數(shù),及一般函數(shù)不同,槽函數(shù)既能與信號關聯(lián),當某個事件出現(xiàn)時,通過發(fā)送信號,可以將及之相關聯(lián)的槽函數(shù)激活,執(zhí)行相應代碼。2)應用程序中用到了哪些控件,列舉2個并說明該控件的特點?(4分)答案要點:應用程序中用到的控件有(1)文本框控件Edit,文本框控件主要用來顯示或接收用戶的輸入信息。(2)按鈕控件Button,按鈕控件主要響應用戶單擊功能。3)根據(jù)注釋完成程序中相應的語句?(4分)(1)setLayout(Layout1);(2)connect(Button1,SIGNAL(clicked()),this,SLOT(function()));4.在Linux操作系統(tǒng)下,完成下列任務:編程實現(xiàn)以下功能主程序hello.c(打印HelloWorld!)主程序通過頭文件hello.h調用message函數(shù)頭文件hello.h(聲明message函數(shù))message函數(shù)由message.c定義(打印Thisisamessage!)1、答:hello.c:#include<stdio.h>#include<stdlib.h>#include<string.h>#include"head.h"intmain(intargc,char*argv[]){
printf("HelloWorld!\n");
message();
return0;}head.h:voidmessage(void);message.c:#include<stdio.h>voidmessage
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈爾濱電力職業(yè)技術學院《BIM技術與軟件應用》2023-2024學年第二學期期末試卷
- 延安職業(yè)技術學院《中學生物教育技術》2023-2024學年第二學期期末試卷
- 西昌民族幼兒師范高等??茖W?!俄椖抗芾砼c案例分析》2023-2024學年第二學期期末試卷
- 杭州萬向職業(yè)技術學院《外科護理學2(含皮膚性病護理學)》2023-2024學年第二學期期末試卷
- 揚州大學《壓鑄成型工藝與模具設計》2023-2024學年第二學期期末試卷
- 惠州學院《教育大數(shù)據(jù)及其應用》2023-2024學年第二學期期末試卷
- 蘭州城市學院《數(shù)據(jù)分析與實踐》2023-2024學年第二學期期末試卷
- 方程的應用-銷售問題及變化率問題(小升初銜接)(教學設計)-2023-2024學年北師大版六年級下冊數(shù)學
- 濟源職業(yè)技術學院《工程項目管理與建設法規(guī)》2023-2024學年第二學期期末試卷
- 西安職業(yè)技術學院《國際貿易運輸與保險》2023-2024學年第二學期期末試卷
- 人體解剖生理學(第2版) 課件 第二章 細胞
- 教務主任在教務管理經(jīng)驗大會上發(fā)言稿
- 自動體外除顫器
- 《腦出血護理》課件
- 水手課件教學課件
- 《微生物學發(fā)展史》課件
- 網(wǎng)約車司機安全培訓
- DB52T 1566-2021 托幼機構消毒衛(wèi)生規(guī)范
- 非煤礦山復工復產(chǎn)安全培訓
- 我國科技型中小企業(yè)稅收優(yōu)惠政策激勵效應及優(yōu)化路徑研究的開題報告
- 電力局供電公司聘用合同樣本
評論
0/150
提交評論