一种psos系统下观察打印消息的方法

文档序号:6446542阅读:282来源:国知局
专利名称:一种psos系统下观察打印消息的方法
技术领域
本发明涉及嵌入式操作系统,具体地涉及一种PSOS操作系统下的调试方法。
背景技术
在编写和调试单板软件时,一种很重要的手段是通过计算机串行接口观察打印信息。单板软件往往构架在嵌入式操作系统例如PSOS操作系统之上,因此在PSOS操作系统下能够完整及时观察到打印信息,而不影响系统的正常运行就显得十分重要。
在现有技术中,PSOS系统下观察打印消息需要频繁地调用PSOS操作系统提供的Printf函数,而Printf函数本身是阻塞式的,因此某一个任务如果调用Printf函数,在函数返回之前,该任务被阻塞,消息得不到响应。对于实时性要求很高的系统而言,这样做会明显地降低系统的响应速度,更重要的是,如果一个低优先级的任务因为调用Printf函数被阻塞,而此时另一个高优先级的任务在被调度运行的过程中也调用了Printf函数,系统将会出现不可预知的错误,如果各个任务都各自频繁地调用Printf函数很容易就会造成系统死机。

发明内容
本发明就是为了克服了现有技术中的任务频繁打印会影响系统实时性和稳定性以及不可控的缺点,提出一种在PSOS操作系统下安全可靠并且可控的观察打印消息的方法。
一种PSOS系统下观察打印消息的方法,包括下列步骤(1)系统初始化,创建一个打印守护任务和一个控制命令守护任务,以及一个打印函数,所述打印函数完成将打印消息拷贝到打印消息队列后向打印守护任务发送一个打印事件的功能;(2)打印守护任务接收到打印事件被调度运行,根据控制命令守护任务提供的打印参数配置,将打印消息队列中的消息向打印控制台打印。
上述步骤(2)具体包括下列分步骤(21)打印消息调用打印函数;(22)打印函数拷贝打印消息到打印消息队列中;(23)打印函数向打印守护任务发送一个打印事件;
(24)打印守护任务接收到打印事件被调度运行,如果调度不成功,则重复分步骤(23);(25)如果调度成功,则打印守护任务根据控制命令守护任务提供的打印参数向打印控制台打印。
上述分步骤(25)中打印守护任务可以通过串口或网口向打印控制台打印;分步骤(22)中打印消息队列的长度是可以配置的。
控制命令守护任务可以接受来自打印控制台的控制命令,对打印函数的打印参数进行配置和修改;打印参数的内容包括打印使能、打印方向和打印的消息类型。
在本发明提出的方法中,打印守护任务的优先级是系统中除IDLE任务外优先级最低的,只有当其它任务都没有运行时,打印守护任务才可能得到调度,而由于PSOS操作系统是优先级抢占式的调度系统,一旦其它任务有消息需要处理,马上进行调度切换。这样一来,打印消息对系统正常运行的影响减小到最低。在本发明提出的方法中只有打印守护任务才能真正地对消息进行打印,因此避免了当高低优先级的任务都调用Printf函数时系统出现的不可预知的错误。正是由于打印守护任务对打印消息的统一处理,因此打印消息成为可控的行为,用户可以通过后台打印消息观察窗口选择打印或不打印,还可以选择打印输出方向,例如网口或串口,甚至可以选择观察消息的类型。采用本发明提出的观察打印消息的方法,与现有技术相比,提高了PSOS系统运行的稳定性,并且使观察打印消息更加安全、可靠和可控。


图1是本发明提出的方法的原理示意图。
图2是本发明提出的方法的流程图。
具体实施例方式
下面结合附图对本发明作进一步的详细说明。
图1是本发明提出的方法的原理示意图。如图1所示,本发明提出的方法中涉及的对象包括打印消息;打印函数;打印守护任务;打印控制台和控制命令守护任务。打印守护任务、控制命令守护任务和打印函数都是在系统初始化时创建的,其中打印守护务和控制命令守护任务一旦创建就处于阻塞式的接收事件状态;打印函数的功能是将打印消息拷贝到打印消息队列后向打印守护任务发送一个打印事件。图1中箭头指向表示消息或命令的发送方向,如图1所示,各种打印消息分别调用本发明所提出的打印函数;打印函数向打印守护任务发送打印事件,打印守护任务根据打印参数通过网口或串口向打印控制台打印消息;同时打印控制台还可向控制命令守护任务发送控制命令,修改打印参数;控制命令守护任务可以根据接收到的打印控制台的命令修改打印函数的打印配置。
图2是本发明提出的方法的流程图。如图2所示,本发明提出的观察打印消息的方法包括下列步骤1、系统初始化,创建一个打印守护任务、一个控制命令守护任务和一个打印函数。打印守护任务是系统中除IDLE(嵌入式操作系统中统计CPU占有率的任务)任务外优先级最低的任务;控制命令守护任务专门负责接收打印控制台发送的TCP/IP包控制命令;这两个任务一旦创建就处于阻塞式的接收事件状态。打印函数完成将打印消息拷贝到打印消息队列后向打印守护任务发送一个打印事件的功能,它由打印消息调用。2、打印消息调用打印函数。所有打印消息均调用本发明提出的打印函数。3、打印函数拷贝打印消息到打印消息队列中,在这里,打印消息队列的长度是可以根据需要进行配置的。4、打印函数向打印守护任务发送一个打印事件。在这里,本发明提出的技术方案选择了发送事件而不是发送消息,其原因是前面已经提到的打印守护任务是系统中优先级除IDLE(嵌入式操作系统中统计CPU占有率的任务)任务外最低的任务,打印函数如果向打印守护任务发送打印指示消息,打印守护任务并不一定能马上得到调度,这样一来打印指示消息势必会在打印守护任务的消息队列中堆积;另一方面,多条打印指示消息会引起打印守护任务被多次调度,实际上打印守护任务在一次调度中就可以处理完当前打印消息队列中的所有打印消息,多次调度是完全不必要的。5、打印守护任务接收到打印事件被调度运行,如果调度不成功,则重复前述步骤4。6、如果调度成功,则打印守护任务开始统一处理打印消息,通过串口或网口,根据控制命令守护任务提供的打印参数向打印控制台打印。
在本发明中,控制命令守护任务可以接受来自打印控制台的控制命令,对打印函数的打印参数进行配置和修改,内容包括打印使能、打印方向和打印的消息类型等。
权利要求
1.一种PSOS系统下观察打印消息的方法,其特征在于包括下列步骤(1)系统初始化,创建一个打印守护任务和一个控制命令守护任务,以及一个打印函数,所述打印函数完成将打印消息拷贝到打印消息队列后向打印守护任务发送一个打印事件的功能;(2)打印守护任务接收到打印事件被调度运行,根据控制命令守护任务提供的打印参数配置,将打印消息队列中的消息向打印控制台打印。
2.根据权利要求1所述的一种PSOS系统下观察打印消息的方法,其特征在于所述步骤(2)具体包括下列分步骤(21)打印消息调用打印函数;(22)打印函数拷贝打印消息到打印消息队列中;(23)打印函数向打印守护任务发送一个打印事件;(24)打印守护任务接收到打印事件被调度运行,如果调度不成功,则重复分步骤(23);(25)如果调度成功,则打印守护任务根据控制命令守护任务提供的打印参数向打印控制台打印。
3.根据权利要求2所述的一种PSOS系统下观察打印消息的方法,其特征在于所述分步骤(25)中打印守护任务通过串口向打印控制台打印。
4.根据权利要求2所述的一种PSOS系统下观察打印消息的方法,其特征在于所述分步骤(25)中打印守护任务通过网口向打印控制台打印。
5.根据权利要求2所述的一种PSOS系统下观察打印消息的方法,其特征在于所述分步骤(22)中打印消息队列的长度是可以配置的。
6.根据权利要求1所述的一种PSOS系统下观察打印消息的方法,其特征在于所述控制命令守护任务可以接受来自打印控制台的控制命令,对打印函数的打印参数进行配置和修改。
7.根据权利要求6所述的一种PSOS系统下观察打印消息的方法,其特征在于所述的打印参数的内容包括打印使能、打印方向和打印的消息类型。
全文摘要
本发明公开了一种PSOS系统下观察打印消息的方法,包括下列步骤1.系统初始化,创建打印守护任务、控制命令守护任务和打印函数;2.打印消息调用打印函数;3.打印函数拷贝打印消息到打印消息队列中;4.打印函数向打印守护任务发送一个打印事件;5.打印守护任务接收到打印事件被调度运行,如果调度不成功,则重复前述步骤4;6.如果调度成功,则打印守护任务开始统一处理打印消息,通过串口或网口,根据控制命令守护任务提供的打印参数向打印控制台打印。采用本发明提出的观察打印消息的方法,与现有技术相比,提高了PSOS系统运行的稳定性,并且使观察打印消息更加安全、可靠和可控。
文档编号G06F3/12GK1549115SQ0311348
公开日2004年11月24日 申请日期2003年5月15日 优先权日2003年5月15日
发明者唐雪, 彭德权, 孟志浩, 唐 雪 申请人:深圳市中兴通讯股份有限公司南京分公司, 深圳市中兴通讯股份有限公司南京分公
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1