在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)場總線網(wǎng)關(guān)的設(shè)計(jì)

            基于嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)場總線網(wǎng)關(guān)的設(shè)計(jì)

            作者: 時(shí)間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

            (1) μC/OS-Ⅱ的移植;
            (2) TCP/IP協(xié)議棧LwIP的移植;
            (3)網(wǎng)絡(luò)設(shè)備驅(qū)動程序。
            l.LwIP協(xié)議棧的移植
            為了使WorldFIP現(xiàn)場總線可以和Internet通信,在設(shè)計(jì)中必須把TCP/IP協(xié)議棧移植到μC/OS-Ⅱ操作系統(tǒng)中(μC/OS-Ⅱ移植將在后面介紹)。為了節(jié)省對系統(tǒng)資源的占用,設(shè)計(jì)中選用了開源的TCP/IP協(xié)議?!狶wIP。LwIP協(xié)議棧是一個(gè)輕量的TCP/IP協(xié)議棧,一般只需要幾十千字節(jié)的RAM和40K左右的ROM就可以運(yùn)行,這使LwIP協(xié)議棧適合在低端系統(tǒng)中使用。LwIP的源碼可以到相關(guān)的網(wǎng)站上下載,目前的版本是0.6.3。LwIP的特性如下:
            (1)支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā);
            (2)提供專門的內(nèi)部回調(diào)接口(Raw API)用于提高應(yīng)用程序性能;
            (3)可選擇的Berkeley接API。
            為了方便移植,LwIP協(xié)議棧把所有與硬件、OS、編譯器相關(guān)的部分單獨(dú)放在/src/arch目錄下,因此移植時(shí)只需修改這個(gè)目錄下的文件即可,其他源文件一般不需要修改。在移植的過程中,最主要的是和OS相關(guān)的一些函數(shù)和結(jié)構(gòu),這些函數(shù)和結(jié)構(gòu)在arch目錄下的sys_arch.h和sys_arch.c中定義和實(shí)現(xiàn)。主要有:
            (l)sys_arch_timeout函數(shù)。
            這個(gè)函數(shù)描述的是LwIP中與外界網(wǎng)絡(luò)連接的線程等待超時(shí)timeout屬性,該屬性與OS相關(guān)。每個(gè)線程的timeout屬性對應(yīng)著一個(gè)在sys.h中定義的結(jié)構(gòu)體sys_timeout,我們所要實(shí)現(xiàn)的是如下函數(shù):
            struct sys_timeouts * sys_arch_timeouts(void)
            該函數(shù)的功能是返回目前正處于運(yùn)行態(tài)的線程所對應(yīng)的timeout隊(duì)列指針。
            (2)sys_sem_t信號量。
            在LwIP中用信號量來實(shí)現(xiàn)同步,因此需要在sys_arch中實(shí)現(xiàn)sys_sem_t結(jié)構(gòu)體和處理函數(shù):
            typedef OS_EVENT * sys_sem_t;
            sys_sem_t sys_sem_new (lNT8U count);
            void sys_sem_signal (sys_sem_t sem);
            INTl6U sys_arch_sem_wait (sys_sem_t sem,INTl6U timeout);
            void sys_sem_free (sys_sem_t sem);
            μC/OS-Ⅱ已經(jīng)實(shí)現(xiàn)了信號量的各種操作,而且功能和LwIP中的幾個(gè)函數(shù)完全一樣的,所以在LwIP中只需把μC/OS-Ⅱ中的函數(shù)封裝打包。
            (3) sys_mbox_t消息。
            在LwIP中實(shí)現(xiàn)緩沖、數(shù)據(jù)傳遞要用到消息隊(duì)列,所以在sys_arch中實(shí)現(xiàn)sys_mbox_t結(jié)構(gòu)體和處理函數(shù):
            typedef struct
            {
            OS_EVENT * pQ;
            void * pvQEntries [MAX _ QUEUE _ EN_ TRIES];
            } sys_mbox_t;
            sys_mbox_t;
            sys_mbox_t sys_mbox_new (void);
            void sys_mbox_post(sys_mbox_t mbox,void * msg);
            INT16U sys_arch_mbox_fetch (sys_mbox_tmbox,void * * msg,INT16U timeout);
            void sys_mbox_free (sys_mbox_t mbox);

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉