版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、HJ整理11 什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)和普通計(jì)算機(jī)系統(tǒng)的區(qū)別是什么?舉例說明。答:問題一:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)為基礎(chǔ),其軟硬件可裁剪配置,對功能、可靠性、成本、體積、功耗有嚴(yán)格約束的一種專用計(jì)算機(jī)系統(tǒng).問題二:比較項(xiàng)目嵌入式系統(tǒng)普通計(jì)算機(jī)系統(tǒng)引導(dǎo)代碼BootLoader引導(dǎo),針對不同電路進(jìn)行移植主板的BIOS引導(dǎo)OSWindowsCE、VxWorks、Linux等,需要移植Windows、Linux,不移植驅(qū)動(dòng)程序每個(gè)設(shè)備都必須針對電路板進(jìn)行開發(fā)OS中含有大多數(shù),直接下載協(xié)議棧移植OS或者第三方供應(yīng)商提供開發(fā)環(huán)境借助服務(wù)器進(jìn)行交叉編譯在本機(jī)可開發(fā)調(diào)試仿真器需要不需要1-2 簡
2、述嵌入式系統(tǒng)的構(gòu)成答:硬件微處理器嵌入式系統(tǒng)的控制核心外圍電路嵌入式系統(tǒng)的內(nèi)存、I/O端口、復(fù)位電路、電源等外設(shè)USB、LCD、鍵盤等軟件設(shè)備驅(qū)動(dòng)接口負(fù)責(zé)嵌入式系統(tǒng)與外設(shè)的信息交互實(shí)時(shí)操作系統(tǒng)包括與硬件相關(guān)的底層軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等可編程應(yīng)用接口為編制應(yīng)用程序提供各種編程接口庫應(yīng)用軟件13答:R13:也記作SP,在ARM指令集中雖然沒有強(qiáng)制,但是通常用于堆棧指針SP;在Thumb指令集中強(qiáng)制其作為堆棧指針。R14:也記作程序連接寄存器LR(Link Register),用于保存子程序調(diào)用或異常中斷處理返回時(shí)程序的返回地址。R15:也記作程序計(jì)數(shù)器PC
3、,用于標(biāo)示下一條將要執(zhí)行的指令地址.CPSR:程序狀態(tài)寄存器,包含條件標(biāo)識(shí)位、中斷標(biāo)識(shí)位、當(dāng)前處理器模式等狀態(tài)和控制位.SPSR:備份的程序狀態(tài)寄存器。在異常中斷處理過程中,用于保存被中斷處理程序的執(zhí)行現(xiàn)場和處理器狀態(tài)。1-4答:(1)復(fù)位異常中斷:當(dāng)系統(tǒng)上電、復(fù)位、軟件復(fù)位時(shí)產(chǎn)生該類型中斷。(2)未定義指令異常中斷:當(dāng)ARM處理器或系統(tǒng)中的協(xié)處理器認(rèn)為當(dāng)前指令未定義時(shí),產(chǎn)生該中斷。通常利用該中斷模擬浮點(diǎn)向量運(yùn)算。(3)軟件中斷:可用于用戶模式下特權(quán)操作的調(diào)用,既可以是系統(tǒng)功能,也可以是用戶自定義的功能.(4)指令預(yù)取中止異常中斷:如果處理器預(yù)取的指令地址不存在,或者該地址不允許當(dāng)前指令訪問,
4、產(chǎn)生該類型的中斷。(5)數(shù)據(jù)訪問中止異常中斷:如果數(shù)據(jù)訪問的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,則產(chǎn)生該中斷.(6)外部中斷:當(dāng)處理器的外部中斷請求引腳有效,而且CPSR的I控制位被清除時(shí),產(chǎn)生該類型的中斷(7)快速外部中斷:當(dāng)處理器的快速中斷請求引腳有效,而且CPSR的F控制位被清除時(shí),產(chǎn)生該中斷.15答:(1)ADRR0, TABLE(2) ADRR1, DATALDRR0, R1(3)LDRR0, =DATA(4)TABLEEQU 800MOVR0, TABLE(5)TABLESPACE201-6答:R0=DATA1這組數(shù)據(jù)在存儲(chǔ)器中所存放的起始地址,由編譯器分配;R1=0x0
5、C0D0E0F; R2=0xF;R3=0x8020;0x8020=R117答:AREASWITCH, CODE, READONLYENTRYANDR2, R0, 0x3;R2ß R0的低兩位MOVR2, R2, LSL 30;將低兩位移動(dòng)到高兩位BICR0, R0, 0x3;將R0的低兩位清0ANDR3, R1, 0xC0000000;R3ßR1的高兩位MOVR3, R3, LSR 30;將高兩位移動(dòng)到低兩位BICR1, R1, 0xC0000000;將R1的高兩位清0ORRR0, R0,R3;R1的高兩位寫入到R0的低兩位ORRR1, R1, R2;R0的低兩位寫入到R1
6、的高兩位END18答:/ main。cInclude “stdio。h”externintsum(int num, int n);main()intarray10=20, 30, 23, 5,15,64,6,15,72,73 ;intHE=sum(array, 10);printf(“The sum of array is d”, HE);/huibian。sAREAASM, CODE, READONLYEXPORT sumsumMOVR2, #0LOOPLDRR3, R0, 4ADDR2, R2, R3SUBR1, R1, 1CMPR1, 0BNELOOPMOVR0, R2MOVPC, LR
7、END19答:(1)要求很強(qiáng)的實(shí)時(shí)性,支持快速而明確的上下文切換(2)具有高度的可裁剪性,支持動(dòng)態(tài)鏈接,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所需要的功能(3)具有快速有效的中斷和異常處理能力(4)具有優(yōu)化的浮點(diǎn)支持(5)能夠進(jìn)行動(dòng)態(tài)的內(nèi)存管理21 略.2-2 略23略24按照要求完成以下操作。(1)創(chuàng)建文件夾test。 mkdir test(2)進(jìn)入test目錄. cd test(3)在test目錄下用Vi編輯一個(gè)新文件test。c,其內(nèi)容如下:include stdio.hintmain() int a,i=0; a=0; while(i<20)a=a+3;printf(”the value
8、 of a=d n",a);sleep(1);i=i+1; return 0; vi test.c(4)保存退出test.c。(5)按照下面的要求編譯test。c.使用gcc o test。o test.c編譯,生成test.o。使用gcc g o gtest。o test.c編譯,生成gtest.o。比較gtest。o 與 test.o的大小,哪個(gè)大?為什么?gtest.o 比 test。o 大,因?yàn)榍罢呒尤肓艘恍┱{(diào)試信息。(6)執(zhí)行g(shù)test。o與test。o。25使用GDB調(diào)試上面的程序gtest.o。(1)進(jìn)入GDB調(diào)試環(huán)境,讀入調(diào)試程序。 gdb gtest。o(2)列出源
9、文件內(nèi)容.list(3)在程序a=0;處設(shè)置一個(gè)斷點(diǎn)。 breakpoint (4)在程序printf(”the value of a=d n”,a);處設(shè)置一個(gè)斷點(diǎn).(5)執(zhí)行該程序。 run (6)查看變量a的值. print a(7)查看變量a的類型。(8)執(zhí)行下一個(gè)源程序行,從而執(zhí)行其整體中的一個(gè)函數(shù)。(9)從斷點(diǎn)開始繼續(xù)執(zhí)行到下一個(gè)斷點(diǎn)。(10)查看變量a的值,看看a是否有變化?(11)不停地執(zhí)行continue,直到程序結(jié)束。(12)退出GDB。26根據(jù)要求編寫Makefile文件.五個(gè)文件分別是main.c、display1。h、display1。c、display2.h、dis
10、play2。c,具體的代碼如下:#include ”stdio。h”int main(int argc,char *argv) display1 (”hello"); display2("hello”);display1。hvoid display1 (char print_str);display2。hvoid display2 (char print_str);display1.cinclude "display1。h”void display1(char print_str)printf(”This is display1 print sn”,print_s
11、tr);display2.cinclude ”display2。h”void display2 (char print_str) printf(”This is display2 print sn”,print_str);(1)如果上述文件在同一個(gè)目錄,請編寫Makefile文件。(2)如果按照下面的目錄結(jié)構(gòu)存放文件,請編寫Makefile文件。|bin存放生成的可執(zhí)行文件|-obj存放。o文件-include存放display1。h和display2。h文件|src存放main。c、display1。c、display2。c和Makefile(3)如果按照下面的目錄結(jié)構(gòu)存放文件,請編寫Mak
12、efile文件。-bin存放生成的可執(zhí)行文件|-obj存放。o文件|-include存放display1.h和display2。h文件-src存放main.c和Makefile-src/display1存放display1.c和Makefile-src/display2存放display2。c和Makefilesrc下面的makefileSRC_DIR=。INC_DIR=。./includeOBJ_DIR=./objBIN_DIR=./bininclude $(SRC_DIR)/test/makefileinclude $(SRC_DIR)/test1/makefiledisplay1下面的m
13、akefileall:(OBJ_DIR)/display1.o (OBJ_DIR)/display1。ogcc -o (BIN_DIR)/display1 display2下面的makefile(OBJ_DIR)/display2。o:(SRC_DIR)/display2/display.cgcc -c < o 3-1答:1.建立宿主機(jī)開發(fā)環(huán)境,包括操作系統(tǒng)及編譯器等2配置宿主機(jī)相關(guān)服務(wù)及軟件,如minicom、網(wǎng)絡(luò)等3建立引導(dǎo)加載程序BootLoader4移植內(nèi)核kernel5建立根文件系統(tǒng)root6建立應(yīng)用程序的Flash磁盤分區(qū)7開發(fā)應(yīng)用程序8燒寫內(nèi)核、根文件系統(tǒng)和應(yīng)用程序9發(fā)布產(chǎn)
14、品3-2 答:Stage1:(1)硬件設(shè)備初始化。(2)為加載BootLoader的Stage2準(zhǔn)備RAM空間。(3)復(fù)制BootLoader的Stage2到RAM空間中.(4)設(shè)置好堆棧。堆棧指針的設(shè)置是為執(zhí)行C語言代碼做好準(zhǔn)備.Stage2:(1)初始化本階段要使用到的硬件設(shè)備。(2)檢測系統(tǒng)內(nèi)存映射(Memory Map)。(3)將內(nèi)核映像和根文件系統(tǒng)映像從Flash存儲(chǔ)器上讀到RAM空間中。(4)為內(nèi)核設(shè)置啟動(dòng)參數(shù).(5)調(diào)用內(nèi)核。33 答:1。 數(shù)據(jù)結(jié)構(gòu)file_operations2。設(shè)備注冊:驅(qū)動(dòng)程序模塊通過函數(shù)register_chrdev來完成內(nèi)核的注冊.3。設(shè)備卸載:驅(qū)動(dòng)程
15、序模塊通過函數(shù)unregister_chrdev來完成內(nèi)核的卸載。4打開/釋放設(shè)備:驅(qū)動(dòng)程序通過函數(shù)open來完成設(shè)備的打開。驅(qū)動(dòng)程序通過函數(shù)release來完成設(shè)備的釋放5讀寫設(shè)備:read函數(shù)將數(shù)據(jù)從內(nèi)核復(fù)制到應(yīng)用程序空間,write函數(shù)則將數(shù)據(jù)從應(yīng)用程序空間復(fù)制到內(nèi)核。6讀寫以外的I/O操作:驅(qū)動(dòng)程序模塊通過ioctl函數(shù)來完成讀寫以外的I/O操作,如鎖設(shè)備等34 答:(1)register_chrdev(0,"demo”,demo_fops);(2)mknod /dev/demo c 220 0(3)insmod demo.o41參見exam4-14-2參見exam4243參
16、見exam4-351 略52 略5-3C:Qt4.3。2sqlite3 exam.dbSQLite version 3。5。4Enter ”。help" for instructionsEnter SQL statements terminated with a ";”sqlite create table book(ID Integer primarykey,Name varchar(20),Type varchar(10),Count Integer);sqlite> insert into book values(1,SQLite3,Database,10);s
17、qlite insert into book values(2,Qt4,'GUI,20);sqlite select from book;1|SQLite3|Database102|Qt4GUI20sqlite5-4include<stdio.h>includesqlite3。hint main()sqlite3 db=NULL;int rc;char *Errormsg;int nrow;int ncol;char *Result;int i=0;rc=sqlite3_open(”exam。db",db);if(rc)fprintf(stderr,”cant o
18、pen database:sn”, sqlite3_errmsg(db);sqlite3_close(db);return 1;elseprintf(”open database successly!n”);char sql=”create table book(ID Integer primary key,Name varchar(20),Type varchar(10),Count Integer)";sqlite3_exec(db,sql,0,0,Errormsg);sql=”insert into book values(1,SQLite3',Database,10)”;sqlite3_exec(db,sql,0,0,&Errormsg);sql=”insert into book values(2,Qt4,GUI',20);";sqlite3_exec(db,sql,0,0,Errormsg);sql=”select * from book”;sqlite3_get_table(d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外協(xié)電工合同范例
- 舊房瓷磚保潔合同范例
- 單位管道維修合同范例
- 勞動(dòng)合同范例洛陽
- 土地上房屋轉(zhuǎn)讓合同范例
- 企業(yè)支付貨款合同范例
- 學(xué)校拉贊助合同范例
- 助貸服務(wù)合同范例
- 政府購買醫(yī)療物資合同范例
- 國家制式合同范例
- 介入治療并發(fā)癥
- 鑄牢中華民族共同體意識(shí)-形考任務(wù)1-國開(NMG)-參考資料
- 眼科主任年終總結(jié)
- 債務(wù)優(yōu)化服務(wù)合同范例
- 2024-2030年中國瑜伽培訓(xùn)行業(yè)運(yùn)營模式及投資戰(zhàn)略規(guī)劃分析報(bào)告
- 專題19 重點(diǎn)用法感嘆句50道
- 2024-2025學(xué)年統(tǒng)編版五年級語文上冊第七單元達(dá)標(biāo)檢測卷(原卷+答案)
- 2024年光伏住宅能源解決方案協(xié)議
- 【初中數(shù)學(xué)】基本平面圖形單元測試 2024-2025學(xué)年北師大版數(shù)學(xué)七年級上冊
- 江蘇省蘇州市2023-2024學(xué)年高二上學(xué)期1月期末物理試卷(含答案及解析)
- 城鎮(zhèn)燃?xì)饨?jīng)營安全重大隱患判定及燃?xì)獍踩芾韺n}培訓(xùn)
評論
0/150
提交評論