色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

做控制的工程師特點

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-02-17 16:20 ? 次閱讀

前言

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

做控制的工程師特點

他們普遍的理解就是“變量都寫成全局該有多方便”。我之前面試過一個非常有名的做控制實驗室里出來的PhD/Master,前前后后陸續有快十個人。面試問題是用C寫PID。到后面的幾位面試的時候我都覺得沒有看的意義了,因為全都寫的是同一個風格。大概就是這樣的:

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; }

代碼的特點就是所有的變量一定定義在函數外面。問他們為什么,回答是“全局變量方便調試”。

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

要成為一個資深的嵌入式工程師相當難,一方面要有非常扎實的理論知識,同時也要有相當的那種大型的、高頻CPU、多層PCB板的設計經驗。嵌入式硬件工程師要學的課程主要有模擬電路設計數字電路設計、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路設計和分析。

做非嵌入式的軟件工程師特點

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

別的文件真要訪問怎么辦?那就給每一個變量寫get/set函數啊!問題是靜態變量寫在.c文件里編譯器是沒法優化get/set的。結果就大面積的變量訪問要花幾倍的CPU時間去做get/set的函數調用。嵌入式項目很多情況下對硬件的壓榨是很極端的,CPU利用率90%都不算什么,頂到97%都是有的。(注意下這些項目是實時性要求很高的,晚一個毫秒算不完都不行。不是跑在電腦上鼠標卡一卡也無所謂的。)然后為了封裝性,在代碼里面塞這么多get/set嗎?

總結

總的來說嵌入式軟件里大部分的代碼都是中斷驅動的,天生就有很多變量是沒法使用參數傳遞的。全局變量的存在是因為正義站在這邊。但是嵌入式軟件遠遠沒有特殊到不需要按照正常軟件工程方法去管理的地步。要真有人認為“嵌入式軟件只要能工作就成,代碼丑一點無所謂的”純粹是軟件工程水平不行,不是因為控制水平太高。

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

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

審核編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7605

    瀏覽量

    136978
  • 單片機開發
    +關注

    關注

    3

    文章

    460

    瀏覽量

    19736
收藏 人收藏

    評論

    相關推薦

    正是拼的年紀|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發布于 :2024年07月25日 11:31:02

    用二創,1:1復刻工程師的職場現狀

    工程師
    揚興科技
    發布于 :2024年07月19日 18:30:07

    硬件工程師如何元器件變更的決策

    硬件工程師如何元器件變更的決策某產品在從研發轉規模生產階段,采購部門給硬件工程師推薦了新的MOSFET(稱為A),該物料比該產品研發階段使用的MOSFET(稱為B)價格更低,且供貨渠道更友好。作為
    的頭像 發表于 07-06 08:17 ?548次閱讀
    硬件<b class='flag-5'>工程師</b>如何<b class='flag-5'>做</b>元器件變更的決策

    嵌入式軟件工程師和硬件工程師的區別?

    嵌入式軟件工程師和硬件工程師的區別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發領域中的一種專業工程師,他們主要負責設計和開發嵌入式軟件,
    發表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發布于 :2024年04月30日 17:33:15

    如何入門硬件工程師

    想跨行業硬件設計工程師,應該如何學習規劃呢
    發表于 03-17 21:49

    企業老工程師和高校老師有啥區別

    電子工程師硬件
    電子發燒友網官方
    發布于 :2024年02月28日 17:50:00

    如何搞崩一個硬件工程師心態?試試對ta說這幾句

    硬件工程師
    揚興科技
    發布于 :2024年02月20日 18:05:49
    主站蜘蛛池模板: 亚洲 无码 在线 专区| 全黄h全肉短篇禁乱np| 嗯啊…跟校草在教室里做h| 无码AV精品久久一区二区免费 | 97免费观看视频| 久久久久久久久久综合情日本| 忘忧草研究所 麻豆| 国产AV精品国语对白国产| 日本高清免费在线观看| 丰满饥渴老太性hd| 日日操夜夜操狠狠操| 福利片午夜| 洗濯屋H纯肉动漫在线观看| 国产情侣真实露脸在线| 羞羞答答影院在线| 好男人在线观看免费视频WWW| 亚洲精品入口一区二区乱麻豆精品| 国产午夜在线精品三级a午夜电影| 亚洲AV无码偷拍在线观看 | 欧美午夜精品一区二区蜜桃| a一级一片免费观看视频| 女人高潮时一吸一夹| 啊好深啊别拔就射在里面| 三级黄在线| 国产亚洲精品久久久久小| 亚洲欧美一区二区三区蜜芽| 九九热视频免费| 91青青草原| 色姐妹久久综合在线av| 国产午夜伦鲁鲁| 综合精品欧美日韩国产在线| 欧美高清vivoesosexo18| 古代荡女丫鬟高H辣文纯肉| 亚洲风情无码免费视频| 久久中文字幕综合不卡一二区 | 色欲精品久久人妻AV中文字幕| 国产精品成人自拍| 亚洲中文在线精品国产| 男女无遮挡吃奶gift动态图| WWW国产精品内射熟女| 無码一区中文字幕少妇熟女网站|