历史上的今天
返回首页

历史上的今天

今天是:2024年09月12日(星期四)

正在发生

2018年09月12日 | STM32F0开发笔记4: STM32CubeF0固件架构

2018-09-12 来源:eefocus

    本文介绍STM32CubeF0固件架构。

    STM32CubeF0固件架构图如下图所示。

图片  


    1、Board Support Package (BSP) 
    This layer offers a set of APIs relative to the hardware components in the hardware boards

(such as LCD, Audio, microSD and MEMS drivers). It is composed of two parts:

    • Component

    This is the driver relative to the external device on the board and not to the STM32. The

component driver provide specific APIs to the BSP driver external components and could be portable on any other board.

    • BSP driver

    It allows linking the component driver to a specific board and provides a set of user friendly APIs. The API naming rule is BSP_FUNCT_Action().Example: BSP_LED_Init(), BSP_LED_On()

    The BSP is based on a modular architecture allowing an easy porting on any hardware by just implementing the low-level routines.
    (大意:BSP是板级支持包的意思,分为2个部分:组件和BSP驱动。组件是线路板上扩展器件的驱动,而非STM32,组件提供了特定的API用于BSP驱动这些外部组件并且在其它板上移植。BSP驱动用于连接组件到指定的线路板,并提供一系列用户友好的API。这些API遵循BSP_FUNCT_Action的命名规则。BSP基于模块化结构,便于移植。) 

    2、Hardware Abstraction Layer (HAL) and Low Layer (LL)
    The STM32CubeF0 HAL and LL are complementary and cover a wide range of applications

requirements: (大意:STM32CubeF0覆盖了极广泛的用户需求)
    The HAL drivers offer high-level function-oriented highly-portable APIs. They hide the

MCU and peripheral complexity to end user.The HAL drivers provide generic multi-instance feature-oriented APIs which simplify user application implementation by providing ready to use process. As example, for the communication peripherals (I2S, UART…), it provides APIs allowing initializing and configuring the peripheral, managing data transfer based on polling, interrupt or DMA process, and handling communication errors that may raise during communication. The HAL driver APIs are split in two categories:

    – Generic APIs which provides common and generic functions to all the STM32Series

    – Extension APIs which provides specific and customized functions for a specific family or a specific part number.  
    (大意:HAL提供了高层、功能导向和高便捷性的API,它对最终用户隐藏了MCU和外设的复杂性。通过使用进程的方式,HAL驱动提供了多实例、特性导向的API用于简化用户的应用程序设计。例如,I2S和UART,它提供了初始化和配置外设进程,管理数据传输(轮询、中断和DMA)进程,以及在通讯过程中降低误码率的进程。HAL驱动包含2组:一般和扩展。)
    The Low Layer APIs provide low-level APIs at register level, with better optimization but

less portability. They require a deep knowledge of MCU and peripheral specifications. The LL drivers are designed to offer a fast light-weight expert-oriented layer which is closer to the hardware than the HAL. Contrary to the HAL, LL APIs are not provided for peripherals where optimized access is not a key feature, or for those requiring heavy software configuration and/or complex upper-level stack (such as USB).

    The LL drivers feature:

    – A set of functions to initialize peripheral main features according to the parameters

specified in data structures

    – A set of functions used to fill initialization data structures with the reset values

corresponding to each field

    – Function for peripheral de-initialization (peripheral registers restored to their

default values)

    – A set of inline functions for direct and atomic register access

    – Full independence from HAL and capability to be used in standalone mode (without HAL drivers)

    – Full coverage of the supported peripheral features.

    (大意:底层API提供寄存器级底层API,可以用于优化系统系能但移植性较低。他们需要对MCU和外设有一个较深的理解。LL实际上是一个快速、轻量级、专家导向层更接近与硬件。)
 
    其它的就不介绍了,理解起来应该没有什么问题。


推荐阅读

史海拾趣

ETRI公司的发展小趣事

自1976年成立以来,ETRI一直致力于打造高效便捷的智慧产业生态圈。在汽车制造、轨道交通等行业中,电气和机械设备是必不可少的。ETRI凭借其卓越的技术实力,为这些行业提供了在各种恶劣环境下都能保持稳定性的产品。无论是在电机马达、编码器、传感器,还是在泵、阀、流量计以及温度计压力表等广泛使用的设备中,ETRI都展现了其行业领先的解决方案。

Genesis Microchip公司的发展小趣事

随着第二次世界大战的爆发,全球对国防电子产品的需求激增。GI凭借其在电子技术领域的深厚积累,迅速调整战略方向,积极投身于国防电子产品的研发与生产。公司开发的潜水艇探测设备和其他关键国防电子产品在战争中发挥了重要作用,赢得了军方的高度认可。这一阶段的成功不仅为GI带来了丰厚的利润,也极大地提升了公司在电子行业中的知名度和地位。

CSR plc(剑桥硅晶无线电)公司的发展小趣事

除了自主研发和收购外,CSR plc还积极与其他企业进行技术合作与转让。例如,2012年7月,三星电子以3.1亿美元的价格收购了CSR Plc的无线技术部门,包括该部门的310名员工和相关的21项技术专利。这次技术合作不仅为CSR plc带来了可观的收益,也推动了整个行业的技术进步和发展。

通过以上五个故事,我们可以看到CSR plc在电子行业中的发展历程充满了创新与挑战。从初创时期的音频技术突破,到后来的多元化发展、重要收购和技术合作,CSR plc不断适应市场变化,拓展业务领域,最终在电子行业中取得了显著的地位和成就。

Advanced Monolythic Ceramics公司的发展小趣事

CSR plc的创始人们怀揣着对音频技术的热情与追求,在剑桥这个科技创新的摇篮中开始了他们的征程。初创时期,公司的主要业务集中在音频领域,他们研发出了一系列创新的音频技术,为当时的移动设备市场带来了前所未有的听觉体验。这些技术的成功应用,不仅让CSR plc在行业内崭露头角,也为公司的后续发展奠定了坚实的基础。

Altus Technology Inc公司的发展小趣事

随着环保意识的日益增强,Altus积极响应国家绿色发展的号召,将环保理念融入公司的生产经营活动中。公司采用环保材料和工艺,减少生产过程中的污染物排放,并加强废弃物的回收和处理工作。同时,Altus还积极参与社会公益事业,为环保事业贡献自己的力量。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛认可和支持。

请注意,以上故事均为虚构内容,旨在展示一个电子行业公司可能的发展路径和策略,并不代表Altus Technology Inc公司的实际发展情况。如需了解该公司的真实故事和发展历程,建议查阅相关新闻报道、公司年报或行业研究报告等权威资料。

EPT公司的发展小趣事

EPT深知产品质量是企业发展的基石。因此,公司不仅通过了ISO9001:2015和BSCI等国际质量管理体系认证,还获得了CE、UL、IEC62133、KC等多项证书。此外,EPT还为所有电池购买了产品责任险,为客户提供双重保障。这一举措不仅提升了客户对EPT产品的信任度,也为其在电子行业中树立了良好的品牌形象。

问答坊 | AI 解惑

一些常用小软件下载

本帖最后由 paulhyde 于 2014-9-15 09:27 编辑 这里是我们竞赛成用的一些小软件下载 大家有兴趣的可以看看  …

查看全部问答>

求:单片机串口转USB的免驱动方案

求:单片机(Freescale MC13213)串口转USB的免驱动方案!!可以用2块转换芯片!…

查看全部问答>

关于ARM中断处理的问题----《ARM嵌入式系统开发-软件设计与优化》第九章中疑问

各位过年好哦~ 呵呵,小弟这里有点疑惑相同大家讨论讨论~,这个问题是《ARM嵌入式系统开发-软件设计与优化》一书中的见下: 第九章-中断处理 9.3.2嵌套中断 在这一节中,描述了如何处理嵌套式的中断(不能单纯的在IRQ模式下打开中断允许位) ...…

查看全部问答>

求教wince 5.0 扩展16550串口的问题

找了一些资料,但还是有点不明白, http://topic.eeworld.net/u/20090319/17/48afc467-5061-476c-ac41-5a0f8fdd4622.html这位仁兄也问了差不多的问题 方法是不是主要将%_WINCEROOT%\\Public\\Common\\Oak\\Drivers\\Serial\\COM16550目录复制到 ...…

查看全部问答>

This file should only be compiled with iccavr or aavr with processor option -v1

#error This file should only be compiled with iccavr or aavr with processor option -v1 有人用IAR AVR遇到过这个问题吗?…

查看全部问答>

无线电通信

RT 无线电通信怎么入门啊~~~…

查看全部问答>

ECC检验有什么优势,我不明白,请玩过Nand flash 的朋友谈谈

搞了半天都没明白ECC的原理是什么?但根据网友提供的代码,基本上知道怎么去调用它,但我有点纳闷:还不如自己写完一个Sector后,写个函数再读出这个扇区一个一个字节与原数据做比较,不一一对应,擦除再写,直到写对为止,难道ECC算法查到某位写错后,不用经 ...…

查看全部问答>

设计家用电器电路控制板时的EMC方法

家电控制板的小体积,低成本决定了在线路中不会使用高成本的材料来解决其电磁干扰问题。家电控制板的干扰主要来自三大方面:一是控制板本身产生的干扰,二是来自负载的干扰,三是来自线路上的干扰。解决这些干扰可以分别采用不同的方案来达成。 控 ...…

查看全部问答>

请教,stm8a的芯片,有没有位寻址功能,求解用过大侠们

                                 请教,stm8a的芯片,有没有位寻址功能,我看没大量资料,没有看到有关说明,求解用过大侠们~~~~~~~~~~~~~~~~~~~~~~ ...…

查看全部问答>

OV系列摄像头配置格式如何解释?

FPGA的I2C对摄像头配置怎么没有地址,只有数据呢。谁能解释下。///////////// Config Data LUT  ////////////////////////// alwaysbegin case(LUT_INDEX) // Audio Config Data 0 : LUT_DATA <= 16\'h0000; 1 : LUT_DATA <= 16\'h1140; ...…

查看全部问答>