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

正文內(nèi)容

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

2025-07-01 13:29本頁面
  

【正文】 ,它的操作系統(tǒng)和應(yīng)用軟件通常是打。這是嵌入式設(shè)備應(yīng)用的要求和特點嵌入式網(wǎng)絡(luò)設(shè)備中的MAC及IP地址的設(shè)置有它的特點:。在嵌入式系統(tǒng)中很少使用外存。只要主機(jī)上運行TCP/IP協(xié)議,其IP地址的編址方式就符合這個統(tǒng)一標(biāo)準(zhǔn)?;ミB網(wǎng)上的每個主機(jī)都分配了一個唯一的32位(4字節(jié))整數(shù)地址。IP地址(IP address)也叫互連網(wǎng)地址(Internet address)。為分配地址,以太網(wǎng)硬件制造商購買以太網(wǎng)地址塊,在生產(chǎn)以太網(wǎng)接口硬件時順序給它們分配。}semaphone的實現(xiàn)和mbox類似,這里就不再重復(fù)了. MAC和IP地址設(shè)置 嵌入式網(wǎng)絡(luò)設(shè)備中MAC及IP地址的特點MAC地址在這里特指以太網(wǎng)定義的一個48位(6字節(jié))地址。timeout = (ucos_timeout ucErr)*(1000/ OS_TICKS_PER_SEC)。//單位轉(zhuǎn)換,從ucos tickmsif(*data == (void*)amp。} else {if( ucErr == OS_TIMEOUT ) {}//關(guān)于ucos的OSTBCurOSTCBDly的含義請查閱ucos的書籍 //Return message received return (msg)。 *err = OSTCBCurOSTCBDly。= OS_STAT_RDY。 OSTCBCurOSTCBMsg = (void *)0。1//err返回值的意義也改變了,如果超時返回OS_TIMEOUT// 如果收到消息,則返回OSTCBCurOSTCBDly修改部分代碼如下if (msg != (void *)0) { // Did we get a message?OS_TIMEOUT*OSQPend (OS_EVENT *pevent, INT16U timeout, INT8U *err)// err的返回值只有兩種:收到消息就返回OS_NO_ERR,超時則返回OS_TIMEOUT/*這里先將err從8位數(shù)據(jù)改變成了16位數(shù)據(jù) OSQPend(*pevent,timeout, INT16U *err)*///重新定義了OS_TIMEOUT//在ucos中原有define OS_TIMEOUT 20//改為 define}//這里修改了ucos中的OSQPend系統(tǒng)調(diào)用, //原來的voidOSQPend(mboxpQ,(u16_t)ucos_timeout,amp。}else{*data = OSQPend( mboxpQ, (u16_t)ucos_timeout, amp。if(data != NULL){//如果data!=NULL就返回消息指針,}ucos_timeout = 1。if(ucos_timeout 1)ucos_timeout = 0。u16_t ucos_timeout。u32_tsys_arch_mbox_fetch(sys_mbox_t mbox, void **data, u32_t timeout){}}u32_t}}timeoutsnexttime = time。if (time = timeoutsnexttime) {/*如果sys_arch_mbox_fetch無超時收到消息返回則刷新定時事件鏈表中定時事件的time值.*/} else {memp_free(MEMP_SYS_TIMEOUT, tmptimeout)。h = tmptimeouth。tmptimeout = timeoutsnext。//一個定時事件的定時時間到time = SYS_ARCH_TIMEOUT。/*如果定時事件鏈表不為空,而且第一個定時事件的time ==0,表示該事件的定時*///時間到} else {/*在后面分析中可以看到sys_arch_mbox_fetch調(diào)用了ucos中的OSQPend系統(tǒng)調(diào)用從消息隊列中讀取消息.*///如果”mbox”消息隊列不為空,任務(wù)立刻返回,否則任務(wù)進(jìn)入阻塞態(tài)./*需要重點說明的是sys_arch_mbox_fetch的返回值time:如果sys_arch_mbox_fetch*///因為超時返回,time=SYS_ARCH_TIMEOUT,//如果sys_arch_mbox_fetch因為收到消息而返回,//time = 收到消息時刻的時間執(zhí)行sys_arch_mbox_fetch時刻的時間,單位是毫秒//由于在ucos中任務(wù)調(diào)用OSQPend系統(tǒng)調(diào)用進(jìn)入阻塞態(tài),到收到消息重新開始執(zhí)行//這段時間沒有記錄下來,所以我們要簡單修改ucos的源代碼.(后面我們會看到).time = sys_arch_mbox_fetch(mbox, msg, timeoutsnexttime)。//如果超時事件鏈表不為空,而且第一個超時事件的time !=0//帶超時等待消息隊列,超時時間等于超時事件鏈表中第一個超時事件的time,sys_arch_mbox_fetch(mbox, msg, 0)。if (!timeouts || !timeoutsnext) { //如果定時事件鏈表為空 //返回當(dāng)前任務(wù)定時事件鏈表起始指針void *arg。struct sys_timeout *tmptimeout。u32_t time。}在ucos中,如果OSQPost (OS_EVENT *pevent, void *msg)中的msg==NULL (mbox,NULL)發(fā)送一條空消息,我們在本函數(shù)中把NULL變成一個常量指針0xffffffff.■ 從”mbox”中讀取一條消息define SYS_ARCH_TIMEOUT 0xffffffffvoid sys_mbox_fetch(sys_mbox_t mbox, void **msg){data = (void*)amp。INT8U err。void sys_mbox_post(sys_mbox_t mbox, void *data){return SYS_MBOX_NULL。} return pQDesc。if( pQDescpQ != NULL ) {pQDescpQ=OSQCreate(amp。//創(chuàng)建一個消息隊列if( ucErr == OS_NO_ERR ) {ucErr )。pQDesc。PQ_DESCRu8_tsys_mbox_t sys_mbox_new(void){“mbox”的實現(xiàn):■ mbox的創(chuàng)建}④return。tnexttime += ttime。if (tnext != NULL)/* If not the last one, add time of this one back to next */timeoutsnext = tnext。if (prev_t == NULL)/* Unlink from previous in list *//* We have a match */{ (targ == arg))if ((th == h) amp。{ prev_t = t, t = tnext)for (t = timeoutsnext, prev_t = NULL。//查找對應(yīng)定時事件并從鏈表中刪除.}timeouts = sys_arch_timeouts()。struct sys_timeouts *timeouts。}}函數(shù)sys_untimeout從當(dāng)前任務(wù)定時事件鏈表中刪除一個定時事件void sys_untimeout(sys_timeout_handler h, void *arg){}}tnext = timeout。tnexttime = timeouttime。if (tnext != NULL) {tnexttime timeouttime) {timeouttime = ttime。 t = tnext) {for(t = timeoutsnext。} else {timeoutnext = timeoutsnext。}timeoutsnext = timeout。if (timeoutsnext == NULL) { //如果鏈表為空直接增加該定時事件 //返回當(dāng)前任務(wù)定時事件鏈表起始指針timeouttime = msecs。timeouth = h。return。if (timeout == NULL) { //為定時事件分配內(nèi)存struct sys_timeout *timeout, *t。}return amp。}return amp。{if(offset 0 || offset = LWIP_TASK_MAX)//判斷當(dāng)前任務(wù)優(yōu)先級是不是tcp/ip相關(guān)任務(wù),優(yōu)先級59curr_prio = 。err = OSTaskQuery(OS_PRIO_SELF,amp。//獲取當(dāng)前任務(wù)的優(yōu)先級OS_TCB curr_task_pcb。u8_t curr_prio。struct sys_timeouts * sys_arch_timeouts(void){Lwip中的定時事件表的結(jié)構(gòu)如下圖,每個和tcp/,如下圖42                 圖42}。 //定時時間到后執(zhí)行函數(shù)的參數(shù).}。sys_timeout_handler h。//定時時間struct sys_timeout *next。 在tcp/ip協(xié)議中很多時候都要用到定時,定時的實現(xiàn)也是tcp/. struct sys_timeout {// PRINT( lwip task prio out of range ! error! )。} else {curr_prio_offset++。OSTaskCreate(function,(void*)0x1111, amp。if(curr_prio_offset LWIP_TASK_MAX){sys_thread_t sys_thread_new(void (* function)(void *arg), void *arg,int prio){u8_t curr_prio_offset 。OS_STK LWIP_TASK_STK[LWIP_TASK_MAX][LWIP_STK_SIZE]。5 /*和tcp/ip相關(guān)任務(wù)的起始優(yōu)先級,在本例中優(yōu)先級可*///以從(59).注意tcpip_thread在所有tcp/ip相關(guān)進(jìn)程中// //如果用戶需要創(chuàng)建和tcp/ip無關(guān)任務(wù),如uart任務(wù)等,//不要使用59的優(yōu)先級}}② 創(chuàng)建一個和tcp/ip相關(guān)新進(jìn)程。iLWIP_TASK_MAX。curr_prio_offset = 0。//init lwip task prio offset //為消息隊列創(chuàng)建內(nèi)存分區(qū)pQueueMem = OSMemCreate( (void*)pcQueueMemoryPool, MAX_QUEUES, sizeof(TQ_DESCR), amp。s8_tsys_mbox_t。typedef PQ_DESCRpvQEntries[MAX_QUEUE_ENTRIES]。void*pQ。20typedef struct {lwip會為每個網(wǎng)絡(luò)連接動態(tài)分配一些信號量(semaphone)和消息隊列(Message Queue),. (1) Lwip的操作系統(tǒng)封裝層(operating layer) 如果應(yīng)用層程序駐留tcp/ip進(jìn)程中,那應(yīng)用層程序就利用內(nèi)部回調(diào)函數(shù)口(Raw API)和tcp/ (tcpip_thread)(如圖中的tftp_thread,tcpecho_thread),也可以在tcpip_thread中(如圖左上角)中利用內(nèi)部回調(diào)函數(shù)口(Raw API)和tcp/ip協(xié)議棧通訊 Lwip to uCos 這樣tcp/,消息隊列等和tcp/ip進(jìn)程進(jìn)行通訊.(2)另外一種方式是TCP/(system call)和協(xié)議棧來進(jìn)行通訊?!∵@樣的好處是網(wǎng)絡(luò)協(xié)  tcp/ip協(xié)議棧的process model一般有幾種方式.下面分幾部份分別說明相應(yīng)文件的實現(xiàn)原理和過程。系統(tǒng)示意圖如下圖41: 圖41 uC/0S II+LwIP系統(tǒng)示意圖  LwIP在uC/0S II下的實現(xiàn) LwIP協(xié)議棧在設(shè)計時就考慮到了將來的移植問題,因此把所有與硬件、OS、編譯器相關(guān)的部份獨立出來,放在/src/arch目錄下。但是它目前的一些第三方TCP/IP支持都是完全商業(yè)化的,用戶需要付費才能獲得,很少給出源代碼,這影響了uC/0S II的研究和推廣。目前嵌入式設(shè)備上TCP/IP方案有很多種,但面向低端應(yīng)用的開源嵌入式網(wǎng)絡(luò)平
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1