




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2012年上學(xué)期嵌入式系統(tǒng)設(shè)計課程大作業(yè)1、敘述下列相關(guān)名詞的含義ARM、xscale、PXA255、RISC、體系結(jié)構(gòu)答:1)ARM:英國的一家公司;時下流行的一種體系結(jié)構(gòu)。2)XScale:ARM架構(gòu)v5TE指令集的CPU。3)PXA255:XScale的核版本。4)RISC:ReducedInstructionSetComputing,即精簡指令集,一種CPU的設(shè)計概念;與之相對的是CISC,即復(fù)雜指令集5)體系結(jié)構(gòu):嵌入式系統(tǒng)硬件與軟件的銜接;它確定嵌入式系統(tǒng)設(shè)計的部件、部件功能、部件間借口的設(shè)計,并集中于嵌入式系統(tǒng)的核心部分——處理器的運算與存的存取。2、畫出嵌入式硬件系統(tǒng)組成的模塊結(jié)構(gòu)圖
3、敘述基于linux的嵌入式平臺的搭建過程答:Linux嵌入式平臺的搭建符合嵌入式平臺搭建的一般過程,但是具體到Linux嵌入式平臺,又有些許不同,其搭建過程如下:1)處理器以及硬件開發(fā)平臺的選擇以處理器為主,結(jié)合考慮硬件平臺的情況。處理器考慮的問題包括應(yīng)用類型及I/O接口、主頻和功耗、對不同類型存儲器的支持、封裝等;硬件平臺的選擇和設(shè)計包括存和外圍存儲器、輸入輸出接口以及設(shè)備等幾項主要容。2)操作系統(tǒng)的選擇由于已經(jīng)選取了Linux操作系統(tǒng),因此此處主要是核版本的選取以及對核功能的裁剪。3)開發(fā)環(huán)境的選取即開發(fā)工具的選取,主要是指開發(fā)軟件的選取,比如常用的minicom。4)開發(fā)實施首先,Bootloader的燒制。目的是對硬件系統(tǒng)基本功能的支持,比如串口通信。其次,核文件的制作。接下來,核文件的拷貝。此時,可以通過串口或者網(wǎng)口實施傳輸,能夠大幅度提高傳輸速度。最后,在主機使用開發(fā)軟件,完成對硬件系統(tǒng)的開發(fā)工作。包括硬件驅(qū)動程序、上層的應(yīng)用程序、系統(tǒng)的集成與調(diào)試等。4、如下為xscale處理器的核框圖:簡述核框圖中每個模塊的名稱及指標。答:1)InstructionCache:指令Cache;大小32KB,32路,支持線性鎖定2)Micro-Processor:微處理器;七級流水3)DataCache:數(shù)據(jù)Cache;最大支持32KB,32路4)DataRam:數(shù)據(jù)Ram;最大支持28KB5)Mini-DataCache:迷你數(shù)據(jù)Cache;大小2KB,2路6)BranchTargetBuffer:分支目標緩存;128入口7)IMMU/DMMU:指令/數(shù)據(jù)存儲管理單元;32路,全相關(guān),支持鎖定8)FillBuffer:填充緩存;4~8入口9)PerformanceMonitoring:功能顯示器10)Debug:硬件中斷斷點記錄11)PowerManagementControl:電源管理控制12)MAC:乘加單元;40位累加/累乘,16位單指令多數(shù)據(jù)流操作,16*32位操作單周期支持13)WriteBuffer:寫緩存;8入口,支持合并操作14)JTAG:邊界掃描技術(shù);支持JTAG操作5、下述英文為BTB模塊功能的詳細介紹,閱讀后說明該模塊的作用。TheBTBstoresthehistoryofbranchesthathaveexecutedalongwiththeirtargets.Figure5-1showsanentryintheBTB,wherethetagistheinstructionaddressofapreviouslyexecutedbranchandthedatacontainsthetargetaddressofthepreviouslyexecutedbranchalongwithtwobitsofhistoryinformation.TheBTBtakesthecurrentinstructionaddressandcheckstoseeifthisaddressisabranchthatwaspreviouslyseen.Itusesbits[8:2]ofthecurrentaddresstoselectthetagfromtheBTBandthencomparesthistagtobits[31:9,1]ofthecurrentinstructionaddress.IfthecurrentinstructionaddressmatchesthetagintheBTBandthehistorybitsindicatethatthisbranchisusuallytakeninthepast,theBTBusesthedata(targetaddress)asthenextinstructionaddresstosendtotheinstructioncache.答:分支目標緩存目標地址歷史的分支,具體到每個入口(表項),由Tag和數(shù)據(jù)組成。Tag是以前執(zhí)行分支的指令地址,數(shù)據(jù)包括以前執(zhí)行分支的目標地址,以及2比特的歷史信息。分支目標緩存取得當前的指令地址,檢查這個地址是否是以前執(zhí)行過的分支。它用現(xiàn)行指令的位[8:2]來選擇分支目標緩存中的標志Tag,并與現(xiàn)行指令的位[31:9,1]進行匹配。若匹配且歷史位指出該分支過去常產(chǎn)生,則分支目標緩存中的數(shù)據(jù)(目標地址[31:1])作為下一條指令地址送至指令Cache。6、下面是linux下的一個簡單的設(shè)備驅(qū)動程序,寫出linux設(shè)備驅(qū)動常用的數(shù)據(jù)結(jié)構(gòu),同時閱讀下面代碼,請給出測試程序中的每條語句加以注釋。設(shè)備驅(qū)動程序Keypad.c的源代碼:#include<linux/module.h>#include<linux/fs.h>#include<linux/init.h>#include<linux/poll.h>#include<linux/types.h>#include<linux/fs.h>#include<linux/rtc.h>#include<linux/delay.h>#include<asm/hardware.h>#include<asm/delay.h>#include<asm/uaccess.h>#defineLEDnKEY_MAJOR251#defineKEYPAD_NAME"X-Hyper250Keypad"#defineKEYPAD_VERSION"Version0.1"#defineEXT_KEY_CSEXT_PORT2#defineEXT_LED_CSEXT_PORT3#defineLED_SHOW10/*EXT_KEY_CS為向外部LED進行數(shù)值設(shè)定,它定義在其它頭文件里*/voidled_off_on()/**/
{inti;EXT_LED_CS=0xff;for(i=0;i<8;++i){EXT_LED_CS=~((1<<i)&0xff);/*點亮相應(yīng)LED燈*/udelay(30000);}EXT_LED_CS=0xff;}/*應(yīng)用程序用open來打開設(shè)備文件,實際上調(diào)用驅(qū)動的lednkey_open()函數(shù)*/intlednkey_open(structinode*inode,structfile*filp)/*打開設(shè)備文件*/{MOD_INC_USE_COUNT;/*核提供的一個宏,檢查使用驅(qū)動程序的用戶數(shù)*/return(0);/*success*/}intlednkey_release(structinode*inode,structfile*filp)/*釋放設(shè)備文件*/{led_off_on();MOD_DEC_USE_COUNT;return(0);}ssize_tlednkey_read(structfile*filp,char*Putbuf,size_tlength,loff_t*f_pos)/*按鍵讀取函數(shù)*/{unsignedshortBottonStatus;unsignedcharBottontmp=0;inti;BottonStatus=(EXT_KEY_CS&0xff);/*按鍵狀態(tài)*/for(i=0;i<8;++i)/*判斷哪個按鍵按下*/{if(((BottonStatus>>i)&1)==0)Bottontmp=(i+1);}copy_to_user(Putbuf,&Bottontmp,length);/*將數(shù)據(jù)從核態(tài)拷貝到用戶態(tài),這是由定義在<asm/uaccess.h>里的特殊函數(shù)實現(xiàn)在不同的空間傳輸任意字節(jié)的數(shù)據(jù)*/returnlength;}ssize_tlednkey_write(structfile*filp,constchar*Getbuf,size_tlength,loff_t*f_pos){intnum;unsignedcharUsrWantLed;
copy_from_user(&UsrWantLed,Getbuf,length);/*將數(shù)據(jù)從用戶態(tài)拷貝到核心態(tài)*/num=((UsrWantLed)&0xff);/*確定哪一位要進行設(shè)定*/EXT_LED_CS=~(1<<(num-1));/*點亮相應(yīng)LED燈*/return(0);}intlednkey_ioctl(structinode*inode,structfile*filp,unsignedintcmd,unsignedlongarg)/*lednkey_ioctl接口函數(shù),主要用于獲取或者改變正在運行的設(shè)備參數(shù)*/{switch(cmd){caseLED_SHOW:/*如果要點亮LED燈*/{if(arg)led_off_on();break;}}return0;}/*以下這些驅(qū)動函數(shù)是與用戶的應(yīng)用程序里對設(shè)備文件操作的函數(shù)相對應(yīng)的*/structfile_operationslednkey_fops={open:read:write:ioctl:lednkey_open,lednkey_read,lednkey_write,lednkey_ioctl,release:lednkey_release,};staticint_initxhyper250_keypad_init(void)/*初始化設(shè)備函數(shù),在函數(shù)名之前加上這個屬性之后,系統(tǒng)會在初始化完成之后丟棄初始化函數(shù),收回它所占用的存,以減小核所占用的存空間,它只對建的驅(qū)動起作用*/{intresult;result=register_chrdev(LEDnKEY_MAJOR,"lednkey",&lednkey_fops);/*向操作系統(tǒng)注冊一個主號為251,設(shè)備名為"lednkey",并傳遞設(shè)備驅(qū)動程序的指針為lednkey_fops(全局變量),其中register_chrdev()是核提供的函數(shù),作用是完成注冊新的字符設(shè)備*/printf("%s%sinitialized.\n",KEYPAD_NAME,KEYPAD_VERSION);led_off_on();return0;
}staticvoid_exitxhyper250_keypad_exit(void)/*向操作系統(tǒng)卸載設(shè)備函數(shù)*/{unregister_chrdev(LEDnKEY_MAJOR,"lednkey");led_off_on();}module_init(xhyper250_keypad_init);/*顯式聲明初始化設(shè)備函數(shù)*/module_exit(xhyper250_keypad_exit);/*顯式聲明卸載設(shè)備函數(shù)*//*通過上述兩個聲明核知道驅(qū)動程序的進入點*/測試文件的源代碼如下:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#defineLED_SHOW10intfd;staticchar*dev_name="/dev/keypad";intmain(intargc,char**argv){intdata=0,pre_data;fd=open(dev_name,O_RDWR);if(!(fd>=0)){printf("%sfileopenfailed\n",dev_name);exit(-1);}printf("\nkeypadApp:pressthepushbuttonseeshowled-ExitCtrl-C\n",dev_name);ioctl(fd,LED_SHOW,1);while(1){do{
pre_data=data;read(fd,(char*)&data,sizeof(data));data=(data&0xff);}while(data==0);if(pre_data==0){printf("Write%dLED\n",data);write(fd,(constchar*)&data,sizeof((constchar)data));}}close(fd);return0;}1)數(shù)據(jù)結(jié)構(gòu)structfile_operations{structmodule*owner;loff_t(*llseek)(structfile*,loff_t,int);ssize_t(*read)(structfile*,char__user*,size_t,loff_t*);ssize_t(*aio_read)(structkiocb*,char__user*,size_t,loff_t);ssize_t(*write)(structfile*,constchar__user*,size_t,loff_t*);ssize_t(*aio_write)(structkiocb*,constchar__user*,size_t,loff_t);int(*readdir)(structfile*,void*,filldir_t);unsignedint(*poll)(structfile*,structpoll_table_struct*);int(*ioctl)(structinode*,structfile*,unsignedint,unsignedlong);
long(*unlocked_ioctl)(structfile*,unsignedint,unsignedlong);long(*compat_ioctl)(structfile*,unsignedint,unsignedlong);int(*mmap)(structfile*,structvm_area_struct*);int(*open)(structinode*,structfile*);inode_operations。int(*flush)(structfile*);int(*release)(structinode*,structfile*);int(*fsync)(structfile*,structdentry*,intdatasync);int(*aio_fsync)(structkiocb*,intdatasync);int(*fasync)(int,structfile*,int);int(*lock)(structfile*,int,structfile_lock*);ssize_t(*readv)(structfile*,conststructiovec*,unsignedlong,loff_t*);ssize_t(*writev)(structfile*,conststructiovec*,unsignedlong,loff_t*);ssize_t(*sendfile)(structfile*,loff_t*,size_t,read_actor_t,void*);ssize_t(*sendpage)(structfile*,structpage*,int,size_t,loff_t*,int);unsignedlong(*get_unmapped_area)(structfile*,unsignedlong,unsignedlong,unsignedlong,unsignedlong);int(*check_flags)(int);
int(*dir_notify)(structfile*filp,unsignedlongarg);int(*flock)(structfile*,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隔音墊施工方案
- 水利設(shè)施提升施工方案
- 路面硬化路肩首件施工方案
- 青海四合院庭院施工方案
- 地下室成品隔油池施工方案
- 晉中導(dǎo)向標志牌施工方案
- 【市占率證明權(quán)威指南】摩托車行業(yè)市占率全解(智研咨詢發(fā)布)
- 排放源的治理技術(shù)選擇與應(yīng)用分析
- 綠色金融與低碳投資的策略及實施路徑
- 低空經(jīng)濟公司的經(jīng)營策略
- 機床操作與數(shù)控編程作業(yè)指導(dǎo)書
- 2025云南昆明空港投資開發(fā)集團招聘7人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級下冊第二單元百分數(shù)(二)單元檢測(含答案)
- 人教版 八年級英語下冊 Unit 2 單元綜合測試卷(2025年春)
- 湖北省武漢市江漢區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 2025年無錫商業(yè)職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 《寄生蟲學(xué)檢驗》課件-結(jié)膜吸吮線蟲
- 探索商業(yè)保險與家庭醫(yī)生簽約服務(wù)的合作模式與前景
- 2024年江西泰豪動漫職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年中國疾病預(yù)防控制中心人事處招聘考試真題
- 2025年中國高壓變頻器行業(yè)深度調(diào)研與投資戰(zhàn)略規(guī)劃分析報告
評論
0/150
提交評論