本发明属于嵌入式操作系统设计领域,涉及一种嵌入式操作系统多任务通信追踪方法。
背景技术:
1、任务管理是嵌入式系统中非常重要的子系统。任务管理中多任务通信是一项重要技术,能够达到任务协同工作的目的,多任务通信方式包括了信号量、消息队列、管道等,通过上述方法可以实现多任务交互协同的目的。现有嵌入式系统在涉及多任务通信相关功能的程序发生异常时缺少分析定位功能,不利于软件调试和快速解决问题。
技术实现思路
1、本发明解决的技术问题是:克服现有技术的不足,扩展嵌入式操作系统的追踪器(trace)功能,提高嵌入式系统软件多任务协同的调试及对应发生异常定位分析的效率,提出了一种嵌入式操作系统多任务通信追踪方法,能够有效追踪嵌入式操作系统的多任务通信。
2、本发明解决技术的方案是:
3、一种嵌入式操作系统多任务通信追踪方法,包括:
4、在嵌入式操作系统的追踪器trace功能中增加一个追踪方法tracing_msg_on和追踪标识my_msg_tracing_value;
5、使用标准的linux驱动程序开发架构提供的操作结构体file_operations自行实现写功能、读功能函数;在写功能函数中置my_msg_tracing_value标识,在读功能函数中获取my_msg_tracing_value标识;
6、在嵌入式操作系统的任务管理功能中,提供了消息队列作为任务间通信的方式,在该方式的创建、删除、发送、接收4个功能中,增加信息输出,输出信息包括通信双方的任务id,消息队列id号;
7、嵌入式操作系统的任务管理功能中,当上述4个功能任意一个被使用时,判断my_msg_tracing_value标识,当my_msg_tracing_value标识被置为有效时,输出上述信息;在虚拟文件系统vfs中映射出tracing_msg_on文件,用户操作该文件控制内核态下my_msg_tracing_value标识。
8、优选的,采用标准的linux驱动程序开发架构设计思想,在内核态中增加追踪方法和追踪标识,用户态程序操作映射到虚拟文件系统vfs中的tracing_msg_on文件,实现设置内核态的追踪标识,动态控制追踪功能的启停。
9、优选的,设置内核态的追踪标识my_msg_tracing_value能够动态控制追踪功能的启停,用户在设计应用程序时,可以在某一段程序中启动追踪功能,也可以在某一段程序中关闭该功能。
10、优选的,通过追踪标识的动态控制,能够将追踪功能应用在某一段特定时间范围内。
11、优选的,多任务通信追踪方法不会影响系统本身的运行。
12、本发明与现有技术相比的有益效果是:任务管理是嵌入式操作系统中最重要子系统之一,其中多任务通信协同是一个重要技术,而消息队列作为通信方式的一种,具有使用频繁、功能强大、自带一定的数据缓存能力的特点。现有嵌入式系统未提供对多任务通信的过程追踪功能,不利于软件调试和涉及多任务通信程序在发生异常时快速解决问题。
13、本发明提供了追踪功能的同时,增加了动态启动/停止该功能的方法,便于程序在使用该功能时能够有效控制,且不影响系统本身性能。追踪功能更好的便于设计人员调试、分析定位多任务程序协同异常,提高嵌入式系统软件调试和异常问题定位分析的效率。
14、本发明是对嵌入式系统的任务管理子系统功能的扩展,通过增加对多任务通信过程的追踪,能够监控多任务协同情况,为设计人员提供一种便利的调试和分析多任务的方法。
1.一种嵌入式操作系统多任务通信追踪方法,其特征在于,包括:
2.根据权利要求1所述的一种嵌入式操作系统多任务通信追踪方法,其特征在于,采用标准的linux驱动程序开发架构设计思想,在内核态中增加追踪方法和追踪标识,用户态程序操作映射到虚拟文件系统vfs中的tracing_msg_on文件,实现设置内核态的追踪标识,动态控制追踪功能的启停。
3.根据权利要求1所述的一种嵌入式操作系统多任务通信追踪方法,其特征在于,设置内核态的追踪标识my_msg_tracing_value能够动态控制追踪功能的启停,用户在设计应用程序时,可以在某一段程序中启动追踪功能,也可以在某一段程序中关闭该功能。
4.根据权利要求1所述的一种嵌入式操作系统多任务通信追踪方法,其特征在于,通过追踪标识的动态控制,能够将追踪功能应用在某一段特定时间范围内。
5.根据权利要求1所述的一种嵌入式操作系统多任务通信追踪方法,其特征在于,多任务通信追踪方法不会影响系统本身的运行。