全局变量只是嵌入式系统的戈兰高地

前言全局变量只是嵌入式系统的戈兰高地。冲突最激烈的两个方面是:成为控制工程师;成为非嵌入式软件工程师。
控制工程师的特征通常被理解为“将变量写为全局变量有多方便”。我采访了一位非常著名的博士/硕士,他之前是从控制实验室出来的,相继有近十个人。
面试的问题是用C语言编写PID。当我进行接下来的几次面试时,我觉得没有意义,因为它们都以相同的风格编写。
大概是这样的:floatSetSpeed; floatrr; floatrr_last; floatKp,Ki,Kd;浮点积分结果floatPID(floatspeed){err = SetSpeed-speed; integral + = err; result = Kp * err + Ki * integral + Kd *(err -err_last); err_last = err; returnresult;}该代码的特点是所有变量必须在函数外部定义。问他们为什么,答案是“易于调试的全局变量”。
实际上,对于在学校中进行自动控制的人来说,最重要的是控制的结果,而不是代码本身。只要代码有效。
变量名称污染,低耦合等与它们不在同一个世界。加入公司后,有些人将获得更好的代码质量,但有些人将继续以前的习惯。
在以前的公司代码库中,所有不可读的代码都是由一个或两个ControlEngineer编写的,并且函数在编写后将以其自己的名字命名。要成为高级嵌入式工程师是非常困难的。
一方面,必须具有非常扎实的理论知识,同时,他必须具有大规模,高频CPU和多层PCB之类的丰富设计经验。嵌入式硬件工程师的课程主要包括模拟电路设计,数字电路设计,电磁波理论等。
熟悉常用的放大器电路,滤波器电路和电源电路的设计和分析。非嵌入式软件工程师的特征代码是,不能在.h文件中定义所有静态变量,并且必须将其写入.c文件中,以确保其他文件无法访问它们。
如果确实要访问其他文件该怎么办?然后为每个变量编写get / set函数!问题是静态变量写入.c文件中,并且编译器无法优化get / set。结果,大范围的变量访问花费了CPU时间几倍的时间来进行get / set函数调用。
在许多情况下,嵌入式项目会将硬件压缩到极限。 90%的CPU利用率不过是97%。
(请注意,这些项目对实时性的要求很高,仅延迟一毫秒是不够的。如果您在计算机上运行鼠标并获得了卡,都没关系。
)然后,为了封装,将许多/ sets在代码中。 ?总结一般来说,嵌入式软件中的大多数代码都是由中断驱动的,并且固有地存在许多无法使用参数传递的变量。
全局变量的存在是因为正义在这里。但是嵌入式软件远非如此,无需按照常规软件工程方法进行管理。
如果有人真的认为“嵌入式软件只要可以工作就可以工作,那么代码是否丑陋也没关系”。纯粹是因为软件工程水平不高,而不是因为控制水平过高。
必须使用全局变量,对它们进行管理很重要。一些基本的代码规则:如果仅在文件中调用全局变量,则只能在此.c文件中写入全局变量,而不能在.h文件中写入全局变量。
如果存在文件外调用,则应将全局变量写入.h文件中。 .h中的全局变量是全局可读的,但是只能写入此文件组。
要写入其他文件,请调用set函数。无论在.h或.c中,所有全局变量都必须打包成同名的结构。
即使只有一个变量,也要将其写入结构。例如,在PID.c中有一个pid_S,在PID.h中有一个PID_S。
这样,其他人不仅可以立即认识到变量在项目中是全局变量,在函数中是文件的静态变量,还是在函数中的本地变量,还可以轻松地追溯到该函数所属的文件。不要在函数中编写静态变量。
函数中的静态变量几乎是实际项目中的错误生成器,不能简单地将其重置。而且非常不友好进行单元测试。

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: ys@jepsun.com

产品经理: 汤经理

QQ: 2057469664

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • 深入解析WAN3216F245L08在嵌入式系统中的优势与选型建议 WAN3216F245L08在嵌入式系统中的应用价值随着物联网技术的发展,嵌入式系统对芯片性能的要求日益提高。WAN3216F245L08凭借其卓越的综合性能,成为众多嵌入式项目首选的主控芯片之一。性能优势分析1. 高集成度设计:芯片内部集成...
  • 如何选择适合嵌入式系统的高性能PMIC电源管理芯片 选型指南:构建稳定可靠的嵌入式电源系统在工业控制、智能家居、医疗设备等嵌入式应用场景中,电源稳定性直接影响系统可靠性与寿命。因此,合理选择一款合适的PMIC电源管理芯片至关重要。以下从多个维度提供选型建议。...
  • I2C多任务器与低Rds(on) MOS管在嵌入式系统中的高效应用解析 I2C多任务器与低Rds(on) MOS管的核心作用在现代嵌入式系统设计中,I2C总线因其简单、低成本和高可靠性而被广泛应用。然而,当多个设备需要共享同一I2C总线时,冲突与信号干扰成为常见问题。此时,I2C多任务器(Mux)应运而生,...
  • WINBOND W25Q系列Flash存储器在嵌入式系统中的核心作用 WINBOND W25Q系列Flash存储器:嵌入式系统的可靠数据基石在物联网(IoT)、智能家居、工业控制等领域,非易失性存储器是保障系统稳定运行的关键组件。WINBOND W25Q系列作为高性能串行Flash存储器的代表,以其高可靠性、大容量和低...
  • 74HC系列芯片在嵌入式系统中的关键作用与选型指南 74HC系列芯片:嵌入式系统中的“逻辑基石”74HC系列是经典的中规模集成电路(MSI)家族之一,因其优异的电平兼容性与稳定性,被广泛应用于各类嵌入式系统设计中。从简单的信号转换到复杂的时序控制,74HC芯片始终扮演着不...
  • 深入解析:数码管电阻计算与影像译码器在嵌入式系统中的集成应用 数码管电阻计算与影像译码器的嵌入式集成实践在嵌入式系统开发中,将影像译码器与数码管显示模块结合,实现高效、直观的人机交互界面,已成为主流趋势。本文从实际工程角度出发,深入探讨两者的集成逻辑与关键设计要...
  • 可编程片上系统(PSoC)在嵌入式智能控制中的创新应用 可编程片上系统(PSoC):融合硬件与软件的智能控制平台可编程片上系统(PSoC, Programmable System on Chip)是赛普拉斯(现为英飞凌科技)推出的一种高度集成的混合信号SoC解决方案,将微控制器、可编程模拟/数字外设、存储器与高...
  • 梅兰日兰EZD与NS系列:高效可靠的电气保护方案 梅兰日兰的EZD和NS系列断路器与空气开关是电气保护设备中的佼佼者。这些产品专为满足工业、商业以及住宅环境中的需求而设计,它们提供了卓越的性能与可靠性。EZD系列塑壳断路器以其紧凑的设计和高效能闻名,适用于各种配...
  • 嵌入式通信技术:实现设备间高效互联的新范式 嵌入式通信:连接万物的智能神经网络嵌入式通信技术正成为物联网(IoT)、工业自动化和智能终端发展的核心驱动力。通过将通信模块深度集成于主控芯片或传感器内部,实现了低功耗、高可靠性的数据交互。1. 嵌入式通信的...
  • 嵌入式晶圆电阻在高性能电子设备中的应用与优势分析 嵌入式晶圆电阻:现代电子技术的核心组件随着电子设备向小型化、高集成度方向发展,嵌入式晶圆电阻因其卓越的性能和可靠性,已成为高端电路设计中不可或缺的关键元件。它不仅具备极高的温度稳定性,还可在微米级尺度...
  • 梅兰日兰电动操作机构:为MT400/630及NS400N/NS630N断路器提供高效解决方案 梅兰日兰电动操作机构是专门为MT400/630以及NS400N和NS630N系列断路器设计的辅助设备。它通过电气驱动方式实现断路器的操作,不仅提升了断路器使用的便捷性,还极大地提高了工作效率。这款电动操作机构具有结构紧凑、操作稳...
  • 嵌入式晶圆电阻工作原理及应用领域 嵌入式晶圆电阻是一种在半导体制造过程中直接集成于晶圆上的电阻元件,它具有体积小、精度高、稳定性好等优点,在现代电子设备中有着广泛的应用。其工作原理主要是通过调节电阻材料的长度、宽度和厚度来改变电阻值,...
  • 深入剖析:为什么GF系列逆变电路正在取代传统GM与HG系列? 深入剖析:为什么GF系列逆变电路正在取代传统GM与HG系列?随着新能源产业的迅猛发展,逆变器技术正经历深刻变革。在这一背景下,以GF系列为代表的新型逆变电路正逐步替代传统的GM与HG系列,成为主流选择。本文将从技术演...
  • 数字卫星广播如何改变传统媒体格局?深度剖析其影响与挑战 数字卫星广播对传统媒体的冲击与重构近年来,数字卫星广播的普及正在深刻重塑传统广播电视生态。它不仅提升了节目质量,也改变了用户的收视习惯与媒体消费模式。对传统广播系统的冲击频道数量激增:数字卫星平台可提...
  • 接地电阻多少以上是安全的 接地电阻肯定是越小越好,设备不同要求不同。  1、在1000v以下中性点直接接地系统中,接地电阻小于或等于4欧,重复接地电阻小于或等于10欧。  2、电压1000V以下的中性点不接地系统中,一般规定接地电阻为4欧。  因此...
  • 深入解析HELI-UM系列端子在高功率LED系统中的优势 深入解析HELI-UM系列端子在高功率LED系统中的优势在现代高亮度LED应用中,如户外广告屏、体育场馆照明及车灯系统,对连接器的电气性能与热管理提出了更高要求。HELI-UM系列端子凭借其卓越设计,正逐步成为高功率系统的首选方...
  • 深入解析:AM系列高保真组件如何提升家庭影音系统表现 AM系列高保真组件:重塑家庭影音系统的听觉边界随着人们对居家娱乐品质要求的不断提升,传统音响系统已难以满足对音质、稳定性和智能交互的多重期待。AM系列高保真组件应运而生,成为构建高端家庭影音系统的关键基石。...
  • 光颉Viking AL系列电感器:高稳定性与高密度布局的理想之选 深入解析光颉Viking AL系列电感器的技术亮点在高速数字电路与高密度PCB设计中,电感器不仅要具备出色的电气性能,还需在有限空间内实现高效布局。光颉Viking推出的AL系列电感器,专为高稳定性和高集成度场景打造,是现代电子...
  • 从系统设计角度深入理解DC-DC整合式功率级的未来趋势 整合式功率级:推动电源系统小型化与智能化的关键随着电子设备向更小、更智能、更高能效方向发展,整合式功率级正成为主流技术趋势。它不仅是硬件集成的体现,更是系统级设计思维的革新。1. 技术演进:从分立到集成早...
  • JVR高浪涌系列电阻器:构建电力系统安全防线的关键元件 JVR高浪涌系列电阻器的技术革新与应用价值JVR高浪涌系列电阻器是针对严苛工业环境优化设计的压敏电阻产品,特别适用于对电气安全要求极高的电力电子系统。其核心在于“高浪涌”性能与“零老化”特性的结合,显著提升了...