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

前言全局变量只是嵌入式系统的戈兰高地。冲突最激烈的两个方面是:成为控制工程师;成为非嵌入式软件工程师。
控制工程师的特征通常被理解为“将变量写为全局变量有多方便”。我采访了一位非常著名的博士/硕士,他之前是从控制实验室出来的,相继有近十个人。
面试的问题是用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

邮箱: tao@jepsun.com

产品经理: 陆经理

QQ: 2065372476

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

微信二维码

更多资讯

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

  • 嵌入式晶圆电阻工作原理及应用领域 嵌入式晶圆电阻是一种在半导体制造过程中直接集成于晶圆上的电阻元件,它具有体积小、精度高、稳定性好等优点,在现代电子设备中有着广泛的应用。其工作原理主要是通过调节电阻材料的长度、宽度和厚度来改变电阻值,...
  • 梅兰日兰EZD与NS系列:高效可靠的电气保护方案 梅兰日兰的EZD和NS系列断路器与空气开关是电气保护设备中的佼佼者。这些产品专为满足工业、商业以及住宅环境中的需求而设计,它们提供了卓越的性能与可靠性。EZD系列塑壳断路器以其紧凑的设计和高效能闻名,适用于各种配...
  • 梅兰日兰电动操作机构:为MT400/630及NS400N/NS630N断路器提供高效解决方案 梅兰日兰电动操作机构是专门为MT400/630以及NS400N和NS630N系列断路器设计的辅助设备。它通过电气驱动方式实现断路器的操作,不仅提升了断路器使用的便捷性,还极大地提高了工作效率。这款电动操作机构具有结构紧凑、操作稳...
  • 如何提高系统安全性以防止数据泄露 在当今数字化时代,数据安全成为企业和个人必须重视的问题。数据泄露不仅会损害企业声誉,还可能导致严重的经济损失和法律问题。为了提高系统的安全性以防止数据泄露,可以采取以下几个措施:1. 强化访问控制:确保只...
  • 接地电阻多少以上是安全的 接地电阻肯定是越小越好,设备不同要求不同。  1、在1000v以下中性点直接接地系统中,接地电阻小于或等于4欧,重复接地电阻小于或等于10欧。  2、电压1000V以下的中性点不接地系统中,一般规定接地电阻为4欧。  因此...
  • gn19系列隔离开关:安全可靠的电力系统组件 gn19系列隔离开关是一种广泛应用于电力系统的设备,主要用于切断和闭合无负载电流的电路。这种开关在设计上注重安全性和可靠性,能够在不承受负载电流的情况下进行操作,因此通常与断路器等其他设备配合使用,以确保电...
  • HLP系列气动压力开关:高效控制高压系统的利器 HLP系列气动压力开关是一种精密的控制装置,主要用于工业自动化领域中的气体压力监测与控制。这类开关通过感应系统中的气体压力变化,并在达到预设值时自动切换电路,实现对设备的压力控制或报警功能。它能够精确地控...
  • 深入解析:贴片电容点火为何在现代点火系统中更受欢迎? 贴片电容点火的技术优势与发展背景随着电子设备向小型化、集成化方向发展,贴片电容点火(SMD Capacitive Discharge Ignition)因其卓越的性能表现,逐渐取代传统电阻电感点火方案,成为高端点火系统的首选。一、为什么电容点火...
  • DG系列燃气压力开关:安全可靠的燃气控制系统 DG系列燃气压力开关是一种用于监控和控制气体供应系统中压力水平的安全装置。这种开关广泛应用于商业和工业领域,如餐饮业的厨房设备、加热系统以及各种需要精确控制燃气压力的工业过程中。它的工作原理是通过监测管道...
  • 高保真组件AM系列:提升系统设计与开发效率 在当今快速发展的信息技术领域,组件化的设计理念已经成为软件工程中的一个重要趋势。组件化不仅可以提高系统的可维护性和扩展性,还能显著缩短开发周期,降低开发成本。在众多组件库中,高保真组件AM系列因其卓越的设...
  • 定值电阻的功率变化量公式 定值电阻的功率变化量公式为:�������=�������×100%VinVout=IinIout×100%其中,���Vin和����Vout分别为定值电阻两端的电压,���Iin和����Iout分别为定值电阻两端的电流。该公式表示,当定值电阻两端...
  • GW4-40.5(35)/系列高压隔离开关:可靠的电力系统组件 GW4-40.5(35)/系列高压隔离开关是一种广泛应用于电力系统的设备,主要用于在需要维护或切换电路时提供一个可见的断开点。这种隔离开关设计用于额定电压为40.5kV(或35kV)的交流系统中,能够承受和控制在此电压等级下的电能传...
  • 变阻器在结构上与电位器有很大关系,但它们不用作分压器,而是用作可变电阻器 变阻器变阻器在结构上与电位器有很大关系,但它们不用作分压器,而是用作可变电阻器。它们只能使用 2 个端子,而不是 3 个端子的电位器。一种连接在电阻元件的一端,另一种连接在可变电阻器的雨刷器上。在古代,变阻器...
  • 高低压变压器的合格绝缘电阻是多少? 高低压变压器的合格绝缘电阻是多少?运行中的电力变压器绝缘电阻合格标准为:10KV及以下,绝缘值大于300兆欧姆;35KV等级,绝缘值大于400兆欧姆(环境温度为20摄氏度)。通过测量绝缘电阻,电力变压器可以有效地检测变压器...
  • 电容放电式点火系统工作原理 电容式点火系统是一种通过储存电荷释放高能火花的点火系统。它主要由电容器、充电电路、脉冲放电电路和点火线圈组成。本文将详细介绍电容式点火系统的工作原理当汽车点火钥匙插入时,点火电路开始工作。电流开始通过...
  • 接近开关矮圆柱型:伊兰迪尔品牌下的高性能传感器 接近开关矮圆柱型是一种广泛应用于自动化控制领域的传感器。这种传感器以其小巧的尺寸和精确的检测能力而著称,能够适应各种复杂的工业环境。例如,伊兰迪尔品牌的接近开关矮圆柱型产品就因其高性能和可靠性而在市场...
  • GYD 系列气压自动开关:高效可靠的气体压力控制系统 GYD 系列气压自动开关是一种用于自动控制气体压力的设备,广泛应用于需要精确控制气体压力的工业领域。这种自动开关可以根据预设的压力值自动开启或关闭阀门,以确保系统内的气体压力维持在安全、合适的范围内。它采用...
  • 如何选择适合系统的高精度晶振 在现代电子系统中,晶振作为核心时钟源,其性能直接影响到整个系统的稳定性和精确性。选择一款合适的晶振对于确保系统正常运行至关重要。以下是几个关键因素,帮助您根据系统需求选择高精度晶振。首先,了解您的系统...
  • 什么是冲击接地电阻 冲击接地电阻是指冲击电流流经接地装置时,接地装置的地电位峰值与通过接地体流入地面的电流之比,也称为瞬时电阻。在电力系统中,为了工作,经常需要将电力系统及其电气设备的某些部分与大地连接起来,形成接地系统...
  • 如何提高音讯系统的清晰度和稳定性 在现代生活中,音讯系统被广泛应用于各种场合,从家庭娱乐到专业音频制作,再到公共广播系统。提高音讯系统的清晰度和稳定性是确保用户体验的关键因素。以下是一些有效的方法和建议:1. 选择高质量的设备:投资高质量...