嵌入式系統(tǒng)開發(fā)基礎—基于ARM微處理器和Linux操作系統(tǒng)的課后答案_第1頁
嵌入式系統(tǒng)開發(fā)基礎—基于ARM微處理器和Linux操作系統(tǒng)的課后答案_第2頁
嵌入式系統(tǒng)開發(fā)基礎—基于ARM微處理器和Linux操作系統(tǒng)的課后答案_第3頁
嵌入式系統(tǒng)開發(fā)基礎—基于ARM微處理器和Linux操作系統(tǒng)的課后答案_第4頁
嵌入式系統(tǒng)開發(fā)基礎—基于ARM微處理器和Linux操作系統(tǒng)的課后答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、HJ整理11 什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)和普通計算機系統(tǒng)的區(qū)別是什么?舉例說明。答:問題一:嵌入式系統(tǒng)是以應用為中心,以計算機為基礎,其軟硬件可裁剪配置,對功能、可靠性、成本、體積、功耗有嚴格約束的一種專用計算機系統(tǒng).問題二:比較項目嵌入式系統(tǒng)普通計算機系統(tǒng)引導代碼BootLoader引導,針對不同電路進行移植主板的BIOS引導OSWindowsCE、VxWorks、Linux等,需要移植Windows、Linux,不移植驅動程序每個設備都必須針對電路板進行開發(fā)OS中含有大多數,直接下載協(xié)議棧移植OS或者第三方供應商提供開發(fā)環(huán)境借助服務器進行交叉編譯在本機可開發(fā)調試仿真器需要不需要1-2 簡

2、述嵌入式系統(tǒng)的構成答:硬件微處理器嵌入式系統(tǒng)的控制核心外圍電路嵌入式系統(tǒng)的內存、I/O端口、復位電路、電源等外設USB、LCD、鍵盤等軟件設備驅動接口負責嵌入式系統(tǒng)與外設的信息交互實時操作系統(tǒng)包括與硬件相關的底層軟件、系統(tǒng)內核、設備驅動接口、通信協(xié)議、圖形界面、標準化瀏覽器等可編程應用接口為編制應用程序提供各種編程接口庫應用軟件13答:R13:也記作SP,在ARM指令集中雖然沒有強制,但是通常用于堆棧指針SP;在Thumb指令集中強制其作為堆棧指針。R14:也記作程序連接寄存器LR(Link Register),用于保存子程序調用或異常中斷處理返回時程序的返回地址。R15:也記作程序計數器PC

3、,用于標示下一條將要執(zhí)行的指令地址.CPSR:程序狀態(tài)寄存器,包含條件標識位、中斷標識位、當前處理器模式等狀態(tài)和控制位.SPSR:備份的程序狀態(tài)寄存器。在異常中斷處理過程中,用于保存被中斷處理程序的執(zhí)行現場和處理器狀態(tài)。1-4答:(1)復位異常中斷:當系統(tǒng)上電、復位、軟件復位時產生該類型中斷。(2)未定義指令異常中斷:當ARM處理器或系統(tǒng)中的協(xié)處理器認為當前指令未定義時,產生該中斷。通常利用該中斷模擬浮點向量運算。(3)軟件中斷:可用于用戶模式下特權操作的調用,既可以是系統(tǒng)功能,也可以是用戶自定義的功能.(4)指令預取中止異常中斷:如果處理器預取的指令地址不存在,或者該地址不允許當前指令訪問,

4、產生該類型的中斷。(5)數據訪問中止異常中斷:如果數據訪問的目標地址不存在,或者該地址不允許當前指令訪問,則產生該中斷.(6)外部中斷:當處理器的外部中斷請求引腳有效,而且CPSR的I控制位被清除時,產生該類型的中斷(7)快速外部中斷:當處理器的快速中斷請求引腳有效,而且CPSR的F控制位被清除時,產生該中斷.15答:(1)ADRR0, TABLE(2) ADRR1, DATALDRR0, R1(3)LDRR0, =DATA(4)TABLEEQU 800MOVR0, TABLE(5)TABLESPACE201-6答:R0=DATA1這組數據在存儲器中所存放的起始地址,由編譯器分配;R1=0x0

5、C0D0E0F; R2=0xF;R3=0x8020;0x8020=R117答:AREASWITCH, CODE, READONLYENTRYANDR2, R0, 0x3;R2ß R0的低兩位MOVR2, R2, LSL 30;將低兩位移動到高兩位BICR0, R0, 0x3;將R0的低兩位清0ANDR3, R1, 0xC0000000;R3ßR1的高兩位MOVR3, R3, LSR 30;將高兩位移動到低兩位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)要求很強的實時性,支持快速而明確的上下文切換(2)具有高度的可裁剪性,支持動態(tài)鏈接,能夠通過裝卸某些模塊來達到系統(tǒng)所需要的功能(3)具有快速有效的中斷和異常處理能力(4)具有優(yōu)化的浮點支持(5)能夠進行動態(tài)的內存管理21 略.2-2 略23略24按照要求完成以下操作。(1)創(chuàng)建文件夾test。 mkdir test(2)進入test目錄. cd test(3)在test目錄下用Vi編輯一個新文件test。c,其內容如下: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的大小,哪個大?為什么?gtest.o 比 test。o 大,因為前者加入了一些調試信息。(6)執(zhí)行gtest。o與test。o。25使用GDB調試上面的程序gtest.o。(1)進入GDB調試環(huán)境,讀入調試程序。 gdb gtest。o(2)列出源

9、文件內容.list(3)在程序a=0;處設置一個斷點。 breakpoint (4)在程序printf(”the value of a=d n”,a);處設置一個斷點.(5)執(zhí)行該程序。 run (6)查看變量a的值. print a(7)查看變量a的類型。(8)執(zhí)行下一個源程序行,從而執(zhí)行其整體中的一個函數。(9)從斷點開始繼續(xù)執(zhí)行到下一個斷點。(10)查看變量a的值,看看a是否有變化?(11)不停地執(zhí)行continue,直到程序結束。(12)退出GDB。26根據要求編寫Makefile文件.五個文件分別是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)如果上述文件在同一個目錄,請編寫Makefile文件。(2)如果按照下面的目錄結構存放文件,請編寫Makefile文件。|bin存放生成的可執(zhí)行文件|-obj存放。o文件-include存放display1。h和display2。h文件|src存放main。c、display1。c、display2。c和Makefile(3)如果按照下面的目錄結構存放文件,請編寫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.建立宿主機開發(fā)環(huán)境,包括操作系統(tǒng)及編譯器等2配置宿主機相關服務及軟件,如minicom、網絡等3建立引導加載程序BootLoader4移植內核kernel5建立根文件系統(tǒng)root6建立應用程序的Flash磁盤分區(qū)7開發(fā)應用程序8燒寫內核、根文件系統(tǒng)和應用程序9發(fā)布產

14、品3-2 答:Stage1:(1)硬件設備初始化。(2)為加載BootLoader的Stage2準備RAM空間。(3)復制BootLoader的Stage2到RAM空間中.(4)設置好堆棧。堆棧指針的設置是為執(zhí)行C語言代碼做好準備.Stage2:(1)初始化本階段要使用到的硬件設備。(2)檢測系統(tǒng)內存映射(Memory Map)。(3)將內核映像和根文件系統(tǒng)映像從Flash存儲器上讀到RAM空間中。(4)為內核設置啟動參數.(5)調用內核。33 答:1。 數據結構file_operations2。設備注冊:驅動程序模塊通過函數register_chrdev來完成內核的注冊.3。設備卸載:驅動程

15、序模塊通過函數unregister_chrdev來完成內核的卸載。4打開/釋放設備:驅動程序通過函數open來完成設備的打開。驅動程序通過函數release來完成設備的釋放5讀寫設備:read函數將數據從內核復制到應用程序空間,write函數則將數據從應用程序空間復制到內核。6讀寫以外的I/O操作:驅動程序模塊通過ioctl函數來完成讀寫以外的I/O操作,如鎖設備等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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論