您的位置 首页 厂商

嵌入式时钟管理器的规划与完成

嵌入式时钟管理器的设计与实现,目前,在嵌入式产品的研发中,低档微处理器软件多采用裸机开发模式实现。在这种开发模式中,常有如下需求:(1) 在经历特定的时间段后,执行特定操作;(2) 根据给

  现在,在嵌入式产品的研制中,等级低微处理器软件多选用裸机开发形式完成。在这种开发形式中,常有如下需求:

  (1) 在阅历特定的时间段后,履行特定操作;

  (2) 依据给定周期履行特定操作。

  传统的作法是使用前后台方法:设定硬件定时器,使其在后台以特定周期对各相关操作的标志变量作计数操作;前台则不断对各标志变量巡回查询,若发现标志变量到达预订值,则履行特定操作。可见,上述需求需直接操作硬件定时器完成,其进程繁琐,且需求用户对相关硬件有深化了解。因而,本文规划、完成了一种使用方便的低端体系时钟管理器

  本时钟管理器适用于可供给至少一个硬件定时器的处理器。其为用户供给了有利、友爱的裁剪途径,以满意不同方针体系的实际需求。经过裁剪,该时钟管理器的方针代码最小可至100B以下,最大也不超越1KB。

  时钟管理器在完成中,将与硬件密切相关的部分组成一独立模块(文件)。针对不同的方针体系处理器,替换该模块即可。为使表述不过笼统,本文以8051系列单片机为方针体系处理器、C51为东西言语论述该嵌入式时钟管理器的规划与完成。

  1 规划

  

  该时钟管理器模块(文件)结构如图1所示。

  (1) configClk.h界说了有关体系裁剪、装备的可调参数,经过对configClk.h中相关宏参数的装备,即可完成对该时钟管理器体系的装备和裁剪。

  (2) clk_impl.*功能模块用来封装方针体系的一个硬件定时器,以屏蔽不同处理器间的硬件差异,起到HAL(HardwareAbstractLayer)效果。体系时钟在此构建。

  (3) clk.*模块在clk_impl.*供给的HAL基础上进一步封装,经过一个钩子(Hook)函数,为体系供给时钟脉冲,且脉冲宽度可调(装备configClk.h中的相关宏参即可)。

  (4) WdLib.*模块为用户使用供给多个软件定时器。

  2 完成

  2.1硬件定时器的底层封装

  硬件定时器底层封装在图1所示的clk_impl.*中完成。其间界说了一个初始化接口函数和一个定时器中止的ISR(InterruptServiceRoutine)。令选用的硬件时钟为定时器0(可在configClk.h中装备)。

  (1) 初始化接口函数void_clkInit(void){}

  用户经过调用该接口函数,可周期性地履行相应的ISR—clkTick_ISR,然后构成逻辑上的体系时钟。别的,本接口函数不为用户直接拜访,而在上层模块clk.*中被调用。

  (2) 定时器0的ISR—clkTick_ISR

  voidclkTick_ISR(void)interrupt1usingREG_GRP_FOR_

  SYS_CLK{}

  其间:REG_GRP_FOR_SYS_CLK为界说于configClk.h中的可调参数,用来设定本ISR的作业寄存器组。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/133300.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部