【技术实现步骤摘要】
基于VxWorks系统的多任务间共享内存的管理方法
本专利技术属于VxWorks共享内存
,具体涉及一种基于VxWorks系统的多任务间共享内存的管理方法。
技术介绍
VxWorks是由美国风河公司推出的运行在目标机上的高性能、可裁减的嵌入式实时操作系统。VxWorks以其卓越的实时性和良好的可靠性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求高的领域中。为了保证整机的实时性能,目前稍复杂的程序开发大多采用多任务设计,将实时性能要求最高的任务分配最高优先级,其他任务在满足功能性能指标的同时可以延缓执行,多任务之间往往需要进行交互,目前主要存在以下几种通信方式。1、信号量是任务间最快速的通信机制,VxWorks系统提供了二进制、互斥和计数三种信号量,用于解决任务间的互斥和同步。二进制信号量主要用于任务的同步,互斥信号量可以解决内在的互斥问题,主要用于优先级继承、安全删除等,计数信号量在二进制信号量的基础上增加了计数功能,可以解决一个资源多个成员需要保护的情况。信号量机制通信速度快、系统开销小 ...
【技术保护点】
1.一种基于VxWorks系统的多任务间共享内存的管理方法,其特征在于,包括以下步骤:/n步骤1、确定总的执行任务,包括数据接收任务、数据记录任务、断电保护任务、周期自检任务,设置任务优先级顺序为:数据接收任务>断电保护任务>数据记录任务>周期自检任务,其中数据记录任务的数量为1;/n步骤2、根据估算的实际通信容量和频率,通过malloc函数动态申请一块容量足够的全局内存g_pool,并将内存块g_pool等长划分为N个数据块,其中根据接收的数据量将每个数据块的大小定为1024字节,数据块的个数定为10000;/n步骤3、通过msgQCreate函数先建立 ...
【技术特征摘要】
1.一种基于VxWorks系统的多任务间共享内存的管理方法,其特征在于,包括以下步骤:
步骤1、确定总的执行任务,包括数据接收任务、数据记录任务、断电保护任务、周期自检任务,设置任务优先级顺序为:数据接收任务>断电保护任务>数据记录任务>周期自检任务,其中数据记录任务的数量为1;
步骤2、根据估算的实际通信容量和频率,通过malloc函数动态申请一块容量足够的全局内存g_pool,并将内存块g_pool等长划分为N个数据块,其中根据接收的数据量将每个数据块的大小定为1024字节,数据块的个数定为10000;
步骤3、通过msgQCreate函数先建立1个成员数为10000的全局消息队列,命名为MsgQ1,将其属性设置为先进先出MSG_Q_FIFO,数据长度为2字节即可满足标号为10000的需求,并将数字1~10000发送至队列MsgQ1,将MsgQ1填满,通过此方式将MsgQ1的标号与共享内存g_pool中的每个数据块建立一一对应的关系;然后再建立1个成员数为10000的全局消息队列,命名为MsgQ2,将其属性设置为按优先级排队MSG_Q_PRIORITY,数据长度为6字节,包括消息标号、消息类型、消息长度三个信息;
步骤4、在系统启动后,数据接收任务通过接收MsgQ1申请标号,来对共享内存g_pool进行操作,将共享内存g_pool的数据填写完成后,通过发送消息至MsgQ2,完成对数据记录任务的告知;
步骤5、数据记录任务通过实时接收MsgQ2中信息,根据消息标号和数据长度来获取共享内存g_pool中的数据内容,根据消息类型对数据内容进行解析及实时处理,并将接收到的标...
【专利技术属性】
技术研发人员:王青松,李方,所玉君,崔建飞,
申请(专利权)人:天津津航计算技术研究所,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。