chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

做控制的工程師特點(diǎn)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-17 16:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

全局變量簡直就是嵌入式系統(tǒng)的戈蘭高地。沖突最激烈的雙方是:
1. 做控制的工程師
2. 做非嵌入式的軟件工程師。

做控制的工程師特點(diǎn)

他們普遍的理解就是“變量都寫成全局該有多方便”。我之前面試過一個(gè)非常有名的做控制實(shí)驗(yàn)室里出來的PhD/Master,前前后后陸續(xù)有快十個(gè)人。面試問題是用C寫PID。到后面的幾位面試的時(shí)候我都覺得沒有看的意義了,因?yàn)槿紝懙氖峭粋€(gè)風(fēng)格。大概就是這樣的:

float SetSpeed; float err; float err_last; float Kp,Ki,Kd; float integral; float result; float PID(float speed) { err=SetSpeed-speed; integral+=err; result=Kp*err+Ki*integral+Kd*(err-err_last); err_last=err; return result; }

代碼的特點(diǎn)就是所有的變量一定定義在函數(shù)外面。問他們?yōu)槭裁?,回答是“全局變量方便調(diào)試”。

事實(shí)上在學(xué)校里做搞自動(dòng)控制的人最重要的根本就是控制的結(jié)果,而不是代碼本身。代碼只要能工作就行。變量名污染,低耦合之類的和他們就不在同一個(gè)世界。進(jìn)了公司有些人代碼質(zhì)量會(huì)變好,但有的還是會(huì)延續(xù)之前的習(xí)慣。前公司代碼庫里面凡是看不懂的代碼一律都是那一兩個(gè)Control Engineer寫的,寫完了還會(huì)用自己的名字給函數(shù)命名的那種。

要成為一個(gè)資深的嵌入式工程師相當(dāng)難,一方面要有非常扎實(shí)的理論知識(shí),同時(shí)也要有相當(dāng)?shù)哪欠N大型的、高頻CPU、多層PCB板的設(shè)計(jì)經(jīng)驗(yàn)。嵌入式硬件工程師要學(xué)的課程主要有模擬電路設(shè)計(jì)、數(shù)字電路設(shè)計(jì)、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路設(shè)計(jì)和分析。

做非嵌入式的軟件工程師特點(diǎn)

代碼的特點(diǎn)就是所有的靜態(tài)變量都不可以定義在.h文件里,必須寫在.c文件里以確保別的文件沒法訪問它們。

別的文件真要訪問怎么辦?那就給每一個(gè)變量寫get/set函數(shù)?。栴}是靜態(tài)變量寫在.c文件里編譯器是沒法優(yōu)化get/set的。結(jié)果就大面積的變量訪問要花幾倍的CPU時(shí)間去做get/set的函數(shù)調(diào)用。嵌入式項(xiàng)目很多情況下對(duì)硬件的壓榨是很極端的,CPU利用率90%都不算什么,頂?shù)?7%都是有的。(注意下這些項(xiàng)目是實(shí)時(shí)性要求很高的,晚一個(gè)毫秒算不完都不行。不是跑在電腦上鼠標(biāo)卡一卡也無所謂的。)然后為了封裝性,在代碼里面塞這么多get/set嗎?

總結(jié)

總的來說嵌入式軟件里大部分的代碼都是中斷驅(qū)動(dòng)的,天生就有很多變量是沒法使用參數(shù)傳遞的。全局變量的存在是因?yàn)檎x站在這邊。但是嵌入式軟件遠(yuǎn)遠(yuǎn)沒有特殊到不需要按照正常軟件工程方法去管理的地步。要真有人認(rèn)為“嵌入式軟件只要能工作就成,代碼丑一點(diǎn)無所謂的”純粹是軟件工程水平不行,不是因?yàn)榭刂扑教摺?/p>

全局變量一定是要用的,管理它們也很重要。一些基本的代碼規(guī)則:

① 如果只是文件內(nèi)調(diào)用,全局變量只能寫在這個(gè).c文件里,不要寫進(jìn).h文件。
② 如果有文件外調(diào)用,全局變量要寫在.h文件里。
③ .h里面的全局變量全局可讀,但是只有本文件組可以寫。別的文件要寫請(qǐng)調(diào)用set函數(shù)。
④ 所有的全局變量無論在.h還是.c里面都要包成同名struct。哪怕只有一個(gè)變量也要寫進(jìn)struct里面。比如PID.c里面有一個(gè)pid_S,PID.h里面有個(gè)PID_S。這樣其他人不僅可以立即識(shí)別出一個(gè)變量是project內(nèi)global/文件內(nèi)static/函數(shù)內(nèi)local,同時(shí)還能輕松追溯到這個(gè)函數(shù)是屬于哪個(gè)文件的。
⑤ 不要寫函數(shù)內(nèi)的static變量。函數(shù)內(nèi)的static變量在實(shí)際的項(xiàng)目中幾乎就是bug生成器,沒法簡單的reset。而且對(duì)unit test非常不友好。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7646

    瀏覽量

    146197
  • 單片機(jī)開發(fā)
    +關(guān)注

    關(guān)注

    3

    文章

    467

    瀏覽量

    20943
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    硬件工程師甩鍋排行榜 #電子 #電子工程師 #硬件工程師 #甩鍋的各種理由 #揚(yáng)興科技

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2026年03月06日 18:30:55

    電子工程師的雙標(biāo)瞬間 #電子 #電子愛好者 #電子工程師 #揚(yáng)興科技 #雙標(biāo)

    電子工程師
    揚(yáng)興科技
    發(fā)布于 :2026年03月02日 18:04:13

    什么是BSP工程師

    。嵌入式應(yīng)用軟件工程師主要是負(fù)責(zé)編寫基于嵌入式系統(tǒng)的應(yīng)用軟件。類似于基于windows上的QQ, word。由于我本人是BSP的,因此這里我們著重討論BSP工程師。 三、BSP工程師
    發(fā)表于 01-13 06:54

    不同薪資對(duì)工作的態(tài)度 #硬件工程師 #電子愛好者 #打工人 #搞笑 #揚(yáng)興科技

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2026年01月12日 18:08:22

    硬件工程師都在逛的7個(gè)論壇你都知道嗎? #科普 #電子 #硬件工程師 #電子愛好者

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年12月25日 18:32:00

    電子發(fā)燒友工程師看!電子領(lǐng)域評(píng)職稱,技術(shù)之路更扎實(shí)

    。比如一位電源工程師,評(píng)職稱前主要做基礎(chǔ)電源調(diào)試;評(píng)上 “高級(jí)電源工程師” 后,受邀參與電子發(fā)燒友 “電源技術(shù)研討會(huì)” 分享,還接到廠商委托的高功率密度電源開發(fā)項(xiàng)目,項(xiàng)目成果被平臺(tái)推薦為 “年度技術(shù)
    發(fā)表于 08-20 13:53

    嵌入式工程師的進(jìn)階之路

    (TensorFlow Lite 邊緣推理 + 機(jī)械臂控制),需提交完整的需求文檔、代碼注釋和測試報(bào)告。 薪資對(duì)標(biāo):一線城市月薪 2 萬 - 3.5 萬,二線城市 1.5 萬 - 2.5 萬。 (三)高級(jí)工程師(5 年
    發(fā)表于 08-13 11:08

    作為一名PCB質(zhì)檢工程師,我為什么在用手持式面銅測試儀?

    我的產(chǎn)線標(biāo)配。 PCB質(zhì)檢工程師之所以傾向于使用手持式面銅測試儀,主要?dú)w因于其高效性、便捷性以及高精度的特點(diǎn),這些特點(diǎn)使得手持式面銅測試儀成為PCB質(zhì)量檢測中不可或缺的工具。 為什么我離不開它? 快
    發(fā)表于 08-11 11:59