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

正文內(nèi)容

嵌入式系統(tǒng)開發(fā)畢業(yè)論文-資料下載頁

2025-06-28 13:29本頁面
  

【正文】 0。prev_tnext = tnext。/* If not the last one, add time of this one back to next */if (tnext != NULL)tnexttime += ttime。memp_free(MEMP_SYS_TIMEOUT, t)。return。}}return。}④“mbox”的實現(xiàn):■ mbox的創(chuàng)建sys_mbox_t sys_mbox_new(void){u8_tucErr。PQ_DESCRpQDesc。//從消息隊列內(nèi)存分區(qū)中得到一個內(nèi)存塊pQDesc = OSMemGet( pQueueMem, amp。ucErr )。if( ucErr == OS_NO_ERR ) {//創(chuàng)建一個消息隊列pQDescpQ=OSQCreate(amp。(pQDescpvQEntries[0]), MAX_QUEUE_ENTRIES )。if( pQDescpQ != NULL ) {return pQDesc。}} return SYS_MBOX_NULL。} ■ 發(fā)一條消息給”mbox”const void * const pvNullPointer = 0xffffffff。void sys_mbox_post(sys_mbox_t mbox, void *data){INT8U err。if( !data ) data = (void*)amp。pvNullPointer。err= OSQPost( mboxpQ, data)。}在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){u32_t time。struct sys_timeouts *timeouts。struct sys_timeout *tmptimeout。sys_timeout_handler h。void *arg。again:timeouts = sys_arch_timeouts()。 //返回當前任務定時事件鏈表起始指針if (!timeouts || !timeoutsnext) { //如果定時事件鏈表為空sys_arch_mbox_fetch(mbox, msg, 0)。 //無超時等待消息} else {if (timeoutsnexttime 0) {//如果超時事件鏈表不為空,而且第一個超時事件的time !=0//帶超時等待消息隊列,超時時間等于超時事件鏈表中第一個超時事件的time,time = sys_arch_mbox_fetch(mbox, msg, timeoutsnexttime)。/*在后面分析中可以看到sys_arch_mbox_fetch調(diào)用了ucos中的OSQPend系統(tǒng)調(diào)用從消息隊列中讀取消息.*///如果”mbox”消息隊列不為空,任務立刻返回,否則任務進入阻塞態(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中任務調(diào)用OSQPend系統(tǒng)調(diào)用進入阻塞態(tài),到收到消息重新開始執(zhí)行//這段時間沒有記錄下來,所以我們要簡單修改ucos的源代碼.(后面我們會看到).} else {/*如果定時事件鏈表不為空,而且第一個定時事件的time ==0,表示該事件的定時*///時間到time = SYS_ARCH_TIMEOUT。}if (time == SYS_ARCH_TIMEOUT) {//一個定時事件的定時時間到tmptimeout = timeoutsnext。timeoutsnext = tmptimeoutnext。h = tmptimeouth。arg = tmptimeoutarg。memp_free(MEMP_SYS_TIMEOUT, tmptimeout)。//從內(nèi)存中釋放該定時事件,并執(zhí)行該定時事件中的函數(shù)if (h != NULL) {h(arg)。}/*因為定時事件中的定時時間到或者是因為sys_arch_mbo_fetch超時到而執(zhí)行到*///這里,返回本函數(shù)開頭重新等待mbox的消息goto again。} else {/*如果sys_arch_mbox_fetch無超時收到消息返回則刷新定時事件鏈表中定時事件的time值.*/if (time = timeoutsnexttime) {timeoutsnexttime = time。} else {timeoutsnexttime = 0。}}}}u32_tsys_arch_mbox_fetch(sys_mbox_t mbox, void **data, u32_t timeout){u32_tucErr。u16_t ucos_timeout。//在 lwip中 ,timeout的單位是ms// 在ucosII ,timeout 的單位是timer tick ucos_timeout = 0。if(timeout != 0){ucos_timeout = (timeout )*( OS_TICKS_PER_SEC/1000)。if(ucos_timeout 1)ucos_timeout = 1。else if(ucos_timeout 65535)ucos_timeout = 65535。}//如果data!=NULL就返回消息指針,if(data != NULL){*data = OSQPend( mboxpQ, (u16_t)ucos_timeout, amp。ucErr )。}else{OSQPend(mboxpQ,(u16_t)ucos_timeout,amp。ucErr)。}//這里修改了ucos中的OSQPend系統(tǒng)調(diào)用, //原來的void*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//改為 defineOS_TIMEOUT1//err返回值的意義也改變了,如果超時返回OS_TIMEOUT// 如果收到消息,則返回OSTCBCurOSTCBDly修改部分代碼如下if (msg != (void *)0) { // Did we get a message? OSTCBCurOSTCBMsg = (void *)0。 OSTCBCurOSTCBStat= OS_STAT_RDY。 OSTCBCurOSTCBEventPtr = (OS_EVENT *)0。 *err = OSTCBCurOSTCBDly。 // zhangzs @OS_EXIT_CRITICAL()。 return (msg)。 //Return message received }//關于ucos的OSTBCurOSTCBDly的含義請查閱ucos的書籍if( ucErr == OS_TIMEOUT ) {timeout = SYS_ARCH_TIMEOUT。} else {if(*data == (void*)amp。pvNullPointer ) *data = NULL。//單位轉(zhuǎn)換,從ucos tickmstimeout = (ucos_timeout ucErr)*(1000/ OS_TICKS_PER_SEC)。}return timeout。}semaphone的實現(xiàn)和mbox類似,這里就不再重復了. MAC和IP地址設置 嵌入式網(wǎng)絡設備中MAC及IP地址的特點MAC地址在這里特指以太網(wǎng)定義的一個48位(6字節(jié))地址。每臺連到以太網(wǎng)網(wǎng)絡的計算機分配一個唯一的48位(6字節(jié))數(shù)字,即它的以太網(wǎng)地址。為分配地址,以太網(wǎng)硬件制造商購買以太網(wǎng)地址塊,在生產(chǎn)以太網(wǎng)接口硬件時順序給它們分配。MAC地址屬于物理層的地址,對于不同類型的網(wǎng)絡,其物理址分配方式不同,但本論文中介紹的設置方法都適用。IP地址(IP address)也叫互連網(wǎng)地址(Internet address)。它是TCP/IP的設計人員選擇的一個類似于物理網(wǎng)絡的編址地址。互連網(wǎng)上的每個主機都分配了一個唯一的32位(4字節(jié))整數(shù)地址。IP地址屬于軟件協(xié)議層的地址。只要主機上運行TCP/IP協(xié)議,其IP地址的編址方式就符合這個統(tǒng)一標準。在嵌入式系統(tǒng)中,操作系統(tǒng)和所有的應用軟件都被固化到Flash等存儲設備中。在嵌入式系統(tǒng)中很少使用外存。嵌入式系統(tǒng)的啟動往往也是“自動”的,即從上電到處于工作狀態(tài),不用人的介入。這是嵌入式設備應用的要求和特點嵌入式網(wǎng)絡設備中的MAC及IP地址的設置有它的特點:。 因為設計、研究和生產(chǎn)嵌入式網(wǎng)絡設備的廠家比網(wǎng)卡的廠家多得多。,它的操作系統(tǒng)和應用軟件
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1