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

数字通信


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

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

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

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

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

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

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

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

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



串行通信


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

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

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


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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值