历史上的今天
返回首页

历史上的今天

今天是:2025年12月07日(星期日)

正在发生

2022年12月07日 | STM32 LL 为什么比 HAL 高效?

2022-12-07 来源:zhihu

STM32的标准外设库、HAL、LL软件库,都有很多巧妙之处值得大家借鉴。


今天讲讲STM32Cbue LL库中巧妙运用“静态内联”使代码更高效。


概述

有些应用要求MCU能高效处理,特别是跑一些算法时,对CPU执行效率要求较高。

网上有很多文章说STM32CubeHAL执行效率不高,代码量大等问题,导致很多还没有入门,或初学的读者就产生各种各样的疑惑。


说实话,HAL相对标准外设库来说确实存在代码效率不高、代码量大灯这些问题,那么与之对应的STM32Cube LL恰好避免了这样的问题。


LL能高效的原因

简单总结一下原因:巧妙运用C语言静态、内联函数直接操作寄存器。

当然,这是其中重要的原因,还有一些其它原因,这里暂不描述。

你会在LL库.h文件中发现大量类似,静态、内联函数直接读写寄存器的函数。


比如读写IO口:

其中__STATIC_INLINE,就是静态、内联:

而读写位的定义:

这里面的宏定义,在众多外设.h中都在调用。比如使能USART:

LL库使能USART:

标准外设库使能USART:

通过对比,你会明显发现:LL库的执行效率更高。

什么是内联函数

写到这里,就可能有读者会问:什么是内联函数?

通常,程序执行时,处理器从内存中读取代码执行。当程序中调用一个函数时,程序跳到存储器中保存函数的位置,开始读取代码执行,执行完后再返回。


为了提高速度,C语言定义了inline函数,告诉编译器把函数代码在编译时直接拷贝到程序中,这样就不用执行时另外读取函数代码。


提示:

当内联函数很大时,会有相反的作用,因此一般比较小的函数才使用内联函数。


软件框架思维

LL之所以高效,是因为它巧妙运用了一些C语言知识,没有太多封装,直接或间接对寄存器进行操作。


而能这样实现,归功于ST开发团队设计了这么一个中间层软件框架。

对于有大型项目开发经验的人来说,一个项目的框架对整个项目影响很大。

就好比你建一栋楼,如果楼层框架都没造好,你觉得这栋楼质量会好吗?

所以,这里就提到,我们编程时,特别项目较大,需要考虑一下软件框架,一个好的框架能让你你的项目达到事半功倍的效果。


推荐阅读

史海拾趣

台湾岱恩(DAIN)公司的发展小趣事

以下是关于台湾岱恩(DAIN)电子工业股份有限公司在电子行业中发展起来的五个相关故事,每个故事都基于事实进行描述,避免主观褒贬:

  1. 创业初期的专注与坚持

岱恩电子工业股份有限公司成立于1989年,初期专注于薄膜电容器的研发与生产。公司凭借对技术的深入研究和对品质的严格把控,迅速在薄膜电容器领域崭露头角。在创业初期,岱恩电子就明确了以技术创新和品质保证为核心竞争力的战略定位,为公司的长远发展奠定了坚实的基础。

  1. 品质管理的建立与提升

岱恩电子始终将品质管理作为企业发展的重中之重。自成立之初,公司就引进了ISO9001国际品质认证体系,并在随后的几年中不断完善和提升。通过严格的质量控制流程和持续的品质改进活动,岱恩电子的产品品质得到了客户的广泛认可,并在市场上建立了良好的口碑。

  1. 环保理念的贯彻与实践

随着全球环保意识的不断提高,岱恩电子积极响应环保号召,将环保理念贯穿于企业发展的全过程。公司不仅取得了ISO14001环境管理系统认证,还严格遵守RoHS及Reach等欧盟环保标准,确保产品从原材料采购到生产过程的环保性。此外,岱恩电子还积极推广绿色制造技术,努力降低生产过程中的能源消耗和废弃物排放。

  1. 产品创新的突破与引领

在薄膜电容器领域,岱恩电子一直致力于产品创新和技术突破。公司不断投入研发资源,推出了一系列具有高性能、高可靠性和长寿命特点的薄膜电容器产品。其中,X2电容作为公司的明星产品之一,凭借其优异的电气性能和稳定性,赢得了众多客户的青睐。同时,岱恩电子还积极拓展产品线,将业务范围扩展至发光二极体等领域,进一步提升了公司的市场竞争力。

  1. 全球市场的拓展与布局

为了更好地服务全球客户,岱恩电子在中国大陆和台湾设立了完整的销售体系,并积极拓展海外市场。公司通过与全球知名企业的合作与交流,不断提升自身的品牌影响力和市场占有率。同时,岱恩电子还注重本地化服务,根据不同地区的市场需求和文化特点,提供定制化的产品和服务解决方案,赢得了客户的信任和赞誉。

Freeport Resources Enterprises Corp公司的发展小趣事

在21世纪初,Freeport Resources作为一家历史悠久的矿业公司,开始意识到电子材料市场的巨大潜力。公司决定利用其丰富的矿产资源和勘探经验,转向对电子级金属材料的探索与开发。通过深入研究和市场调研,Freeport Resources成功定位了高纯度铜、钴等金属在半导体、电路板等电子领域的应用,并逐步建立了从矿产开采到电子材料加工的完整产业链。这一转型不仅为公司带来了新的增长点,也使其在电子行业中崭露头角。

Displaytech公司的发展小趣事

2012年,Displaytech进行了公司重组,SEACOMP成为公司各部门的主要实体。这次重组不仅优化了公司的组织架构,也进一步整合了公司的资源,提高了运营效率。同时,公司还在中国东莞购买了一家制造工厂,命名为MH MFG,加强了电子合同制造部门的力量。

这些故事只是Displaytech公司发展历程中的一部分,但它们充分展示了公司在电子行业中的实力、创新精神和国际化视野。通过不断的技术创新、产品升级和市场拓展,Displaytech已经成为电子行业中一家具有影响力的企业。

圣邦微电子(Fangtek)公司的发展小趣事

2012年,Displaytech进行了公司重组,SEACOMP成为公司各部门的主要实体。这次重组不仅优化了公司的组织架构,也进一步整合了公司的资源,提高了运营效率。同时,公司还在中国东莞购买了一家制造工厂,命名为MH MFG,加强了电子合同制造部门的力量。

这些故事只是Displaytech公司发展历程中的一部分,但它们充分展示了公司在电子行业中的实力、创新精神和国际化视野。通过不断的技术创新、产品升级和市场拓展,Displaytech已经成为电子行业中一家具有影响力的企业。

ACEINNA公司的发展小趣事

2012年,Displaytech进行了公司重组,SEACOMP成为公司各部门的主要实体。这次重组不仅优化了公司的组织架构,也进一步整合了公司的资源,提高了运营效率。同时,公司还在中国东莞购买了一家制造工厂,命名为MH MFG,加强了电子合同制造部门的力量。

这些故事只是Displaytech公司发展历程中的一部分,但它们充分展示了公司在电子行业中的实力、创新精神和国际化视野。通过不断的技术创新、产品升级和市场拓展,Displaytech已经成为电子行业中一家具有影响力的企业。

Elcos AG公司的发展小趣事

随着公司规模的扩大和业务的增长,Elcos AG面临着供应链管理的挑战。为了降低成本、提高效率和保证产品质量,公司决定对供应链进行优化。通过引入先进的供应链管理软件、加强与供应商的合作和建立严格的质量控制体系等措施,Elcos AG成功实现了供应链的优化和升级。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加稳定可靠的产品和服务。

问答坊 | AI 解惑

蓝芽EDR技术与应用

Bluetooth 无线技术为在不同的资讯家电间提供语音和数据连接的短距离通信系统。最初所设计的最高资料速率是1 Mb/s,但在加入增强资料速率(EDR)特性后,Bluetooth核心规格已经发展到支援2 Mb/s和3 Mb/s的最高资料速率。负责促进及推广Bluet ...…

查看全部问答>

msi(微星) 电脑主板layout规范

要发就发精品! msi(微星) 电脑主板layout内部培训规范 很不错的资料,图文并茂,ppt格式…

查看全部问答>

Verilog RTL级与行为级区别小结,欢迎点评!

目的区别:               行为级描述目的是加快仿真速度,做法是尽量减少一个always块中要执行的语句数量,其结果不是为了综合,只关注算法。有行为综合工具,可以直接将行为级的描述综合为RT ...…

查看全部问答>

c++初学者适合的书或视屏教程

我是c++初学者,只知道谭浩强的c程序设计。。。。。…

查看全部问答>

uc/os-ii的OsTimeDly()如何使用

1:执行OsTimeDly()时CPU在干吗 2:OsTimeDly()里面的参数一般怎么设置,有何讲究。谢谢…

查看全部问答>

急!vs2005做了个窗体在模拟wm5.0设备上中文字体显示不出来,显示成方框怎么办?

vs2005做了个窗体在模拟wm5.0设备上中文字体显示不出来,显示成方框怎么办? tahoma字体和宋体都不行! 都显示为方框!!!!!…

查看全部问答>

对MSP430的C++编程

我们知道 MSP430支持 C++编程 但是书本上一般没有介绍他对C++编程的那些特征适合,是不是普通C++编程中能用的方式 他基本上也都是支持的??…

查看全部问答>

【设计工具】赛灵思新一代28nmFPGA 技术概览

              赛灵思选用 28nm 高介电层金属闸  (HKMG) 高性能低功耗技术,并将该技术与新型一体化 ASMBLTM 架构相结合,从而推出能降低功耗、提高性能的新一代 FPGA。这 ...…

查看全部问答>

NOR Flash

請教各位大俠,哪些產品能用到512Mb NOR Flash…

查看全部问答>