1394|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

C2000系统的BIOS任务线程的通信和同步 [复制链接]

1.MBX邮箱管理模块:使用一组函数通过邮箱对象的句柄管理邮箱的访问。

      通常用MBX_pend函数来等待信箱的信息。该函数可带一超时参数。

      MBX_post用来给信箱发送信息。如果有任务在等待该信箱的信息,该任务变为就绪态,同时MBX_post会根据优先级产生任务切换。如果没有任务在等待状态或邮箱尚有空间,函数MBX_post会简单将信息存储在邮箱中并返回。

      两任务线程可通过邮箱来完成数据的交换。

      MBX邮箱管理API函数:

      MBX_create:动态创建一个邮箱

      MBX_delete:删除一个邮箱

      MBX_pend:等待邮箱的信息

      MBX_post:向邮箱发送信息

      2.SEM管理模块:使用一组函数通过旗语对象的句柄来管理旗语的使用。DSP/BIOS 提供信号量旗语,SEM模块通过对旗语的技术来完成任务线程的同步和相互作用。

      用SEM_pend函数来等待旗语,可带一个超时参数。  

      SEM_post函数用于发送旗语。如果有任务在等待该该旗语,该任务变为就绪态。如果没有任务在等待该旗语,函数SEM_post仅简单的对旗语计数器加1并返回。

      SEM模块的API函数:

      SEM_count:获取旗语计数器的值

      SEM_create:动态创建一个旗语

      SEM_delete:删除一个旗语

      SEM_ipost:发送一次旗语信号(仅用于中断相应)

      SEM_new:初始化一个旗语

      SEM_pend:等待旗语信号

      SEM_post:发送旗语信号

      SEM_reset:复位旗语

      3.QUE模块:通过队列句柄的访问来管理一系列操作函数,每个队列包含0个或多个有序的元素项,其中每个元素项都是一个结构体变量,它的第一个成员类型为QUE_Elem的变量,该结构体成员用作内部指针。

      函数QUE_put和QUE_get是在禁止中断的情况下管理队列的基础函数,因此,这些函数能安全的在任务间或任务与SWI、HWI间共用队列。而其他QUE函数只能在互斥机制协调下,由任务与SWI、HWI调用。

      QUE模块API函数:

     QUE_create:动态创建一个队列

     QUE_delete:删除一个队列

     QUE_dequeue:读取队列前面的元素项

     QUE_empty:测试队列是否为空

     QUE_enqueue:在对列末尾添加元素项

     QUE_get:读取队列最前边的元素项

     QUE_head:读取对列开头的元素项

     QUE_insert:在队列之间插入一个元素项

     QUE_new:将队列设置为空

     QUE_next:返回队列下一个元素项

     QUE_prev:返回队列上一个元素项

     QUE_put:在队列尾添加元素项

     QUE_remove:读取队列中间的元素项

      4.任务间的共享资源与同步

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表