《基于嵌入式实时操作系统的编程技术》笔记清单:第八章数据通信

《基于嵌入式实时操作系统的编程技术》笔记清单:第三章任务划分.
《基于嵌入式实时操作系统的编程技术》笔记清单:第四章任务设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第六章行为同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第七章资源同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第八章数据通信.
《基于嵌入式实时操作系统的编程技术》笔记清单:第九章时间管理.
《基于嵌入式实时操作系统的编程技术》笔记清单:第十章采集任务设计.

前言

在嵌入式系统的运行过程中,ISR与任务之间、任务与任务之间必然伴随数据通信。在实时操作系统支持下,这种数据通信可以采用很多种方法来实现,应根据实际情况来选择最合适的方法。

本章笔记清单

1. 全局变量

1)可充当一种共享资源。
2)可实现数据传输,但不能实现同步。
3)传输的数据量不大时,采用全局变量并配合关中断的资源同步措施,是一种经济、有效的方法。

2. 消息邮箱

1)当通信双发的执行均有周期性(且周期相同时),“消息邮箱”是最合适的通信工具。

3. ISR发送消息的三种方法

1)将消息保存在全局变量里。
2)将消息保存在ISR的静态局部变量里。因为静态局部变量有固定的地址,函数退出,依然存在。推荐使用这种方法,因为可读性强。
3)将消息内容冒充指针发送出去。

中断服务函数
{
	int temp;
	...
	OSMboxPost(MyBox, (void*)temp);
}

4. 消息队列

1)消息邮箱需要“一唱一和”,而发送接收时间不是周期性的,可以选用消息队列。
2)消息队列适用场合:
           ~~~~~~~~~~ a. 通信双方至少一方没有稳定的执行周期;
           ~~~~~~~~~~ b. 通信双发执行周期不同,消息的产生周期短,消息的出来周期长,但可以一次性处理多条消息。
3)需要准备两个数组:
           ~~~~~~~~~~ a.“消息指针数组”,供实时操作系统用来排队使用;
           ~~~~~~~~~~ b.“消息内容数组”,用来保存消息数据,供用户使用。每次传输,以一个数组为单位。
4)如果发往消息队列的消息全是内容比较简单(不超4字节)的“短消息”,就可以省略“消息内容数组”。



5.题外话

普通人该如何逆袭?

话再说回来,今后我们该如何逆袭呢?

大家记住:会赚钱不如让自己更值钱,请围绕以下三点努力:

1)与其拿回报,不如要股权;选择你看好的客户,进行深度服务,少拿点现金收益,多拿长期收益,比如股权。

2)与其依赖公司,不如依赖个人实力和影响力。千万不要过于依赖平台,而是要借助平台的力量打造你的个人品牌。

3)与其给别人做服务,不如做原创作品。只有原创作品才能形成你的个人品牌,才能打造你的个人IP。

——转自水木然学社公众号文章《取代房子,中国又一种资本在崛起!》

猜你喜欢

转载自blog.csdn.net/weixin_38956024/article/details/107282732