嵌入式系统开发:驱动程序设计的5个方法
作者:天博app 发布时间:2022-09-12 00:39
本文摘要:每一个嵌入式应用软件都会在某些时候采访最底层的固件和展开一些硬件掌控。驱动的设计和实行是保证一个系统需要符合其实时性拒绝的关键。以下五个窍门是每一个开发者在设计驱动程序时应当考虑到的。 1-用于设计模式 设计模式是一个用来处置那些在软件中不会反复经常出现的问题的解决方案。 开发人员可以自由选择浪费宝贵的时间和支出从无到有地新的发明者一个解决方案,也可以从他的解决方案工具箱中自由选择一个最合适解决问题这个问题的方案。

天博app下载

每一个嵌入式应用软件都会在某些时候采访最底层的固件和展开一些硬件掌控。驱动的设计和实行是保证一个系统需要符合其实时性拒绝的关键。以下五个窍门是每一个开发者在设计驱动程序时应当考虑到的。  1-用于设计模式  设计模式是一个用来处置那些在软件中不会反复经常出现的问题的解决方案。

开发人员可以自由选择浪费宝贵的时间和支出从无到有地新的发明者一个解决方案,也可以从他的解决方案工具箱中自由选择一个最合适解决问题这个问题的方案。在微处理器经常出现之初,底层驱动早已很成熟期了,那么,为什么不利用现有的成熟期的解决方案呢?  驱动程序设计模式大体分属以下4个类别:bitbang、轮询、中断驱动和必要存储器采访(DMA)。  Bitbang模式:当微控制器没内外另设去继续执行功能的时候,或者当所有的内外另设都早已被用于了,而此时又有一个新的催促,那么开发者就应当自由选择bitbang设计模式。Bitbang模式的解决方案很有效率,但一般来说必须大量的软件支出来保证其实行的能力。

bitbang模式可以让开发者手动已完成通信协议或外部不道德。  轮询模式用作非常简单地监控一个轮询调度方式中的事件。轮询模式限于于非常简单的系统,但许多现代应用程序都必须中断。

  中断可以让开发者在事件再次发生时展开处置,而不必等代码手动检查。  DMA(必要存储器采访)模式容许其它外围设备来处置数据传输的市场需求,而不必须驱动的介入。

  2-理解动态不道德  一个实时系统符合否能符合动态市场需求各不相同它的驱动程序。载入能力差的驱动是陈旧的,并有可能使不知情的开发者退出系统的性能。

设计者必须考虑到驱动的两个特点:堵塞和非堵塞。一个堵塞的驱动程序在其已完成工作之前不会制止其他任何软件继续执行操作者。例如,一个USART驱动程序可以把一个字符取出传输缓冲区,然后仍然等到接管到传输完结标志符才继续执行下一步操作者。

  另一方面,非堵塞驱动则是一般利用中断来构建它的功能。中断的用于可以避免驱动程序在等候一个事件再次发生时截击其他软件的继续执行操作者。

USART的驱动程序可以将一个字符取出传输缓冲区然后等主程序公布下一个指令。传输完结标志符的设置不会造成中断完结,让驱动展开下一步操作者。

  无论哪种类型,为了维持动态性能,并避免系统中的故障,开发人员必需理解驱动的平均值继续执行时间和最坏情况下的继续执行时间。一个原始的系统可能会因为一个潜在的风险而导致更大的安全性问题。  3-器重设计  在时间和支出都很紧绷的情况下为什么还要再生轮子呢?在驱动程序研发中,器重、便携性和可维护性都是驱动设计的关键拒绝。

这里面的许多特征可以通过硬件抽象化层的设计和用于来解释。  硬件抽象化层(HAL)为开发人员获取一种方式来创立一个标准接口去掌控微控制器的外设。

天博app下载

抽象化隐蔽构建细节,取而代之的是获取了可视化功能,如Usart_Init和Usart_Transmit。这个方法就是让任何USART、SPI、PWM或其他外设不具备所有微控制器都反对的联合特点。

天博app下载

用于HAL隐蔽底层、特定设备的细节,让应用程序开发人员专心于应用于的市场需求,而不是注目底层的硬件是如何工作的。同时HAL获取了一个器重的容器。  4-参照数据手册是的,全部  微控制器在过去的几年里显得更加简单。

以前想几乎理解一个微控制器必须掌控由一个约包括500页构成的单一数据手册。而如今,一个32位微控制器一般来说包括由部分的数据手册、整个微控制器系列的资料表格、每个外设数以百计的资料以及所有的勘误表构成的数据手册。开发人员如果想几乎掌控这部分的内容必须理解几千页的文件。

  意外的是,所有这些数据手册都是一个驱动程序能确实合理构建所必须的。开发人员在一开始就要对每个数据手册中包括的信息展开搜集和排序。

一般来说它们中的每一个都必须被采访以使外设启动和运营。关键信息被集中(或隐蔽)在每种类型的数据手册中。

  5-谨防外设故障  最近我恰好有机会把一系列的微控制器驱动重制到其他的微处理器上。制造商和数据手册都指出PWM外设于这两个系列的微控制器之间是完全相同的。然而,实际情况毕竟在运营PWM驱动器的时候两者之间有相当大的有所不同。该驱动程序不能在原本的微控制器工作,而在新的系列的微控制器上却违宪。

  在重复翻阅数据手册之后,我在数据手册中一个几乎不相关的这段话里找到了PWM外设上电时会正处于故障状态,必须将一个隐蔽在寄存器中的标志位清零。  在驱动程序构建的开始,证实外设有可能经常出现的故障并查阅其他看起来牵涉到的寄存器错误。


本文关键词:天博app,嵌入式,系统,开发,驱动,程序设计,的,5个,方法

本文来源:天博app-www.gangdz.com

电话
0869-88901623