久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2723|回復: 0
收起左側

任務行為同步

[復制鏈接]
ID:60266 發表于 2014-8-19 23:09 | 顯示全部樓層 |閱讀模式
系統的整體功能是通過各個任務 和ISR的協同運行來實現的。運行步驟的協調就是行為同步
一 .用于行為同步的通信手段
1. 任務之間的動作配合和協調關系稱為行為同步。
體現在:
任務之間的運行按照某種預定的順序來進行。在一次同步過程中,一個任務(ISR)為控制方,使用OS的通信手段發出控制信息;另一個任務為被控制方,通過通信手段得到控制信息后就進入就緒狀態,根據優先級高低,或立即進入運行態,或隨后進入運行態。
被控制方的運行狀態由控制方發出的信息來控制。
2.實現行為同步的通信手段
  • 二值信號量
取值只能為01的信號量稱為二值信號量。 表示某種事件是否發生。
使用范圍:被控制方總能夠及時響應控制方發出的信號,完成響應處理任務。并在下一次信號到來之前進入等待狀態。
直接使用 :計數信號量或消息郵箱作為二值信號量。


  • 計數信號量
使用范圍:被控制方不能保證在下一次信號來到之前處理完本次控制方發出的信號,但總體上可以響應所有信號。
如果被控制方總能夠及時響應控制方發出的信號,完成響應任務,并在下一次信號來之前進入等待狀態,則計數信號量=二值信號量。
OSSemPost()
函數使 處于等待該信號量的任務 從等待狀態進入就緒狀態(不一定運行,要看任務優先級),信號量不加1,如果沒有等待的任務,則信號量加1
OSSemPend()
調用它來獲取信號量。
如果當前信號量為0,則調用后任務掛起,等待控制方發送的信號量。
如果當前信號量不為0,則調用后,將信號量-1,然后繼續運行,
  • 事件標志組
可以實現多個任務包括ISR協同控制一個任務,當哥哥先關任務先后發出自己的信號后(是事件標準組的對應標志有效),預定的邏輯運算結果有效,觸發被控制的任務(使其進入就緒狀態)。
  • 消息郵箱
既提供同步的時刻,又向被控制方提供內容。
消息郵箱里只能存放一條信息,在用消息郵箱進行同步控制需要滿足條件:任何時候消息的生產速度都比消息的消費速度慢。即,被控制任務總是在等待消息,這和二值信號量類似。
消息郵箱可以放任何類型消息。
消息郵箱可以當二值信號量來用(void *)0表沒發生 (void*1)表示發生。
有四個函數
OSMbosCreat(void *msg)
msg為指向初始消息的指針。 當作為行為同步時 msg應設為(void *)0,表示郵箱為空。
OSMbosPost(OS_EVENT *pevent,void *msg)
pevent消息郵箱指針。msg為指向消息的指針。郵箱只存msg。
若有若干任務正在等待該郵箱中的消息,該函數會使等待消息的優先級最高的任務進入就緒態。此時消息已被直接消費,所以msg不再放入郵箱中。
OSMbosPostOpt(OS_EVENT *pevent,void *msg,INT8U opt)
opt為消息分發方式。通常是廣播方式。若有若干任務正字等待該郵箱中的消息,則會使所有任務從等待態進入就緒態,此時msg不再放入郵箱中。
OSMbosPend(OS_EVENT *pevent,INT16U timeout,INT8U* err)
函數返回值為指向消息的指針,通過這個指針就可以讀取郵箱傳遞的消息內容。
  • 消息隊列
消息隊列可以存放對個消息,能夠解決消息的臨時堆積問題。滿足條件。消息的平均生產時間比消息的平均消費時間長;否則再長的消息隊列也會溢出。
用一個指針數組來構建消息隊列。
OSQ(void**start INT16U size)
start是消息隊列的初始位置。指針數組的起始地址。 size是消息隊列的長度
小結:通信手段選擇
不需傳輸內容:信號類   二值信號量 計數信號量  事件標志組
需要傳遞內容:消息類  消息郵箱,消息隊列
任何時候生產速度比消費速度慢  簡單通信手段  二值信號量  事件標志組  消息郵箱
非周期性同步信息 有緩沖功能的通信手段   計數信號量 消息隊列
是多個信號的邏輯運算結果 事件標志組
  • 行為同步
合理安排同步點和任務優先級時獲得預期效果的關鍵。
A:ISR和任務之間同步

注意:與ISR相關聯的任務的優先級要足夠高。
B:兩個任務之間的單向同步

一般用左圖 掛起點為尾部  延時函數的時間要大于低優先級任務處理事件的時間。
可以使用消息郵箱的分發功能,使一個事件同時觸發兩個任務。
C:兩個任務直接的雙向同步
通信雙方相互制約。生產者必須得到消費者的回復才能進行下一個消息的生產。能確認通信每次都成功,沒有遺漏。

  • 兩個以上任務同步一個任務
采用事件標志組。采用邏輯與或者邏輯或。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性色av一区 | 国产精品a久久久久 | 国产99精品 | 91在线视频免费观看 | 日韩免费网站 | 嫩呦国产一区二区三区av | 亚洲一区二区三区在线视频 | 欧美日韩亚洲国产综合 | www.中文字幕av | 二区久久 | 欧美区在线 | 精品在线一区二区三区 | 免费的一级视频 | 亚洲精品一区中文字幕乱码 | 在线观看中文字幕av | 日本黄色一级片视频 | 97中文视频 | 亚洲午夜在线 | 久久一区二区三区免费 | 成人免费视频网站在线观看 | 欧美jizzhd精品欧美巨大免费 | 久久精品亚洲精品国产欧美kt∨ | 欧美日韩国产一区二区三区 | 中文字幕在线国产 | 中文字幕一区二区三区在线视频 | 日韩一区在线播放 | 欧美视频第二页 | www.xxxx欧美 | 国产视频一区二区三区四区五区 | 天天看天天操 | 亚洲国产第一页 | 欧美最猛黑人 | 亚洲精品一区二区三区四区高清 | 欧美视频xxx | 日韩国产精品一区二区三区 | 九九热精品在线 | 久久91精品国产一区二区 | 污片在线免费观看 | 99精品国产一区二区青青牛奶 | 欧美一区不卡 | 国产成人免费视频网站高清观看视频 |