欢迎来到电工学习网!

电子技术

当前位置:电工学习网 > 电工技术基础 > 电子技术 >

嵌入式体系驱动程序计划诀窍

时间:2017-11-13|栏目:电子技术|点击:

嵌入式体系驱动程序计划诀窍
1 - 运用计划办法

  计划办法是一个用来处理那些在软件中会重复呈现的疑问的处理计划。 开发人员能够挑选糟蹋名贵的时刻和核算从无到有地从头创造一个处理计划,也能够从他的处理计划东西箱中挑选一个最适宜处理这个疑问的计划。在微处理器呈现之初,底层驱动现已很老到了,那么,为何不运用现有的老到的处理计划呢?

  驱动程序计划办法大致分属以下4个品种:bit bang、轮询、中止驱动和直接存储器拜访(DMA)。

  Bit bang办法:当微操控器没有表里设去实行功用的时分,或许当悉数的表里设都现已被运用了,而此刻又有一个新的恳求,那么开发者就应当挑选bit bang计划办法。Bit bang办法的处理计划很有用率,但一般需求很多的软件开支来保证其施行的才干。bit bang办法能够让开发者手动完结通讯协议或外部做法。

  轮询办法用于简略地监督一个轮询调度办法中的作业。轮询办法适用于十分简略的体系,但很多现代运用程序都需求中止。

  中止能够让开发者在作业发作时进行处理,而不必等代码手动检查。

  DMA(直接存储器拜访)办法容许其它外围设备来处理数据传输的需求,而不需求驱动的干涉。

  2 - 了解实时做法

  一个实时体系满意是不是能满意实时需求取决于它的驱动程序。写入才干差的驱动是低效的,并或许使不知情的开发者扔掉体系的功用。计划者需求思考驱动的两个特征:堵塞和非堵塞。一个堵塞的驱动程序在其完结作业之前会阻挠别的任何软件实行操作。例如,一个USART驱动程序能够把一个字符装入传输缓冲区,然后一向比及接纳到传输完毕象征符才持续实行下一步操作。

  另一方面,非堵塞驱动则是一般运用中止来完结它的功用。中止的运用能够避免驱动程序在等候一个作业发作时阻拦别的软件的实行操作。USART的驱动程序能够将一个字符装入传输缓冲区然后等主程序发布下一个指令。传输完毕象征符的设置会致使中止完毕,让驱动进行下一步操作。

  不论哪品种型,为了坚持实时功用,并避免体系中的缺陷,开发人员有必要了解驱动的均匀实行时刻和最坏状况下的实行时刻。一个无缺的体系或许会由于一个潜在的危险而构成更大的安全疑问。

  3 - 重用计划

  在时刻和核算都很严峻的状况下为何还要再造轮子呢?在驱动程序开发中,重用、便携性和可保护性都是驱动计划的要害恳求。这儿面的很多特征能够经过硬件笼统层的计划和运用来阐明。

  硬件笼统层(HAL)为开发人员供应一种办法来创立一个规范接口去操控微操控器的外设。笼统躲藏完结细节,取而代之的是供应了可视化功用,如Usart_Init和Usart_Transmit。这个办法即是让任何USART、SPI、PWM或别的外设具有悉数微操控器都支撑的一同特征。 运用HAL躲藏底层、特定设备的细节,让运用程序开发人员专心于运用的需求,而不是注重底层的硬件是怎样作业的。一同HAL供应了一个重用的容器。

  4 -参阅数据手册… 是的,悉数

  微操控器在曩昔的几年里变得越来越杂乱。从前想要彻底了解一个微操控器需求把握由一个大概包括500页构成的单一数据手册。而现在,一个32位微操控器一般包括由有些的数据手册、悉数微操控器系列的材料表、每个外设数以百计的材料以及悉数的勘误表构成的数据手册。 开发人员假定想要彻底把握这有些的内容需求了解几千页的文件。

  意外的是,悉数这些数据手册都是一个驱动程序能真实合理完结所需求的。开发人员在一初步就要对每个数据手册中包括的信息进行搜集和排序。一般它们中的每一个都需求被拜访以使外设主张和作业。 要害信息被涣散(或躲藏)在每品种型的数据手册中。

  5 - 谨防外设缺陷

  近来我刚好有机遇把一系列的微操控器驱动移植到别的的微处理器上。制作商和数据手册都标明PWM外设在这两个系列的微操控器之间是一样的。 可是,实习状况却是在作业PWM驱动器的时分两者之间有很大的纷歧样。该驱动程序只能在正本的微操控器作业,而在新系列的微操控器上却无效。

  在重复翻看数据手册往后,我在数据手册中一个彻底不有关的注脚里发现了PWM外设上电时会处于缺陷状况,需求将一个躲藏在寄存器中的象征位清零。

  在驱动程序完结的初步,供认外设或许呈现的缺陷并检查别的看似无关的寄存器过错。

上一篇:d2901带阻尼吗及代换

栏    目:电子技术

下一篇:电路的构造办法

本文标题:嵌入式体系驱动程序计划诀窍

本文地址:http://www.22plc.com/js/dianzijishu/2017/1113/101609.html

本站部分资源是从网上搜集编辑的,若侵犯了您的版权和利益,请发邮件:6461607@qq.com联系我们!我们会在收到信息的第一时间内予以处理!
网站备案号:粤ICP备15065268号-1