嵌入式实时操作系统程序设计学习心得(二)

时间:2021-04-17 19:51:42

数字通信

数据不大时,用全局变量作为公共资源,配合中断访问,以信号量同步之。

数据大时,运用消息队列机制,把内存数据块作为内容缓冲区。

消息邮箱具有行为同步的功能,当双方的执行频度一样时,消息邮箱很适合,此时的消息是通信双方的局部变量。(注意,ISR应用static保护局部变量,否则它的局部变量会随其结束而消失)

发送一个字以内的短小消息时,可以利用消息邮箱机制,把数据伪装成指针传递给其他任务。

消息队列适合以下场合(需要缓冲功能):

1)、通信双方至少有一方没有稳定的执行周期;

2)、通信双方的执行周期都不同。

a)、试用消息队列需要定义一个消息指针数组,一个消息内容数组;

b)、如果消息内容简短,可以不需消息内容数组(冒充指针法)。

串行通信

1)、相邻两次串行接收中断的时间间隔必须大于系统死区时间;

2)、接收缓冲的空闲时间必须足够存放在死区时间内接收的新数据。

(在满足中断间隔时间大于死区时间的前提下,将中断条件设置为接收缓冲区的一半,即使死区时间接近中断间隔时间,接受过程也是可靠的。)


——《基于嵌入式实时操作系统的程序设计技术》[周航慈] 书摘