日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RTT学习

發(fā)布時(shí)間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTT学习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一互斥量:是信號(hào)量的一種,用于共享資源的排他性使用,以鎖的形式存在,初始化時(shí)為可用,不能在中斷中使用,可能導(dǎo)致優(yōu)先級(jí)翻轉(zhuǎn)。

二 事件:創(chuàng)建、刪除、初始化、解綁、等待、發(fā)送。可以一對(duì)多多對(duì)的,發(fā)送一個(gè)事件,所有等待的都有效。可以進(jìn)行邏輯“與”“或”,不能進(jìn)行累加;而信號(hào)量可以累加但不能進(jìn)行與或;

三 郵箱:創(chuàng)建、刪除、初始化、解綁、發(fā)送、接收。用于線程間多數(shù)據(jù)的傳遞,類似管道,郵箱單次發(fā)送默認(rèn)4字節(jié)(一個(gè)指針的大小),郵箱開銷小比信號(hào)量和消息隊(duì)列效率高。如果是數(shù)據(jù),結(jié)構(gòu)體可以采用以下方法

  數(shù)組:郵箱的地址為數(shù)組的開始地址;郵箱的容量為sizeof(數(shù)組)/4

  結(jié)構(gòu)體:

struct msg {rt_uint8_t *data_ptr; rt_uint32_t data_size; };

對(duì)于這樣一個(gè)消息結(jié)構(gòu)體,其中包含了指向數(shù)據(jù)的指針data_ptr和數(shù)據(jù)塊長(zhǎng)度的變量data_size。當(dāng)一個(gè)線程需要把這個(gè)消息發(fā)送給另外一個(gè)線程時(shí),可以采用如下的操作:

struct msg* msg_ptr;msg_ptr = (struct msg*)rt_malloc(sizeof(struct msg)); msg_ptr->data_ptr = ...; /* 指向相應(yīng)的數(shù)據(jù)塊地址*/ msg_ptr->data_size = len; /* 數(shù)據(jù)塊的長(zhǎng)度*/ /* 發(fā)送這個(gè)消息指針給mb郵箱*/ rt_mb_send(mb, (rt_uint32_t)msg_ptr);

而在接收線程中,因?yàn)槭杖∵^來的是指針,而msg_ptr是一個(gè)新分配出來的內(nèi)存塊,所以在接收線程處理完畢后,需要釋放相應(yīng)的內(nèi)存塊:

struct msg* msg_ptr; if (rt_mb_recv(mb, (rt_uint32_t*)&msg_ptr) == RT_EOK) { /* 在接收線程處理完畢后,需要釋放相應(yīng)的內(nèi)存塊*/ rt_free(msg_ptr); }

消息隊(duì)列:也是線程或中斷與線程間通訊的一種異步通訊手段,且不限長(zhǎng)度(只能發(fā)送4字節(jié)的限制,如果長(zhǎng)度為4則消息隊(duì)列退化成消息郵箱)。每個(gè)隊(duì)列包含若干消息框,每個(gè)消息框存放一條消息。緩存池地址,消息框數(shù)及每個(gè)消息框大小,當(dāng)前已有的消息數(shù),頭和尾。
除了創(chuàng)建、刪除、初始化、解綁、收、發(fā)外還有一個(gè)緊急發(fā)送,將隊(duì)列放到消息隊(duì)列的頭而不是尾部。注意下面例子:消息隊(duì)列因?yàn)槭菙?shù)據(jù)內(nèi)容的直接復(fù)制(深拷貝),所以用局部變量即可
這樣也就免去動(dòng)態(tài)內(nèi)存分配的煩惱了(也就不用擔(dān)心,接收線程在接收到消息時(shí),消息內(nèi)存空間已經(jīng)被釋放)
void send_op(void *data, rt_size_t length) { struct msg msg_ptr; msg_ptr.data_ptr = data; /* 指向相應(yīng)的數(shù)據(jù)塊地址 */ msg_ptr.data_size = length; /* 數(shù)據(jù)塊的長(zhǎng)度 */ /* 發(fā)送這個(gè)消息指針給mq消息隊(duì)列 */ rt_mq_send(mq, (void*)&msg_ptr, sizeof(struct msg)); }
void message_handler() {struct msg msg_ptr; /* 用于放置消息的局部變量 */ /* 從消息隊(duì)列中接收消息到msg_ptr中 */ if (rt_mq_recv(mq, (void*)&msg_ptr, sizeof(struct msg)) == RT_EOK) { /* 成功接收到消息,進(jìn)行相應(yīng)的數(shù)據(jù)處理 */ } } 線程A發(fā)消息隊(duì)列給線程B,并希望得到B的收到確認(rèn)信息,此時(shí)確認(rèn)信息可以用信號(hào)量(只是通知收到了)或者用郵箱(還包括狀態(tài)值信息)

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/jieruishu/p/10254603.html

總結(jié)

以上是生活随笔為你收集整理的RTT学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人在线三级 | 99热黄色| 国产精品亚洲二区在线观看 | 日韩色图片 | 欧美乱淫 | 国产超碰自拍 | 中文在线国产 | 日韩精品一区二区三区在线播放 | 秋霞国产午夜精品免费视频 | 久久久久久久久久久久久女过产乱 | 日韩xxx视频 | 日韩精品中文字幕在线观看 | 久久影院视频 | 国产亚洲欧美精品久久久久久 | 亚洲特级黄色片 | 免费麻豆国产一区二区三区四区 | 国产欧美一区二区三区白浆喷水 | 黑料av在线 | h片在线观看视频 | 91l九色lporny | 色婷婷国产精品综合在线观看 | 日韩高清不卡 | 日韩欧美一区二区在线观看 | 色婷婷综合久久 | 亚洲精品国产精品国自产观看 | 国产一区综合 | 久久欲 | 成人永久免费 | 国产精品夜夜 | 又黄又爽视频 | av在观看| 国产精品二区在线观看 | 黄频在线播放 | 午夜羞羞网站 | 欧美一级网 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产亚洲精品网站 | 免费看一级黄色大片 | 免费的黄色片 | 麻豆精品影院 | 成人影片在线播放 | 91欧美大片| 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 美女搞黄在线观看 | 日韩一区不卡 | 国产一二三精品 | 亚天堂 | 秘密爱大尺度做爰呻吟 | 亚洲午夜精品久久久久久app | 久久久久久婷婷 | 老妇女性较大毛片 | 欧美亚洲不卡 | 91亚洲国产成人久久精品麻豆 | 日韩精品一二三四 | 亚洲欧美日韩一区二区 | 多毛的亚洲人毛茸茸 | 黄色片在线免费观看视频 | 黄色小说视频网站 | 99精品人妻少妇一区二区 | 欧美体内谢she精2性欧美 | 男人插女人免费视频 | 新版天堂资源中文8在线 | 欧美色xxx| 国产精品va在线观看无码 | 色撸撸在线视频 | 日韩精品在线观看视频 | 中文在线不卡 | 日韩av免费 | 欧美日韩在线免费观看视频 | 欧美一卡 | 咪咪色在线视频 | 黄色a一级| 污污小视频 | 天天干天天曰 | 视频黄页在线观看 | 欧美xxxx日本和非洲 | 精品99久久 | 97国产精品视频人人做人人爱 | 爱情岛亚洲首页论坛 | 欧美日韩激情网 | 久久久久久久久亚洲 | 日韩av激情 | 亚洲综合一区二区三区 | 日韩av网站大全 | 中文在线a∨在线 | 无码人妻丰满熟妇啪啪欧美 | 天躁夜夜躁狼狠躁 | 欧美一级淫片007 | 国产三级久久久久 | 日本大尺度电影免费观看全集中文版 | 天天做天天躁天天躁 | 黄色网页在线免费观看 | 天天夜夜啦啦啦 | 国产精品久久久一区二区 | 日韩不卡视频在线 | 久久一级免费视频 | jzzjzz日本丰满成熟少妇 | 欧美67194| 特一级黄色大片 |