嵌入式时钟管理器适用于可提供至少一个硬件定时器的处理器。其为用户提供了有益、友好的裁剪途径,以满足不同目标系统的实际需要。通过裁剪,该时钟管理器的目标代码最小可至100B以下,最大也不超过1KB。嵌入式时钟管理器特点 (1)在经历特定的时间段后,执行特定操作;(2)根据给定周期执行特定操作。传统的作法是利用前后台方式:设定硬件,使其在后台以特定周期对各相关操作的标志变量作计数操作;前台则不断对各标志变量巡回查询,若发现标志变量达到预定值,则执行特定操作。可见,上述需求需直接操作硬件定时器实现,其过程繁琐,且需要用户对相关硬件有深入了解。因此,设计、实现了一种使用方便的低端系统时钟管理器。时钟管理器在实现中,将与硬件密切相关的部分组成一独立模块(文件)。针对不同的目标系统处理器,更换该模块即可。为使表述不过抽象,以8051系列单片机为目标系统处理器、C51为工具语言阐述该嵌入式时钟管理器的设计与实现。 嵌入式时钟管理器结构 (1)cfigClk.h定义了有关系统裁剪、配置的可调参数,通过对configClk.h中相关宏参数的配置,即可实现对该时钟管理器系统的配置和裁剪。(2)clk_impl.*功能模块用来封装目标系统的一个硬件定时器,以屏蔽不同处理器间的硬件差异,起到HAL(HardwareAbSTractLayer)作用。系统时钟在此构建。(3)clk.*模块在clk_impl.*提供的HAL基础上进一步封装,通过一个钩子(Hook)函数,为系统提供时钟脉冲,且脉冲宽度可调(配置configClk.h中的相关宏参即可)。(4)WdLib.*模块为用户应用提供多个软件定时器。 嵌入式时钟管理器实现 硬件定时器的底层封装硬件定时器底层封装在图1所示的clk_impl.*中实现。其中定义了一个初始化函数和一个定时器中断的ISR(Interrupt Service RouTIne