1.一种高精度时钟辅助任务执行的方法,其特征在于,所述方法包括:构建一个中断服务公共链表的步骤、任务执行的步骤及高精度时钟中断服务的步骤;其中,该中断服务公共链表的结构包括子任务的程序地址;
该任务执行的步骤包括如下子步骤:任务中若有需要请求高精度时钟中断服务的子任务,则构建子任务信息;检测该中断服务公共链表是否加锁,若加锁,继续等待并检测,直到解锁;将该中断服务公共链表加锁,将子任务信息加入到该中断服务公共链表中,然后将该中断服务公共链表解锁;及等到该子任务执行完成后加锁该中断服务公共链表,然后删除该子任务信息,并将该中断服务公共链表解锁;
高精度时钟中断服务包括如下子步骤:当产生时钟中断后,高精度时钟中断服务模块关闭该时钟中断;检测该中断服务公共链表是否加锁;若没有加锁,则加锁并访问该中断服务公共链表,根据该子任务的程序地址执行该子任务;及该子任务执行完毕后,将该中断服务公共链表解锁,清除时钟中断标志,打开时钟中断,等待下次时钟中断的到来。
2.如权利要求1所述的高精度时钟辅助任务执行的方法,其特征在于,该中断服务公共链表的结构还包括子任务的执行完成标志,根据该执行完成标志值判断该子任务是否执行完成;在构建子任务信息时,设置一个执行完成标志的初始值;当该子任务执行完成后,修改该执行完成标志值。
3.如权利要求2所述的高精度时钟辅助任务执行的方法,其特征在于,在构建子任务信息时,将该子任务的执行完成标志设置为“0”;当该子任务被执行完毕后,将该子任务的执行完成标志设置为“1”。
4.如权利要求1所述的高精度时钟辅助任务执行的方法,其特征在于,该中断服务公共链表以先到先服务的方式使用。
5.如权利要求4所述的高精度时钟辅助任务执行的方法,其特征在于,在步骤“若没有加锁,则加锁并访问该中断服务公共链表,根据该子任务的程序地址执行该子任务”中,从该中断服务公共链表中获取排在最前面的子任务,然后根据最前面的子任务的程序地址,执行该子任务。
6.如权利要求1所述的高精度时钟辅助任务执行的方法,其特征在于,该中断服务公共链表的结构还包括子任务的返回数据区,若在子任务执行过程中有返回数据,则将该返回数据直接存储在该返回数据区;在删除该子任务信息前,先取出该返回数据。
7.如权利要求1所述的高精度时钟辅助任务执行的方法,其特征在于,在高精度时钟中断服务的步骤中,若检测到该中断服务公共链表加锁,则说明有任务在向该中断服务公共链表中加入信息或删除信息,使得该中断服务公共链表有变动,取消此次高精度时钟中断服务,跳转到步骤“当产生时钟中断后,中断服务模块关闭时钟中断”。
8.如权利要求1所述的高精度时钟辅助任务执行的方法,其特征在于,在步骤“等到该子任务执行完成后加锁该中断服务公共链表,然后删除该子任务信息,并将该中断服务公共链表解锁”后还包括步骤“执行任务中的其他子任务”。