时钟节拍是特定的周期性中断,根据本系统的性能指标,取1毫秒。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。另外,系统信息的定时显示需要系统每隔一定的时钟节拍显示一次。
(5)存储空间的分配
为了减少操作系统的体积,只应用操作系统的任务调度、任务切换、信号量处理、延时及超时服务几部分。这样可使该操作系统的大小减小到3~5KB,再加上应用程序最大可达50KB左右。
因为每个任务都是独立运行的,每个任务都具有自己的栈空间。这样可以根据任务本身的需求(局部变量、函数调用、中断嵌套等)来分配其RAM空间。
3 系统运行的实时性分析
在该系统中应用μC/OS-II实时内核,一是增强了系统运行的稳定性,更重要的是满足了系统测量所需的实时性要求。系统采用12MHz晶振,一条指令的周期是1微秒。以下时间的统计是将C语言编译为汇编语言后,根据其指令的多少而计算出来的。经统计如下:
·中断管理:共需3毫秒;
·内存管理:共需800微秒;
·信号量管理:共约4.5毫秒;
·任务管理:共需8毫秒;
·时钟管理:共需约20毫秒;
·杂项:约需1毫秒。
上述时间均是最大运行时间的大概统计,也就是均考虑有任务切换情况下的时间统计结果。在整个内核的应用上对一些函数进行了裁减,没有用的服务在预编译时屏蔽掉了,因此未计入统计时间。
用户定义函数:按键中断处理15毫秒,LCD显示一屏30毫秒,串行通信10毫秒,打印及声光报警400毫秒,信道巡检A/D采样与数据处理20毫秒,系统信息显示10毫秒,系统工作参数测量150毫秒,电源的切换与充电50毫秒。可见系统各任务中除打印所需时间较长外,其余任务所需时间都比较短。通过采用实时内核,在很大程度上保证了对信道扫描的定时性,即实时性要求。若采用前后台编程,在查询信道扫描的情况下,系统扫描信道的时间不能确定;随着信道数的变化,信道扫描的定时性很难得到保证,各种显示的定时性也比较差。
总之,随着各种应用电子系统的复杂化和系统实时性需求的提高,并伴随应用软件朝着系统化方向发展的加速,μC/OS-II实时内核一定会得到更大的发展。因为它可以使产品更加稳定可靠,开发过程更加规范,且缩短了开发周期。