freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式系統(tǒng)開發(fā)畢業(yè)論文(更新版)

2025-08-06 13:29上一頁面

下一頁面
  

【正文】 定的唯一一種可用于軍用系統(tǒng)開發(fā)的語言。嵌入式系統(tǒng)則不同,應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行;但是為了合理地調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及和專家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS開發(fā)平臺(tái),這樣才能保證程序執(zhí)行的實(shí)時(shí)性、可靠性,并減少開發(fā)時(shí)間,保障軟件質(zhì)量?!”M管半導(dǎo)體技術(shù)的發(fā)展使處理器速度不斷提高、片上存儲(chǔ)器容量不斷增加,但在大多數(shù)應(yīng)用中,存儲(chǔ)空間仍然是寶貴的,還存在實(shí)時(shí)性的要求。開放源代碼的嵌入式Linux操作系統(tǒng)無疑有著很大的優(yōu)勢。在眾多的實(shí)時(shí)操作系統(tǒng)和嵌入式操作系統(tǒng)產(chǎn)品中,WindRiver公司的VxWorks是較為有特色的一種實(shí)時(shí)操作系統(tǒng)。QNX是由加拿大QSSL公司開發(fā)的分布式、實(shí)時(shí)的、可擴(kuò)充的操作系統(tǒng),它部分遵循POSIX相關(guān)標(biāo)準(zhǔn),如:。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級(jí)性非常突出。 Windows CE內(nèi)核較小,能作為一種嵌入式操作系統(tǒng)應(yīng)用到工業(yè)控制等領(lǐng)域。 基于RTOS開發(fā)出的程序,具有較高的可移植性,實(shí)現(xiàn)90%以上設(shè)備獨(dú)立,一些成熟的通用程序可以作為專家?guī)旌瘮?shù)產(chǎn)品推向社會(huì)。因此基于RTOS上的C語言程序具有極大的可移植性。嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等Browser。         西南交通大學(xué)本科畢業(yè)設(shè)計(jì)        第54頁嵌入式系統(tǒng)開發(fā)畢業(yè)論文     第1章  緒論 嵌入式系統(tǒng) 嵌入式系統(tǒng)簡介  隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)應(yīng)用領(lǐng)域越來越廣泛。操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用,而應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為。 TOS是針對不同處理器優(yōu)化設(shè)計(jì)的高效率實(shí)時(shí)多任務(wù)內(nèi)核,優(yōu)秀商品化的RTOS可以面對幾十個(gè)系列的嵌入式處理器MPU、MCU、DSP、SOC等提供類同的API接口,這是RTOS基于設(shè)備獨(dú)立的應(yīng)用程序開發(fā)基礎(chǔ)。引入RTOS相當(dāng)于引入了一種新的管理模式,對于開發(fā)單位和開發(fā)人員都是一個(gè)提高。國內(nèi)的嵌入式操作系統(tǒng)研究開發(fā)有2種類型,一類是基于國外操作系統(tǒng)2次開發(fā)完成的,如海信的基于Windows CE的機(jī)頂盒系統(tǒng);另一類是中國自主開發(fā)的嵌入式操作系統(tǒng),如凱思集團(tuán)公司自主研制開發(fā)的嵌入式操作系統(tǒng)Hopen OS(“女媧計(jì)劃”)等。它提供了很好的安全性和容錯(cuò)性。開發(fā)者可以利用它來實(shí)現(xiàn)從簡單的單個(gè)獨(dú)立設(shè)備到復(fù)雜的、網(wǎng)絡(luò)化的多處理器系統(tǒng)。其核心Hopen Kernel一般為10KB左右大小,占用空間小,并具有實(shí)時(shí)、多任務(wù)、多線程的系統(tǒng)特征。目前在全世界裝有VxWorks 系統(tǒng)的智能設(shè)備數(shù)以百萬計(jì),其應(yīng)用范圍遍及互聯(lián)網(wǎng)、電信和數(shù)據(jù)通信等眾多領(lǐng)域。 、高可靠性。 嵌入式系統(tǒng)軟件需要RTOS開發(fā)平臺(tái) 通用計(jì)算機(jī)具有完善的操作系統(tǒng)和應(yīng)用程序接口(API),是計(jì)算機(jī)基本組成不可分離的一部分,應(yīng)用程序的開發(fā)以及完成后的軟件都在OS平臺(tái)上面運(yùn)行,但一般不是實(shí)時(shí)的。使用Ada語言可以大大改善系統(tǒng)的清晰性、可靠性、可維護(hù)性等性能指標(biāo)[2,3]。C++是由Bjarne Stroustrup 于1995年在Bell實(shí)驗(yàn)室研制成功并投入使用的。它在協(xié)同處理、OOP、自動(dòng)垃圾收集以及對C語言和UNIX的支持等方面對Modula2進(jìn)行了改進(jìn)Java是網(wǎng)絡(luò)語言,而嵌入式系統(tǒng)則在功能、價(jià)格、體積、功耗、上市時(shí)間等方面有特殊要求。限制你的內(nèi)存訪問并且你不能直接讀取硬件設(shè)備正常程序執(zhí)行的模式FIQ:當(dāng)一個(gè)高優(yōu)先級(jí)(fast)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式高速數(shù)據(jù)傳輸和通道處理IRQ:當(dāng)一個(gè)低優(yōu)先級(jí)(normal)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式通常的中斷處理Supervisor:當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式供操作系統(tǒng)使用的一種保護(hù)模式Abort: 當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式虛擬存儲(chǔ)及存儲(chǔ)保護(hù)Undef: 當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式軟件仿真硬件協(xié)處理器System: 使用和User模式相同寄存器集的特權(quán)模式特權(quán)級(jí)的操作系統(tǒng)任務(wù)(2)寄存器組在26位體系下,ARM 處理器有二十七個(gè)寄存器,其中一些是在一定條件下使用的,所以一次只能使用十六個(gè)。這是一個(gè)操作系統(tǒng)問題,不是一個(gè)處理器問題,所以如果你不使用棧,只要你以后恢復(fù)它,你可以在你的代碼中自由的占用(corrupt)它。一旦已經(jīng)保存了連接地址,這個(gè)寄存器就可以用做通用寄存器了。 APCS 定義了: 程序計(jì)數(shù)器構(gòu)造如下圖22: 2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ 圖22 程序計(jì)數(shù)器構(gòu)造n 條件位:n N = 1結(jié)果為負(fù),0結(jié)果為正或0n Z = 1結(jié)果為0,0結(jié)果不為0n C =1進(jìn)位,0借位n V =1結(jié)果溢出,0結(jié)果沒溢出n Q 位:n 僅ARM 5TE/J架構(gòu)支持n 指示增強(qiáng)型DSP指令是否溢出n J 位n 僅ARM 5TE/J架構(gòu)支持n J = 1: 處理器處于Jazelle狀態(tài)n 中斷禁止位:n I = 1: 禁止 IRQ.n F = 1: 禁止 FIQ.n T Bitn 僅ARM xT架構(gòu)支持n T = 0: 處理器處于 ARM 狀態(tài)n T = 1: 處理器處于 Thumb 狀態(tài)n Mode位(處理器模式位):n 0b10000 Usern 0b10001 FIQn 0b10010 IRQn 0b10011 Supervisorn 0b10111 Abortn 0b11011 Undefinedn 0b11111 Systemn 當(dāng)處理器執(zhí)行在ARM狀態(tài):n 所有指令 32 bits 寬n 所有指令必須 word 對齊n 所以 pc值由bits [31:2]決定, bits [1:0] 未定義 (所以指令不能halfword / byte對齊).n 當(dāng)處理器執(zhí)行在Thumb狀態(tài):n 所有指令 16 bits 寬n 所有指令必須 halfword 對齊n 所以 pc值由bits [31:1]決定, bits [0] 未定義 (所以指令不能 byte對齊).n 當(dāng)處理器執(zhí)行在Jazelle狀態(tài):n 所有指令 8 bits 寬n 處理器執(zhí)行 word 存取一次取4條指令 ARM指令集 ARM存貯訪問指令A(yù)RM存貯訪問指令如下表21:        表21 ARM存貯訪問指令助記符說明操作條件碼位置MUL Rd,Rm,Rs32位乘法指令Rd←Rm*Rs (Rd≠Rm)MUL{cond}{S}MLA Rd,Rm,Rs,Rn32位乘法指令Rd←Rm*Rs+Rn (Rd≠Rm)MLA{cond}{S}UMULL RdLo,RdHi,Rm,Rs64位無符號(hào)乘法指令(RdLo,RdHi)←Rm*RsUMULL{cond}{S}UMLAL RdLo,RdHi,Rm,Rs64位無符號(hào)乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)UMLAL{cond}{S}SMULL RdLo,RdHi,Rm,Rs64位無符號(hào)乘法指令(RdLo,RdHi)←Rm*RsSMULL{cond}{S}SMLAL RdLo,RdHi,Rm,Rs64位無符號(hào)乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)SMLAL{cond}{S} 數(shù)據(jù)處理指令數(shù)據(jù)處理指令如下表22            表22 數(shù)據(jù)處理指令助記符號(hào)說明操作條件碼位置MOV Rd,operand2數(shù)據(jù)轉(zhuǎn)送Rdoperand2MOV {cond}{S}MVN Rd,operand2數(shù)據(jù)非轉(zhuǎn)送Rd(NOT)operand2MVN {cond}{S}ADD Rd,Rn,operand2加法運(yùn)算指令RdRn+operand2ADD {cond}{S}SUB Rd,Rn,operand2減法運(yùn)算指令RdRnoperand2SUB {cond}{S}RSB Rd,Rn,operand2逆向減法指令Rdoperand2RnRSB {cond}{S}ADC Rd,Rn,operand2帶進(jìn)位加法RdRn+operand2+carryADC {cond}{S}RSC Rd,Rn,operand2帶進(jìn)位減法RdRnperand2(NOT)CarryRSC {cond}{S}AND Rd,Rn,operand2帶進(jìn)位逆向減法RdRnamp。C/OSⅡ的移植 移植的要求和準(zhǔn)備這一章介紹如何將181。C/OSⅡ的移植相對來說是比較容易的?!?處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。目前,國內(nèi)應(yīng)用較為廣泛。C/OSⅡ編譯器相關(guān)定義存儲(chǔ)器系統(tǒng)時(shí)鐘外圍設(shè)備處 理 器圖31 181。*************************************************與編譯器相關(guān)的數(shù)據(jù)類型*************************************************typedef unsigned char BOOLEAN。 //單精度浮點(diǎn)數(shù)typedef double FP64。 /*r11*/*stk=0。 /*r3*/*stk=0。 使用μC/OSII系統(tǒng)應(yīng)注意的問題,不支持時(shí)間片輪轉(zhuǎn)法。對于共享資源(比如串口),μC/OSII也提供了很好的解決辦法,一般情況下使用的是信號(hào)量方法。在分析許多μC/OSII的應(yīng)用實(shí)例中發(fā)現(xiàn),任務(wù)??臻g和內(nèi)存分區(qū)的創(chuàng)建采用了定義全局?jǐn)?shù)組的方法,這樣實(shí)現(xiàn)起來固然簡單,但不夠靈活有效。所以,應(yīng)避免使用全局?jǐn)?shù)組分配內(nèi)存空間,關(guān)鍵是要知道整個(gè)應(yīng)用程序在編譯、鏈接后代碼段和數(shù)據(jù)段的大小,在目標(biāo)板內(nèi)存中是如何定位,以及目標(biāo)板內(nèi)存的大小。LwIP TCP/IP實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,一般它只需要幾十K的RAM和40K左右的ROM就可以運(yùn)行,這使LwIP協(xié)議棧適合在低端嵌入式系統(tǒng)中使用。嵌入式設(shè)備要與Internet網(wǎng)絡(luò)直接交換信息,就必須支持TCP/IP協(xié)議。議的每一層都非常清晰,(context switch).對于接收一個(gè)TCP segment要引起3次context switch(從網(wǎng)卡驅(qū)動(dòng)程序到鏈路層進(jìn)程,從鏈路層進(jìn)程到ip層進(jìn)程,從ip層進(jìn)程到TCP進(jìn)程).通常對于操作系統(tǒng)來說, swich是不可取的. 這樣TCP/.。(3)lwip的process model:所有tcp/ip協(xié)議棧都在一個(gè)進(jìn)程當(dāng)中。Lwip為了適應(yīng)不同的操作系統(tǒng),(定時(shí),進(jìn)程同步,消息傳遞)”mbox”(其實(shí)在ucos的實(shí)現(xiàn)中我們使用的是Message Queue來實(shí)現(xiàn)lwip中的”mbox”,下面大家可以看到這一點(diǎn)) Operating system emulation layer的原代碼在…/lwip/src/core/../lwip/src/arch/.操作系統(tǒng)封裝層的主要函數(shù)如下:void sys_init(void) //系統(tǒng)初始化sys_thread_t sys_thread_new(void (* function)(void *arg), void *arg,int prio)//創(chuàng)建一個(gè)新進(jìn)程voidvoid sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg)//設(shè)置一個(gè)超時(shí)事件//可見lwip中的mbox其實(shí)是ucos的消息隊(duì)列static char pcQueueMemoryPool[MAX_QUEUES * sizeof(TQ_DESCR) ]。u8_t i。ucErr。//初始化lwip定時(shí)事件表,具體實(shí)現(xiàn)參考下面章節(jié) //定時(shí)時(shí)間到后執(zhí)行的函數(shù)struct sys_timeouts lwip_timeouts[LWIP_TASK_MAX]。s16_t err,offset。timeoutnext = tnext。 t != NULL。elseprev_tnext = tnext。}}if( !data ) struct sys_timeouts *timeouts。//從內(nèi)存中釋放該定時(shí)事件,并執(zhí)行該定時(shí)事件中的函數(shù)h(arg)。// 在ucosII ,timeout 的單位是timer tick ucos_timeout = (timeout )*( OS_TICKS_PER_SEC/1000)。 OSTCBCurOSTCBEventPtr = (OS_EVENT *)0。return timeout。IP地址屬于軟件協(xié)議層的地址
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1