快捷搜索:

嵌入式开发的驱动程序的方法有哪些

一个利用软件都邑在某些时刻造访最底层的固件和进行一些硬件节制。驱动的设计和实施是确保一个系统能够满意着实时性要求的关键。以下5个秘诀是每一个者在设计驱动法度榜样时应该斟酌的,跟随我看看这些设计措施。下面就随嵌入式小编一路来懂得一下相关内容吧。

1.应用设计模式

设计模式是一个用来处置惩罚那些在软件中会重复呈现的问题的办理规划。开拓职员可以选择挥霍宝贵的光阴和预算从无到有地从新发现一个办理规划,也可以从他的办理规划对象箱中选择一个最得当办理这个问题的规划。在微呈现之初,底层驱动已经很成熟了,那么,为什么晦气用现有的成熟的办理规划呢?

驱动大年夜致分属以下4个种别:Bit bang、轮询、中断驱动和直接存储器造访(DMA)。

Bit bang模式:

当没有内外设去履行功能的时刻,或者当所有的内外设都已经被应用了,而此时又有一个新的哀求,那么开拓者就应该选择Bit bang设计模式。Bit bang模式的办理规划很有效率,但平日必要大年夜量的软件开销来确保着实施。Bit bang模式可以闪开拓者手动完成通信协议或外部行径。

轮询模式用于简单地监视一个轮询调整要领中的事故。轮询模式适用于异常简单的系统,但许多今世利用法度榜样都必要中断。

中断可以闪开拓者在事故发生时进行处置惩罚,而不用等代码手动反省。

DMA(直接存储器造访)模式容许其它来处置惩罚数据传输的需求,而不必要驱动的干预。

2.懂得实时行径

一个实时系统是否能满意实时需求取决于它的驱动法度榜样。写入能力差的驱动是低效的,并可能使不知情的开拓者放弃系统的机能。设计者必要斟酌驱动的两个:壅闭和非壅闭。一个壅闭的驱动法度榜样在其完成事情之前会阻拦其他任何软件履行操作。例如,一个USART驱动法度榜样可以把一个字符装入传输缓冲区,然后不停等到接管到传输停止标志符才继承履行下一步操作。

另一方面,非壅闭驱动则是一样平常使用中断来实现它的功能。中断的应用可以防止驱动法度榜样在等待一个事故发生时拦截其他软件的履行操作。USART的驱动法度榜样可以将一个字符装入传输缓冲区然后等主法度榜样宣布下一个指令。传输停止标志符的设置会导致中断停止,让驱动进行下一步操作。

无论哪种类型,为了维持实时机能,并防止系统中的故障,开拓职员必须懂得驱动的匀称履行光阴和最坏环境下的履行光阴。一个完备的系统可能会由于一个潜在的风险而造成更大年夜的安然问题。

3. 重用设计

在光阴和预算都很首要的环境下为什么还要再造轮子呢?在中,重用、性和可掩护性都是驱动设计的关键要求。这里面的许多特性可以经由过程硬件抽象层的设计和应用来阐明。

硬件抽象层(HAL)为开拓职员供给一种要领来创建一个标准接口去节制微节制器的外设。抽象暗藏实现细节,取而代之的是供给了可视化功能,如 Usart_Init和Usart_Trmit。这个措施便是让任何USART、SPI、PWM或其他外设具备所有微节制器都支持的合营特征。 应用HAL暗藏底层、特定设备的细节,让利用法度榜样开拓职员专注于利用的需求,而不是关注底层的硬件是若何事情的。同时HAL供给了一个重用的容器。

4.参考数据手册

微节制器在以前的几年里变得越来越繁杂。曩昔想要完全懂得一个微节制器必要掌握由一个大年夜约包孕500页组成的单一数据手册。而如今,一个32位微节制器平日包孕由部分的数据手册、全部微节制器系列的资料表、每个外设数以百计的资料以及所有的勘误表组成的数据手册。 开拓职员假如想要完全掌握这部分的内容必要懂得几千页的文件。

不幸的是,所有这些数据手册都是一个驱动法度榜样能真正合理实现所必要的。开拓职员在一开始就要对每个数据手册中包孕的信息进行网络和排序。平日它们中的每一个都必要被造访以使外设启动和运行。 关键信息被分散(或暗藏)在每种类型的数据手册中。

5.严防外设故障

近来我刚好有时机把一系列的微节制器驱动移植到其他的微处置惩罚器上。制造商和数据手册都注解PWM外设在这两个系列的微节制器之间是相同的。 然而,实际环境却是在运行PWM驱动器的时刻两者之间有很大年夜的不合。该驱动法度榜样只能在原本的微节制器事情,而在新系列的微节制器上却无效。

在反复翻看数据手册之后,我在数据手册中一个完全不相关的注脚里发清楚明了PWM外设上电时会处于故障状态,必要将一个暗藏在中的清零。在驱动法度榜样实现的开始,确认外设可能呈现的故障并查看其他看似无关的寄存器

滥觞:电子工程天下

您可能还会对下面的文章感兴趣: