文档介绍:一种程序调度的方法
专利名称:一种程序调度的方法
技术领域:
本发明涉及软件开发领域,尤其涉及8位、16位等中低端处理器程序开发中的程序调度方法及装置。
背景技术:
处理器,一般有高端和低端之分。高端处理器,例如高端单片机,高端单图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。
处理器包括高端处理器和中低端处理器,以单片机为例,高端的有,64位单片机, 中低端的有8位、16位等单片机。对于高端处理器来说,一般移植有操作系统,运行速度比较快,而中低端处理器由于系统资源有限,不适合移植操作系统,所以处理器程序的调度方法对于提高处理器运行速度显得更为重要。下面以8位,16位单片机为例,说明本发明是处理器程序调度方法是如何提高程序的执行效率。可以理解的是,虽然本发明比较适合没有移植操作系统的中低端处理器,尤其是8位、16位等中低端单片机,但如果高端处理器, 比如高端单片机采用本发明构思的程序调度方法,一样属于本发明保护的范围。下面,以8 位、16位等中低端单片机为例,具体说明本发明的发明构思现有技术中,中低端单片机一般采用在main函数中设置一个无限循环的方式来实现用户功能,这种方式使得单片机的程序结构性变差,尤其当用户要实现的功能很多时, 程序会很复杂,此时main函数几乎没有结构性,这给程序员进行维护或修改用户程序带来了很大的困扰。同时,main函数的运行机制加上程序结构性差等因素,导致现有技术中的单片机执行效率低,不能快速的实现期望的功能。基于此,本发明首先将单片机程序划分为一个个用于实现预定功能的任务函数, 以此提高单片机程序的结构性,增加了程序员或用户修改程序的方便性。然后以消息事件驱动任务函数执行预定的功能,从而提高了程序的执行效率。在此过程中,各个任务共享系统堆栈,有利于节约系统资源。实施例1 如图1所示,本发明实施例提供了一种单片机程序调度方法,包括11、在单片机程序中设置至少一个任务函数,任务函数用于实现预定的功能,并为每个任务函数配置任务ID。12、设置消息队列,消息队列中每一条消息包括任务ID和传送数据指针;13、提取消息队列中的消息,根据任务ID索引对应的任务函数,并向其传递传送数据指针,调度任务函数执行操作。步骤11中,单片机程序中任务函数的个数根据实际情况而定,任务函数的功能也由用户或程序员预先确定,每个任务函数可以只实现一个功能,也可以实现多个功能。每个任务函数由与之对应的任务ID索引,如图2所求,在一种实施方式中,配置有专门用于索引任务函数的任务表,该表包括任务ID和任务函数句柄,任务ID和任务函数句柄一一对应,任务函数句柄就是对应就任务函数的函数指针,也就是任务函数入口指针。此表中,任务ID和任务函数句柄可以由用户填写,该表在代码中的表现形式可以是二维数组的形式。当然,也可以根据实际情况灵活设置。步骤12中,消息队列中的每一条消息包括任务ID和传送数据指针。任务ID对应任务函数句柄,即任务函数指针,用于索引任务函数,传送数据指针用于任务间发送消息时附带传递的参数,如果有数据需要传递,可将待传递数据的指针填充到该项,如果没有数据需要传递,该传送数据指针为空。如图3所示,在一种实施方式中,消息队列为环形队列,该消息队列可以表示中断消息队列,也可以表示任务消息队列,中断消息队列和任务消息