在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Contiki調(diào)用protothread程序設(shè)計

西西 ? 2018-02-23 09:29 ? 次閱讀

Contiki是一個開源的、高度可移植的多任務(wù)操作系統(tǒng),適用于聯(lián)網(wǎng)嵌入式系統(tǒng)和無線傳感器網(wǎng)絡(luò),Contiki適用于存儲器資源十分受限的嵌入式單片機系統(tǒng),典型的配置下Contiki只占用約2Kbytes的RAM以及40Kbytes的Flash存儲器。Contiki中還包括一個可選的GUI子系統(tǒng),可以提供對本地串口終端、基于VNC的網(wǎng)絡(luò)化虛擬顯示或者Telnet的圖形化支持。

Contiki調(diào)用protothread程序設(shè)計

Contiki進程的阻塞是建立在“函數(shù)返回”的基礎(chǔ)上的,如上圖所示,當進程調(diào)用PROCESS_YIELD()本質(zhì)就是return,它向ContikiOS讓出系統(tǒng)控制權(quán)。

當進程需要處理更復(fù)雜的邏輯時,如果把所有的阻塞語句“裹挾”在進程主體函數(shù)時,就會帶來如下問題:主體函數(shù)會很冗長,并且很復(fù)雜。這違背軟件開發(fā)的精髓----降低程序的復(fù)雜度。

Contiki調(diào)用protothread程序設(shè)計


以uc/os-ii為代表的RTOS對于任務(wù)阻塞(一般使用等待:信號量、郵箱、消息隊列等)是很輕松的,這種基于“上下文切換”(Context Switch)的系統(tǒng),可以在任務(wù)調(diào)用的任意函數(shù)語句中“掛起自己”,如上圖所示。

Contiki調(diào)用protothread程序設(shè)計

其實Contiki進程可以調(diào)用protothread實現(xiàn)“函數(shù)級阻塞”,如上圖所示:

①當protothread等待事件時,它先向process調(diào)用PT_YIELD()“掛起函數(shù)”;process收到protothread的PT_YIELDED返回值時,執(zhí)行PROCESS_YIELD()“掛起進程”,向ContikiOS讓出系統(tǒng)控制權(quán)。

②當外部事件(一般為中斷)向ContikiOS發(fā)消息時,ContikiOS先調(diào)度對應(yīng)的process,process則繼續(xù)調(diào)用protothread,protothread再處理該事件。

③當protothread處理完所有邏輯后,它向process返回PT_ENDED,此時process知道該protothread已經(jīng)完成工作。

通過這種“函數(shù)級阻塞”技術(shù),可以將邏輯復(fù)雜的進程分解成多個protothread,采用分而冶之的辦法,讓程序設(shè)計和維護代價大大降低。

小結(jié):Contiki系統(tǒng)調(diào)度和阻塞實質(zhì)是“函數(shù)返回”,因此進程設(shè)計有3條原則:

① 每個進程響應(yīng)一個硬件的poll消息;

② 多個硬件之間的時序交給ISR用狀態(tài)機完成;

③ 進程主體函數(shù)盡可能簡單,如果復(fù)雜將拆分成多個protothread。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Contiki
    +關(guān)注

    關(guān)注

    3

    文章

    11

    瀏覽量

    7269
  • protothread
    +關(guān)注

    關(guān)注

    1

    文章

    3

    瀏覽量

    2102
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    關(guān)于contiki移植

    我想做個自組網(wǎng)的實驗,用在無線抄表上。聽說contiki上可以支持自組網(wǎng)協(xié)議,我想問下如果我把contiki移植到TI或STM32平臺后,可以實現(xiàn)自組網(wǎng)嗎?因為我看到contiki采用的是多跳mesh協(xié)議,應(yīng)該是支持自組網(wǎng)的,但
    發(fā)表于 06-15 17:56

    基于AVR單片機的操作系統(tǒng)contiki(一個開源操作系統(tǒng))

    項目中。Contiki操作系統(tǒng)是基于事件驅(qū)動(Event-driven)內(nèi)核的操作系統(tǒng),在此內(nèi)核上,應(yīng)用程序可以在運行時動態(tài)加載,非常靈活。在事件驅(qū)動內(nèi)核基礎(chǔ)上,Contiki實現(xiàn)了一種輕量級的名為
    發(fā)表于 03-17 13:02

    如何使用Contiki開發(fā)程序

    導(dǎo)讀:本文講解了Contiki在單片機上的編程框架和一般的開發(fā)流程,并給出范例程序。并較為淺顯解釋了Contiki的工作機制。如何使用Contiki開發(fā)
    發(fā)表于 02-11 06:00

    Contiki移植

    LaunchPad? Development Kit (MSP?EXP430G2ET)contiki-os Github本文參考自二、Contiki移植 —— 一根線新建工程移植過程新建contiki文件夾添加core、cpu
    發(fā)表于 02-15 06:32

    PID程序設(shè)計實驗

    實驗  PID程序設(shè)計實驗 一 、 實驗?zāi)康?、 熟悉PLC的功能指令。2、 熟悉對PID功能的調(diào)用方法。3、 熟悉對模擬
    發(fā)表于 05-17 10:53 ?1212次閱讀

    Contiki學(xué)習(xí)筆記

    Contiki 是一個適用于有內(nèi)存的嵌入式系統(tǒng)的開源的、高可移植的、支持網(wǎng)絡(luò)的多任務(wù)操作系統(tǒng)。包括一個多任務(wù)核心、TCP/IP 堆棧、程序集以及低能耗的無線通訊堆棧。Contiki 采用 C 語言開發(fā)的非常小型的嵌入式操作系統(tǒng),
    發(fā)表于 01-06 11:30 ?32次下載

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---調(diào)用Excel軟件打印數(shù)據(jù)庫中的數(shù)據(jù)
    發(fā)表于 02-07 12:27 ?1次下載

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---調(diào)用Word軟件打印數(shù)據(jù)庫中的數(shù)據(jù)
    發(fā)表于 02-07 12:28 ?0次下載

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---動態(tài)調(diào)用可執(zhí)行EXE文件
    發(fā)表于 02-07 12:32 ?0次下載

    python調(diào)用matlab程序設(shè)計

    Python,是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL協(xié)議。MATLAB用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。
    發(fā)表于 12-04 16:45 ?1728次閱讀

    C語言程序設(shè)計實用教程之函數(shù)詳細介紹和應(yīng)用

    本文檔的主要內(nèi)容詳細介紹的是C語言程序設(shè)計實用教程之函數(shù)詳細介紹和應(yīng)用內(nèi)容包括了:1 模塊化程序設(shè)計與函數(shù)2 函數(shù)的定義與調(diào)用3 函數(shù)的嵌套調(diào)用和遞歸
    發(fā)表于 10-31 18:04 ?2次下載
    C語言<b class='flag-5'>程序設(shè)計</b>實用教程之函數(shù)詳細介紹和應(yīng)用

    Visual FoxPro程序設(shè)計教程之結(jié)構(gòu)化程序設(shè)計的詳細資料說明

    本文檔詳細介紹的是Visual FoxPro程序設(shè)計教程之結(jié)構(gòu)化程序設(shè)計的詳細資料說明主要內(nèi)容包括了:1 程序文件,2 程序控制結(jié)構(gòu),3 過程與過程
    發(fā)表于 03-04 16:20 ?8次下載
    Visual FoxPro<b class='flag-5'>程序設(shè)計</b>教程之結(jié)構(gòu)化<b class='flag-5'>程序設(shè)計</b>的詳細資料說明

    JAVA程序設(shè)計教程之JSP程序設(shè)計實驗

    本文檔的主要內(nèi)容詳細介紹的是JAVA程序設(shè)計教程之JSP程序設(shè)計實驗。
    發(fā)表于 11-05 15:34 ?7次下載
    JAVA<b class='flag-5'>程序設(shè)計</b>教程之JSP<b class='flag-5'>程序設(shè)計</b>實驗

    Contiki開發(fā)1:Contiki與8位MCU

    介紹Contiki系統(tǒng)的功與過,引入8位MCU在物聯(lián)網(wǎng)時代的重生。
    發(fā)表于 12-06 10:21 ?7次下載
    <b class='flag-5'>Contiki</b>開發(fā)1:<b class='flag-5'>Contiki</b>與8位MCU

    Contiki在單片機上的編程框架

    導(dǎo)讀:本文講解了Contiki在單片機上的編程框架和一般的開發(fā)流程,并給出范例程序。并較為淺顯解釋了Contiki的工作機制。如何使用Contiki開發(fā)
    發(fā)表于 12-07 19:36 ?12次下載
    <b class='flag-5'>Contiki</b>在單片機上的編程框架
    主站蜘蛛池模板: 成人国产精品2021 | 免费人成在线观看网站品爱网 | 国产精品国产三级在线高清观看 | 特黄特黄特色大片免费观看 | 国产亚洲精品aaa大片 | 国产白白白在线永久播放 | 最新国产精品视频免费看 | 伊人不卡久久大香线蕉综合影院 | 爱逼综合 | 美女一级a毛片免费观看 | 天天操天天插天天射 | 视频在线观看免费视频 | 天天躁狠狠躁狠狠躁夜夜躁 | 欧洲性freefree大白屁股 | 日本免费不卡视频 | aa在线播放 | 欧美性一级交视频 | 日本高清中文字幕在线观穿线视频 | 日韩毛片在线视频 | 久久久久国产一级毛片高清版 | 久久国产乱子伦精品免费午夜 | 国产免费私拍一区二区三区 | 欧美三级网站 | 欧美深夜福利 | 亚洲宅男天堂a在线 | www.99色| 男人j桶进女人免费视频 | 国内精品久久久久久久久野战 | 最近高清在线视频观看免费 | 成人综合婷婷国产精品久久免费 | 日本人六九视频69jzz免费 | 午夜日本一区二区三区 | 三级免费黄录像 | tube日本xxxx69 | 8090yy理论三级在线观看 | 欧美性色欧美a在线观看 | 亚洲在成人网在线看 | 亚洲天堂网站在线 | 免费高清视频免费观看 | 在线天堂bt种子资源 | 日韩亚洲欧洲在线com91tv |