欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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適用于存儲器資源十分受限的嵌入式單片機(jī)系統(tǒng),典型的配置下Contiki只占用約2Kbytes的RAM以及40Kbytes的Flash存儲器。Contiki中還包括一個可選的GUI子系統(tǒng),可以提供對本地串口終端、基于VNC的網(wǎng)絡(luò)化虛擬顯示或者Telnet的圖形化支持。

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    3

    文章

    11

    瀏覽量

    7192
  • protothread
    +關(guān)注

    關(guān)注

    1

    文章

    3

    瀏覽量

    2047
收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于contiki移植

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

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

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

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

    導(dǎo)讀:本文講解了Contiki在單片機(jī)上的編程框架和一般的開發(fā)流程,并給出范例程序。并較為淺顯解釋了Contiki的工作機(jī)制。如何使用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è)計實(shí)驗(yàn)

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

    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è)計與實(shí)現(xiàn)》---

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

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

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

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

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

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

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

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計實(shí)用教程之函數(shù)詳細(xì)介紹和應(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í)用教程之函數(shù)詳細(xì)介紹和應(yīng)用

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

    本文檔詳細(xì)介紹的是Visual FoxPro程序設(shè)計教程之結(jié)構(gòu)化程序設(shè)計的詳細(xì)資料說明主要內(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>的詳細(xì)資料說明

    JAVA程序設(shè)計教程之JSP程序設(shè)計實(shí)驗(yàn)

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

    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在單片機(jī)上的編程框架

    導(dǎo)讀:本文講解了Contiki在單片機(jī)上的編程框架和一般的開發(fā)流程,并給出范例程序。并較為淺顯解釋了Contiki的工作機(jī)制。如何使用Contiki開發(fā)
    發(fā)表于 12-07 19:36 ?12次下載
    <b class='flag-5'>Contiki</b>在單片機(jī)上的編程框架