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

正文內(nèi)容

嵌入式系統(tǒng)開發(fā)畢業(yè)論文-wenkub.com

2025-06-25 13:29 本頁面
   

【正文】 因?yàn)樵O(shè)計(jì)、研究和生產(chǎn)嵌入式網(wǎng)絡(luò)設(shè)備的廠家比網(wǎng)卡的廠家多得多。在嵌入式系統(tǒng)中,操作系統(tǒng)和所有的應(yīng)用軟件都被固化到Flash等存儲設(shè)備中。它是TCP/IP的設(shè)計(jì)人員選擇的一個(gè)類似于物理網(wǎng)絡(luò)的編址地址。每臺連到以太網(wǎng)網(wǎng)絡(luò)的計(jì)算機(jī)分配一個(gè)唯一的48位(6字節(jié))數(shù)字,即它的以太網(wǎng)地址。}pvNullPointer ) timeout = SYS_ARCH_TIMEOUT。OS_EXIT_CRITICAL()。 // zhangzs OSTCBCurOSTCBStatucErr)。ucErr )。ucos_timeout = 65535。if(timeout != 0){} else {goto again。}if (h != NULL) {arg = tmptimeoutarg。if (time == SYS_ARCH_TIMEOUT) {}if (timeoutsnexttime 0) {} else {again:sys_timeout_handler h。err= OSQPost( mboxpQ, data)。pvNullPointer。const void * const pvNullPointer = 0xffffffff。} pQDesc = OSMemGet( pQueueMem, amp。//從消息隊(duì)列內(nèi)存分區(qū)中得到一個(gè)內(nèi)存塊memp_free(MEMP_SYS_TIMEOUT, t)。amp。 return。{if (timeoutsnext == NULL) //如果鏈表為空直接返回 //返回當(dāng)前任務(wù)定時(shí)事件鏈表起始指針break。}if (tnext == NULL ||timeoutsnexttime = msecs。if (timeoutsnexttime msecs) {return。timeouts = sys_arch_timeouts()。timeoutnext = NULL。timeout = memp_malloc(MEMP_SYS_TIMEOUT)。ping –l 2000 –t,不間斷用長度為2000的數(shù)據(jù)報(bào)進(jìn)行ping測試,(echo端口),往該端口寫數(shù)測試echo功能.在運(yùn)行一段時(shí)間以后,()時(shí)被高優(yōu)先級任務(wù)打斷改寫了curr_task_tcb的值,從而使sys_arch_timeouts返回的指針錯(cuò)誤,:void sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg){null_timeouts。offset = curr_prio LWIP_START_PRIO。curr_task_pcb)。Lwip中的定時(shí)事件表的結(jié)構(gòu)[MAX_LWIP_TASKS]中.struct sys_timeouts null_timeouts。struct sys_timeout *next。void *arg。 //指向下一個(gè)定時(shí)結(jié)構(gòu)}}從代碼中可以看出tcpip_thread應(yīng)該是最先創(chuàng)建的.③ Lwip中的定時(shí)事件。LWIP_TASK_STK[curr_prio_offset][LWIP_STK_SIZE1],LWIP_START_PRIO+curr_prio_offset )。 /*和tcp/ip相關(guān)進(jìn)程的堆棧區(qū)*/5 //和tcp/ip相關(guān)的任務(wù)最多數(shù)目//first prio of lwip tasksdefine LWIP_START_PRIO10*1024 /*和tcp/*//*己設(shè)置,44b0開發(fā)板上有8M的sdram,所以設(shè)大一點(diǎn)也沒有關(guān)系*///max number of lwip tasksdefine LWIP_TASK_MAXlwip_timeouts[i].next = NULL。i++){ucErr )。//ucos中指向事件控制塊的指針OS_EVENT*void sys_untimeout(sys_timeout_handler h, void *arg) //刪除一個(gè)超時(shí)事件sys_sem_t sys_sem_new(u8_t count) //創(chuàng)建一個(gè)信號量void sys_sem_free(sys_sem_t sem) //釋放并刪除一個(gè)信號量void sys_sem_signal(sys_sem_t sem) //發(fā)送一個(gè)信號量void sys_sem_wait(sys_sem_t sem) //等待一個(gè)信號量sys_mbox_post(sys_mbox_t mbox, void *data) //發(fā)送一個(gè)消息到郵箱sys_mbox_free(sys_mbox_t mbox) //釋放并刪除一個(gè)郵箱sys_mbox_t sys_mbox_new(void) //創(chuàng)建一個(gè)郵箱 在這個(gè)項(xiàng)目中我用的硬件平臺是s3c44b0x+。?。?)tcp/,ip層是一個(gè)進(jìn)程,tcp層是一個(gè)進(jìn)程。因此LwIP在uC/0S II上的實(shí)現(xiàn)就是修改這個(gè)目錄下的文件,其它的文件一般不應(yīng)該修改。uC/0S II是一個(gè)富有開放色彩的RTOS,只要買一本書就可獲得源代碼,對學(xué)校和教育的使用完全免費(fèi),商業(yè)應(yīng)用的費(fèi)用相對也很低。目前國內(nèi)對uC/0S II的研究和應(yīng)用都很多。uC/0S II的特點(diǎn)可以概括為以下幾個(gè)方面:公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好。LwIP的含義是Light Weight(輕型)IP協(xié)議。C/OSⅡ上的移植 開源TCP/IP協(xié)議棧LwIP簡介隨著嵌入式系統(tǒng)與網(wǎng)絡(luò)的日益結(jié)合,在嵌入式實(shí)時(shí)操作系統(tǒng)中引入TCP/IP協(xié)議棧,以支持嵌入式設(shè)備接入網(wǎng)絡(luò),成為嵌入式領(lǐng)域重要的研究方向。μC/OSII將來應(yīng)該被改進(jìn)以支持可變大小的內(nèi)存分區(qū)。數(shù)組的大小是固定的,生成映像后不可能在使用中動態(tài)地改變。所以不在使用μC/OSII時(shí),必須對所開發(fā)的系統(tǒng)了解清楚才能選擇對于某種共享資源是否使用信號量。在這個(gè)過程中即使有優(yōu)先權(quán)更高的任務(wù)進(jìn)入了就緒態(tài),因?yàn)闊o法得到信號量,也不能使用該資源。μC/OSII是一個(gè)支持多任務(wù)的操作系統(tǒng)。每一個(gè)任務(wù)的優(yōu)先級必須不同(分析它的源碼會發(fā)現(xiàn),μC/OSII把任務(wù)的優(yōu)先級當(dāng)作任務(wù)在標(biāo)識來使用,如果優(yōu)先級相同,任務(wù)將無法區(qū)分)。}后5個(gè)函數(shù)是鉤子函數(shù),可以不加代碼:void OSTaskCreateHook(OS_TCB *ptcb)void OSTaksDelHool (OS_TCB *ptcb)void OSTaskSwHook(void)void OSTaskStatHook(void)(3)用匯編語言編寫4個(gè)與處理器相關(guān)的函數(shù)()OSStartHighRdy() ;運(yùn)行優(yōu)先級最高的就緒任務(wù)LDR r4,addr_OSTCBCur ;得到當(dāng)前任務(wù)的TCB地址LDR r5,addr_OSTCBHighRdy ;得到高優(yōu)先級任務(wù)的TCB地址LDR r5,addr_OSTCBHighRdy ;得到高優(yōu)先級任務(wù)的TCB地址LDR r5,[r5] ;得到堆棧指針LDR sp,[r5] ;切換到新的堆棧STR r5,[r4]        ??;設(shè)置新的當(dāng)前任務(wù)的TCB地址LDMFD sp!,{r4}MSR CPSR_cxsf,r4LDMFD sp!,{r0r12,lr,pc}  ??;開始新的任務(wù)ENDOSCtxsw()           ;任務(wù)級的任務(wù)切換函數(shù)STMFD sp!,{lr}        ;保存PC指針STMFD sp!,{lr}       ??;保存lr指針STMFD sp!,{r0r12}    ??;保存寄存器文件和返回地址MRS r4,CPSRSTMFD sp!,{r4}        ;保存當(dāng)前PSRMRS r4,SPSRSTMFD sp!,{r4}。 /*r1*/*stk=(unsigned int)pdata。 /*r5*/*stk=0。 /*r9*/*stk=0。 /*lr*/*stk=(unsigned int)task /*pc*/*stk=0。 /*堆棧入口寬度為16位與ARM處理器相關(guān)的代碼:*/define OS_ENTER_CRITICAL () ARMEnableInt() //開啟中斷define OS_STK_GROWTH 1 //堆棧由高地址向低地址增長()void OSTaskStkInit(void(task)(void *pd),void *pdata,void *ptos,INT16U opt){ unsigned int *stk。 //32位無符號整數(shù)typedef signed long INT32S。 //8位無符號整數(shù)typedef signed char INT8S。S3C44B0X處理器完全滿足上述要求。應(yīng)用程序處于整個(gè)系統(tǒng)的頂層,每個(gè)任務(wù)都可以認(rèn)為自已獨(dú)占了CPU,因而可以設(shè)計(jì)成為一個(gè)無限循環(huán)。C/OSⅡ設(shè)置(應(yīng)用相關(guān))181。C/OSⅡ應(yīng)用程序181。C/OSⅡ的軟硬件結(jié)構(gòu)體系Samsung S3C44B0X微處理器是三星公司專為手持設(shè)備和其它嵌入式應(yīng)用提供的高性價(jià)比的微控制器解決方案。C/OSⅡ的工作實(shí)際上是非常簡單的?!?用C語言就可以打開和關(guān)閉中斷。與大多商用RTOS不同的是,μC/OSII公開所有的源代碼,90%的代碼使用標(biāo)準(zhǔn)的ANSI C語言書寫,程序可讀性強(qiáng)、移植性好;同時(shí)它可免費(fèi)獲得,即使商業(yè)應(yīng)用也只收取少量的許可費(fèi)用。由于181。所謂移植,就是使一個(gè)實(shí)時(shí)內(nèi)核能在某個(gè)微處理器或微控制器上運(yùn)行?!?Thumb指令與ARM指令在實(shí)現(xiàn)上差別不大,在此就不再對Thumb指令集進(jìn)行詳細(xì)的介紹了。operand2TST {cond}TEQ Rd,Rn,operand2相等測試指令標(biāo)志N、Z、C、VRn^operand2TEQ {cond} 乘法指令乘法指令如下表23:           表23 乘法指令助記符說明操作條件碼位置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位無符號乘法指令(RdLo,RdHi)←Rm*RsUMULL{cond}{S}UMLAL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)UMLAL{cond}{S}SMULL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*RsSMULL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S} 跳轉(zhuǎn)指令跳轉(zhuǎn)指令如下表24:           表24 跳轉(zhuǎn)指令助記符說明操作條件碼位置B label跳轉(zhuǎn)指令Pc←labelB{cond}BL label帶鏈接的跳轉(zhuǎn)指令LR←PC4,PC←labelBL{cond}RX Rm帶狀態(tài)切換的跳轉(zhuǎn)指令PC←lable,切換處理狀態(tài)BX{cond} 雜項(xiàng)指令雜項(xiàng)指令如下表25:           表25 雜項(xiàng)指令助記符說明操作條件碼位置SWI immed_24軟中斷指令產(chǎn)生軟中斷,處理器進(jìn)入管理模式SWI{cond}MRS Rd,psr讀狀態(tài)寄存器指令Rd←psr,psr為CPSR或SPSRMRS{cond}MRS psr_fields,Rd/immed_8r寫狀態(tài)寄存器指令Psr_fields←Rd/immed_8r,psr為CPSR或SPSRMSR{cond} Thumb指令集Thumb指令可以作是ARM指令壓縮形式的子集,是針對代碼密度的問題而提出的,它具有16位的代碼密度。 最顯著的一點(diǎn)是對這些例程來自哪里沒有明確的限制。 寄存器 15 是程序計(jì)數(shù)器。R14 的所有實(shí)例必須被保存到其他寄存器中(不是實(shí)際上有效)或一個(gè)棧中。 寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。技術(shù)具有性能高、成本低和能耗省,適用于多種領(lǐng)域,比如嵌入控制、消費(fèi)/教育類多媒體、DSP和移動式應(yīng)用等。但Sun公司并不愿意放棄這個(gè)發(fā)展?jié)摿薮蟮膽?yīng)用市場,對Java進(jìn)行改進(jìn)后發(fā)表了J2ME(Java
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1