1992年,那是一個春天,有一位老人,在中國的南海邊寫下詩篇,其心也比金堅,其字也動人心弦,其中有云:一手抓經濟建設,一手抓精神文明建設,兩手都要抓,兩手都要硬。多年下來,勤勞、務實的中國人民在鄧公囑托之下,聚精會神搞建設,全心全意謀發(fā)展,在大力發(fā)展經濟、滿足人民對物質生活的美好期待之余,也以各種低俗網絡小說、無腦商業(yè)大片、娛樂至上的各大衛(wèi)視節(jié)目豐富著人們的精神生活。除了國家和社會的發(fā)展,兩手都要抓,兩手都要硬的原則也以其頗合“中庸之道”,在各個領域發(fā)揮著重要的指導作用,比如筆者,就在多年職業(yè)生涯的風風雨雨中,悟出想干好嵌入式軟件工程師,軟件、硬件兩手都要硬的經驗體會。
硬件搭臺 軟件唱戲
嵌入式軟件開發(fā)和PC軟件開發(fā)多有不同,究其根源,個中區(qū)別主要歸因于硬件平臺的差異。在Wintel聯盟多年的絞殺下,PC軟件就一個硬件平臺,無論多么花哨的PC軟件,也都只是在x86這個大觀園中打轉悠。多年來用情專一,兩兩不相生厭,灑家也是頗為佩服PC軟件工程師的。不過嵌入式軟件就不同了,且看嵌入式系統的定義:
“以應用為中心、以計算機技術為基礎,軟、硬件可裁剪,適應于應用系統對功能、可靠性、成本、體積、功耗等方面有特殊要求的專用計算機系統?!?/p>
可以說,嵌入式系統是硬件搭臺,軟件唱戲,軟件和硬件面向特定應用,高度可定制,同時也高度融合,正所謂我中有你、你中有我,你儂我儂、水乳交融。硬件搭不好,軟件跑不了,所以在開發(fā)軟件之前一般要先調好電路,好似把舞臺搭好一般。軟件不能跑,硬件瞪眼了,沒有功能的硬件就是女媧娘娘手中的小泥人,軟件就好像那一口仙氣,沒有這口仙氣,硬件的世界就是天地玄黃、宇宙洪荒,女媧娘娘吹了這口仙氣,硬件的世界才大夢初醒,揮灑張揚。
搭幫結伙 地老天荒
據說戀愛中的情侶、婚姻中的兩口子都有那么幾天,瘋狂地想要掐死對方,情緒過去,又會牽起手共同走向前方。其實,在日常開發(fā)工作中,嵌入式硬件工程師和軟件工程師有時也會吵得不可開交,大有不共戴天之勢,灑家多年工作生涯,一向以和為貴,有時也會失了方寸吼上一番,但是,好在嵌入式工程師是世界上最單純、最可愛的群體,心地單純的軟件工程師和硬件工程師大多數時間都是舉案齊眉、卿卿我我,并在多年的磨合中更加合作默契,心心相印。
軟件工程師和硬件工程師之間的合作就像搭幫結伙,一起說相聲。相聲演員經常把一句話掛在嘴邊:“三分逗,七分捧”,但是據說分賬時又會沒皮沒臉地四六開(逗哏拿六成,捧哏拿四成),在嵌入式這個行業(yè)也有一個不成文的說法,硬件和軟件三七開,更有甚者(肯定是一小撮自大過頭的軟件工程師)認為軟件能占到80%的工作量。灑家并不贊同這種歧視性的分法。世尊當年于菩提樹下,夜矚明星,悟道成佛,初成正覺已,嘆曰:“奇哉,一切眾生皆有如來智慧德相,但以妄想、分別、執(zhí)著不能證得?!比藚?,本來可享受無邊清涼,卻因為頭上安頭、妄生分別,輪回于熱惱之中不可自拔。
可是話說回來,做為道道地地的凡夫眾生,做為一名略懂硬件但專職干軟件的嵌入式軟件工程師,我還是要站在自己這個小群體中分別一番的。
嵌入式軟件工程師是一個光榮而神圣的角色,他單純而內斂,視名利如浮云,在日復一日的編碼中揮灑青春和熱血。他使出渾身解數,將代碼捧于掌心,精加工,細打磨,為的只是讓壽命周期長的系統能夠經受住歲月的洗禮,而依然光芒綻放。也許在日常生活中他老實巴交、呆板木訥,也許在社會交際中他懵懵懂懂、進退失措,但是,他是一個高尚的人,一個脫離了低級趣味的人,一個愿意把愛播撒到代碼的天地中自得其樂的“大寫的人”。
當然,物有千差萬別,人分三六九等,出色的工程師總是鳳毛麟角,可遇而不可求。對于嵌入式軟件工程師來說,竊以為,想要躋身于優(yōu)秀之列,他對硬件的了解程度至少需要達到半個硬件工程師的水平。
半個硬件工程師
嵌入式軟件編程顯然不同于PC軟件開發(fā),它和硬件密切相關。想寫好嵌入式軟件代碼,就必須了解清楚所使用MCU的硬件特性、各個外圍電路和接口電路的原理。不僅要深挖細究MCU內核架構的知識,是否支持浮點處理器/DSP,是否支持協處理器、指令數據緩存,還要了解MCU的編程模型、各種存儲器的地址空間分配及其訪問效率如何,在MCU之外,還必須了解各種電路知識,什么地方需要上下拉,什么地方需要加濾波電路,什么地方必須隔離,哪里必須加抑制器件,等等不一而足。
為什么需要了解到這種程度呢?
一來是軟硬結合,更好地實現用戶需求,比如輸入捕捉,如果是通過上升沿或者下降沿捕捉,加了不合適的濾波電容會造成對沿的破壞,不加濾波電容就會受困于各種空間干擾產生的雜波。倘若硬件工程師搬來的是加了不合適電容的電路,搞得沿之間位寬失真,便會出現數據不正常的偶發(fā)故障,倘若硬件工程師搬來的是不加電容的電路,搞得軟件工程師必須進行軟件濾波,把代碼搞得又復雜又難解,你說這怨誰來著?
二來是方便定位Bug。愛因斯坦曾經說過,“提出一個問題往往比解決一個問題更重要,因為解決一個問題也許僅是一個數學上的或試驗上的技能而已,而提出新的問題、新的可能性、從新的角度去看舊的問題需要有創(chuàng)造性的想象力,而且標志著科學的真正進步?!便@研硬件電路可以幫助軟件工程師提出更多解決問題的思路,發(fā)現導致Bug的更多可能性。一般來說,當遇到Bug時,對硬件一知半解的軟件工程師只在代碼層面上打轉轉,基本不會在硬件方面提出問題,最終為了迎合蹩腳的硬件設計出別扭無比的代碼,卻不曾想,只要稍稍改變一下硬件設計,就可以輕松且優(yōu)雅地完成代碼設計。
三來,藝多不壓身,求人不如求己。當我們對硬件電路設計起了懷疑,倘若自己悄沒聲地拿起烙鐵飛個線、換個元件,驗證了自己的思路,這時直起腰版、拿著板子理直氣壯地去找硬件工程師,豈不是順順利利,又送順水人情?倘若直接拿著板子,心底發(fā)虛面上露怯地去找硬件工程師理論,一場唇槍舌戰(zhàn)在所難免,腥風血雨不說,到頭來硬件工程師硬著頭皮給你調調電路,真是解決了問題還好說,若是自己思路錯了,那不是自找苦吃?上個班,掙點錢養(yǎng)家糊口而已,當個老好人,和同事其樂融融多好,吵來吵去,搞得那么辛苦,何必來著?
后記
在嵌入式軟件工程師的培養(yǎng)過程中,先搞個一兩年硬件是很有必要的,筆者當年走的就是這么個路子,現如今雖然水平一般,但是相比較而言,還是比那些“純軟”的工程師多了幾分優(yōu)勢,主要體現在出了問題,思路更加開闊一些,不會把嫌疑僅僅局限在代碼上。反過來,其實硬件工程師也要多多少少懂些軟件,不能只會連線,而要略微考慮一下功能的具體實現。比如進行輸入捕捉時,只顧及走線便利,隨便接到MCU的IO口上,而不是專用的輸入捕捉模塊上,還不得把軟件工程師逼瘋嘍?當然,聞道有先后,術業(yè)有專攻,也不是非得軟硬精通,只需要互相略懂,工作就會輕松愉快很多了!
關鍵詞: 軟件工程師
網站首頁 |網站簡介 | 關于我們 | 廣告業(yè)務 | 投稿信箱
Copyright © 2000-2020 www.ksmtzm.com All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
国产精品久久久久av| 日韩欧美群交P片內射中文| 老旺的大肉蟒进进出出| 女人18片毛片60分钟| 国产又粗又猛又爽又黄的视频| 解开警花的裙子猛烈进入| 香港奇案之吸血贵利王| 性色国产成人久久久精品一区二区| 全职法师第6季全集免费观看 | 邻居少妇张开腿让我爽了在线观看 | 久久青青草原亚洲av无码麻豆| 亚洲精品无码一区二区卧室| 老熟女草bx×| 强行扒开双腿猛烈进入免费版| 成人性做爰AAA片免费看| 国产综合无码一区二区辣椒| 国产精品18久久久久久VR| 色爽交视频免费观看| 亚洲欧洲自拍拍偷精品 美利坚| 免费无码毛片一区二区app | 狠狠躁日日躁夜夜躁2022麻豆| 无套内谢少妇毛片a片999| 青青草視頻國產av劇情超爽系列| 国产日产亚洲系列最新| 成人免费无码成人影院日韩| 中学生广播体操舞动青春| 国产欧美日韩一区二区三区 | 精品一区二区三区免费毛片爱| 娇妻玩4p被三个男人伺候电影 | 两腿间花蒂被吸得肿了视频| 红杏亚洲影院一区二区三区| 女人张开腿让男桶喷水高潮| 亚洲熟妇av一区二区三区漫画| 久久精品国产大片免费观看| 宝贝腿开大点我添添公交车| 欧美老妇大p毛茸茸| 让少妇高潮无乱码高清在线观看| 色戒2小时38分无删减版| 呦系列视频一区二区三区| 美女高潮黄又色高清视频免费| 欧美丰满熟妇xxxx喷水|