當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]成長道路上的感悟

時間過得真快,轉(zhuǎn)眼就做了十來年的技術(shù)。從當(dāng)初的初出茅廬,一步步地走到了今天。在成長的路上,遇到了數(shù)個貴人,有過很多次的當(dāng)頭棒喝,也有過很多的徘徊、很多的無奈和很多的感悟。很早就有寫點文字的想法,于自己是個總結(jié),于后來者是個參考。因為工作上瑣事纏身,一直沒有機會落筆。這次,很多在頭腦中長期潛伏的想法,一股腦地倒了出來。

本想用流水賬的方式,把自己的經(jīng)歷寫下,但寫好后又大段地刪掉了。因為我覺得,僅僅羅列自己的經(jīng)歷,能給自己什么幫助,又能給別人以什么啟發(fā)呢?!最后斟酌決定,以自己在工程師路上的幾點收獲作為線索來動筆,這正是我最想與別人分享的。
我的收獲可以總結(jié)成下面三句話:
步步深入,水到渠成;
舉一反三,觸類旁通;
整合資源,提升自我。

步步深入,水到渠成
很多的初學(xué)電子工程師在面對新技術(shù)的時候總希望找到登堂入室的捷徑。尋找捷徑是人的本能,付出最小成本,換取最大的成就,這是無可厚非的。但電子技術(shù)是門很嚴(yán)謹(jǐn)?shù)目茖W(xué),靠捷徑和技巧最終都會是無果而返,折騰了半天又回到了起點。

說說我自己學(xué)USB的過程。2001年的時候,公司的一個產(chǎn)品準(zhǔn)備使用USB端口通信,我和幾位同事自發(fā)開始學(xué)習(xí)USB的相關(guān)知識。我好幾次計劃仔細(xì)把USB協(xié)議從頭看到尾,但每次都是看了前三章,就缺乏耐性,抑或因為其他專職工作的時間安排而中斷。自此之后,至少10次,我一次又一次啟動學(xué)USB設(shè)計的計劃,但每次都是從閱讀USB協(xié)議開始,然后閱讀到第三章就停掉了,甚至只看了十幾頁。雖然花費了時間,但沒有絲毫進(jìn)展,所掌握的知識比當(dāng)初從科普文章中得到的也沒有增加多少。

直到2003年的一天,部門來了一位對USB小有所成的新同事。一次偶爾的聊天中,他提到,“USB協(xié)議熟讀第九章,再看些sample程序,就入門了”。于是,找來Cypress的USB HID的例子程序,對照USB協(xié)議的第九章來學(xué)習(xí)。那一周我不僅對USB開發(fā)入了門,而且頓悟了不少東西。我一直后悔沒有早些仔細(xì)研讀Cypress提供的USB例子程序,因為只要硬著頭皮去讀,就能發(fā)現(xiàn)里面的代碼很清楚的說明是由CH9協(xié)議實現(xiàn)的。我花了斷斷續(xù)續(xù)3年的時間學(xué)USB,最大的收獲不是技術(shù)層面的,而是這曲折的學(xué)習(xí)之路讓我領(lǐng)悟了——做技術(shù),要扎實才行。只要步步深入,自然水到渠成。試圖走捷徑,實際卻是在原地踏步。

我很早就把TCP/IP協(xié)議的那幾本厚厚的書從書店抱回了家。然而晦澀的文字、復(fù)雜的協(xié)議,雖然也看過一些內(nèi)容,不過更多的時候,這幾本協(xié)議參考都是書柜上華麗的擺設(shè)。偶爾有個機會,找了塊51單片機+RT8019的板子,抱著試試看的心態(tài),就開始了調(diào)試。好在單片機的編程本身沒有任何障礙,很快就入門了。在仔細(xì)學(xué)習(xí)TCP/IP協(xié)議棧的時候,就發(fā)現(xiàn)分層簡直太奇妙了,可以把很多復(fù)雜的問題簡單化,然后得以單獨解決。TCP/IP分層帶給我的認(rèn)識,不再像OSI參考模型那樣抽象,而是非常的直觀。對于具體的應(yīng)用,TCP/IP的四層甚至可以直接對應(yīng)到我們的4個函數(shù):鏈路層的任務(wù)是通過寄存器操作網(wǎng)卡芯片,IP層的主要工作居然只是打包,TCP就跟UART似的發(fā)個命令然后等應(yīng)答,應(yīng)用層就是我們的測試程序的主函數(shù),原來這么復(fù)雜的技術(shù)居然可以化解成如此簡單的幾個模塊。雖然我只是寫了個TCP/IP測試程序,后來也沒再做過以太網(wǎng)的開發(fā),但這段學(xué)習(xí)經(jīng)歷帶來的自信讓我受益匪淺。

我首次做硬件的經(jīng)歷也很有意思,甚至有些幼稚。剛畢業(yè)2年一直做軟件,覺得做硬件很有成就感。因為我們那個Team是一個硬件配十來個Firmware工程師。如果能看著很多軟件工程師用自己做的開發(fā)板做開發(fā)調(diào)試,那成就感就甭提了。于是跟我的主管領(lǐng)導(dǎo)要求做硬件,甚至以消極怠工做威脅。當(dāng)時部門經(jīng)理也想調(diào)動我的工作積極性,于是同意了,而且一個新的項目很快就到了我手上。那時候,我的原理圖設(shè)計還可以,但是Layout的經(jīng)驗基本沒有。因為第一次設(shè)計硬件的緣故,我設(shè)計的開發(fā)板穩(wěn)定性差些,但設(shè)計的跳線非常實用,跟Build的Debug和Release配置正好對應(yīng)。項目組的好幾個同事在項目協(xié)調(diào)會上說我做的Jumper好用。[!--empirenews.page--]

得到Team內(nèi)很多同事的肯定,對初入門的工程師絕對是莫大的鼓勵。后來又陸陸續(xù)續(xù)地做開發(fā)板、產(chǎn)品板。一個硬件的初學(xué)者居然做了幾個10萬臺以上的銷量的產(chǎn)品。當(dāng)我看到項目組的十幾個同事用我設(shè)計的板子調(diào)試程序的時候,當(dāng)我從營銷部聽到我負(fù)責(zé)設(shè)計的產(chǎn)品銷量到了多少的時候,莫大的成就感和自我肯定對繼續(xù)深入的學(xué)習(xí)也是一種動力。
技術(shù)是靠積累的,只要你朝正確的方向付出了努力,就會一步步靠近成功。當(dāng)付出了足夠的精力和時間后,取得進(jìn)步是水到渠成的事情。努力過程中的偶然有利因素,要利用起來,要學(xué)會把機遇轉(zhuǎn)化成能力。因為實用的跳線獲得同事的認(rèn)可,我就趁熱打鐵,把硬件的穩(wěn)定性方面問題解決掉。
對捷徑的無比向往和對技術(shù)復(fù)雜度的恐懼是初學(xué)路上最大的敵人。身邊做技術(shù)的朋友或同事,有很多人是非常聰明的,然而真正在技術(shù)上能獨擋一面的確實不多,為何?實際上,很多人是在學(xué)習(xí)新技術(shù)方面過多的希望走捷徑,而一直無法有所突破。我也曾希望自己能找到捷徑,不用辛苦的學(xué)習(xí)就可以掌握別人搞不定的技術(shù)。最后發(fā)現(xiàn)根本沒有什么捷徑,或者所謂捷徑就是腳踏實地去做。很多的電子工程師不屑于學(xué)單片機,認(rèn)為單片機是低級技術(shù),以ARM、FPGA等為學(xué)習(xí)的目標(biāo)。我做過的一個產(chǎn)品原來用的是8位單片機,后來轉(zhuǎn)用ARM實現(xiàn),整個C代碼是平滑移植過來的。從一個產(chǎn)品工程師的角度去看,ARM就是一個跑得比較快、片上資源以及接口比較豐富的單片機,使用ARM不是因為它是高檔的芯片,而是因為它可以提高產(chǎn)品的性價比。

舉一反三,觸類旁通
我一直認(rèn)為,作為一個工程師,尤其是電子工程師,“照貓畫虎”的類推能力是非常重要的。如果我們用舉一反三的交叉方式去思考不同的技術(shù),就會發(fā)現(xiàn)很多技術(shù)是有內(nèi)在關(guān)聯(lián)的。技術(shù)領(lǐng)域上較廣泛的涉獵給我的感觸是,很多技術(shù)是作為一個體系出現(xiàn)的,靠架構(gòu)來組成的。而架構(gòu)的存在,也使中間件的開發(fā)更有效率。下面我想分享一下,學(xué)習(xí)過程中感觸到的架構(gòu)在不同技術(shù)領(lǐng)域中的表現(xiàn)。

如果你做Windows WDM Driver,會發(fā)現(xiàn)WDM的架構(gòu)是非常棒的,只要精通某一點并開發(fā)設(shè)計成一個小小的sys文件,就可以把它掛到操作系統(tǒng)中去。Windows的OS會在適當(dāng)?shù)臅r候調(diào)用你的sys文件,跟寫應(yīng)用程序的消息機制似的。我們再深入到WDM的這個sys驅(qū)動的內(nèi)部看,有兩個非常顯著的特點:第一,把一系列的函數(shù)指針指向自己實現(xiàn)的函數(shù),目的是把自身掛到驅(qū)動棧里去;第二,接受驅(qū)動棧上層驅(qū)動的請求,先處理,然后傳遞給驅(qū)動棧的下層驅(qū)動。正是架構(gòu)的精心設(shè)計,讓模塊開發(fā)的勞動強度大大降低,于是連對PC硬件不甚熟悉的我,都有過幾次做Driver的經(jīng)歷。

嵌入式系統(tǒng)WinCE的工程師會注意到,WinCE的驅(qū)動架構(gòu),幾乎完全是Windows WDM的簡化版。WDM驅(qū)動的那兩個特點在這里表現(xiàn)得淋漓盡致。當(dāng)然,因為是嵌入式系統(tǒng),肯定要比Windows系統(tǒng)簡化很多,而且嵌入式的CPU提供的資源跟X86也是無法相比的。因為工作的緣故,我對WinCE沒有更深入的學(xué)習(xí)。

我曾有機會做Windows Media的編程開發(fā),這是Windws XP平臺上一個視頻特別處理,當(dāng)然用到了DirectShow技術(shù)。我當(dāng)初就感覺DS的架構(gòu)怎么這么面熟,就是一時認(rèn)不出來。原來DS使用了COM技術(shù),變得神秘了。但透過COM這個接口技術(shù)看架構(gòu),原來又是跟WDM那么的相似,只是表現(xiàn)形式由Device變成了Filter而已。一個內(nèi)核層的架構(gòu)居然在應(yīng)用層也能找到它的影子。

做Windows通信程序的時候,希望收到數(shù)據(jù)時才響應(yīng),例如向主窗口發(fā)個消息。這是APP級的,怎么做呢?對了,就用FILE_FLAG_OVERLAPPED這個屬性,我們只要以這個屬性打開設(shè)備,如串口或者USB等,以后讀取設(shè)備數(shù)據(jù)的時候,這個函數(shù)會立即Return,我們隨后就可以等待事件(Read完成了或者Timeout了或者是某故障發(fā)生了)。配合多線程編程,很容易做成消息驅(qū)動型的,而不必用死循環(huán)浪費額外的CPU時間片。這里就借助了操作系統(tǒng)給我們提供的消息機制。

在開發(fā)嵌入式設(shè)備的時候,我們會遇到類似的問題,想節(jié)約額外的CPU時間片以達(dá)到節(jié)電的目的,甚至更迫切,這就可以用到消息機制。用戶程序一直在等待事件,只有在有消息來到的時候,處理程序才會被啟動。而底層程序,則被設(shè)計用來維護(hù)消息機制,當(dāng)空閑(如按鍵、中斷等都沒有到來)時候,系統(tǒng)可以進(jìn)入空閑狀態(tài),甚至睡眠狀態(tài)。多數(shù)情況下,嵌入式系統(tǒng)的CPU占用率是非常低的,所以消息機制的使用可以大副降低功耗。

其實,嵌入式設(shè)備即使不用Embedded OS也可以利用OS的某些特性來設(shè)計,這使得代碼的可維護(hù)性大大增強。所以做過Windows SDK開發(fā)的人,轉(zhuǎn)做消息驅(qū)動的嵌入式系統(tǒng),很多概念是非常容易接受的。其實,很多嵌入式系統(tǒng)的設(shè)計者,也確實參考了Windows的消息機制的實現(xiàn)方式。所以,我面試嵌入式工程師的時候,一般都會順便問一下有沒有Windows PC編程的經(jīng)驗。[!--empirenews.page--]

整合資源,提升自我
很多人覺得整合資源,是管理上的術(shù)語。實際上,工程師也需要把已經(jīng)掌握的資源進(jìn)行整合,以得到最大程度的自我提升。就像我們總質(zhì)疑為何某同事的技術(shù)能力不如我,卻做上了部門經(jīng)理的位子。如果我們仔細(xì)觀察,就會發(fā)現(xiàn)是自身的某些因素導(dǎo)致了我們的很多能力無法得到最大機會的表現(xiàn),或者,要充分整合我們已經(jīng)掌握的資源,才能使得我們的能力最大程度的展示。這是更高層次的自我提升。

當(dāng)工作數(shù)年之后,我發(fā)現(xiàn)自己認(rèn)識了很多朋友,有做技術(shù)的,也有做市場的;發(fā)現(xiàn)自己掌握了很多零零散散的技術(shù),能做TCPIP通信了,能獨立Layout出一塊完整的PCB了;發(fā)現(xiàn)自己具有一定的組織協(xié)調(diào)能力,能獨立組織一個團(tuán)隊的工作,能協(xié)調(diào)團(tuán)隊和外界的溝通了。如果你有跟我類似的感覺,說明你也注意到自己的潛力了。當(dāng)這些潛力沒有轉(zhuǎn)化成能力之前,這只是潛在資源而已。所以,我們要學(xué)會整合這些資源。
把自己掌握的兩項獨立的技術(shù)應(yīng)用于某個產(chǎn)品,并協(xié)調(diào)其搭配工作,這是技術(shù)上的整合。自己擅長做軟件,和做硬件的同事合作,并主導(dǎo)合作中的很多煩瑣事物,這是人力上的整合。自己有技術(shù),和有市場能力的朋友,合伙創(chuàng)業(yè),那更是整合。通過整合,我們表現(xiàn)出了單打獨斗無法表現(xiàn)的能力,這就是整合的力量,撬動地球的杠桿的力量。

我在工作7年之后辭職準(zhǔn)備創(chuàng)業(yè)。同很多工程師都有的艱苦創(chuàng)業(yè)經(jīng)歷一樣,單單一個角色轉(zhuǎn)化就非常令人痛苦。以前只需專注技術(shù)就足夠了,現(xiàn)在卻需要面對成本、工期、工廠等N多的因素,整天在工程師、業(yè)務(wù)員、售后服務(wù)之間角色轉(zhuǎn)換。另外,創(chuàng)業(yè)之初,各類文檔的撰寫就是個不小的門檻,包括合作意向書、NDA協(xié)議、產(chǎn)品規(guī)格書、報價書,都需要較好的文字表達(dá)能力。拜訪重點客戶之前,還要制作PPT的演示投影。創(chuàng)業(yè)之初雖然辛苦,但可預(yù)見的勝利果實的誘惑力太大了,加班、熬夜,都是家常便飯。因為起步稍微有點基礎(chǔ),所以開始就抓到了客戶,直接進(jìn)入創(chuàng)業(yè)過程中“為他人做嫁妝”的階段。總結(jié)起來,我的創(chuàng)業(yè)經(jīng)歷就是整合自身資源,充分提升自己的一個過程。

很多工程師都有創(chuàng)業(yè)的沖動。我的建議是:第一,創(chuàng)業(yè)前做盡可能多的準(zhǔn)備工作;第二,盡量選擇自己最熟悉的領(lǐng)域。當(dāng)然,工程師還有一個方面相對欠缺,就是文字表述能力。各種文檔的撰寫,都需要有好的文字功底。在以前那家公司工作的時候,因為管理一個小Team,每周都要在視頻會議上給老板做匯報,還要給幾個下屬做計劃。趕鴨子上架,在現(xiàn)實的壓力下,我開始重視書面表達(dá)能力。我覺得,書面文字的運用能力,對一個工程師而言,是一道門檻,應(yīng)該努力跨越過去。

愿每個工程師,都有美好的人生,都能實現(xiàn)自己的理想,實現(xiàn)自己的價值。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉