www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]聽(tīng)大佬們講那過(guò)去的故事


信息整合自網(wǎng)絡(luò)信息


拖著疲憊的身軀回到家,夏天從屋子里蹦噠出來(lái),笑得特別開(kāi)心:”你回來(lái)啦~”男人松了松襯衫的領(lǐng)口,一臉厭惡地躲開(kāi):”你又來(lái)干什么,我說(shuō)過(guò)吧,我很討厭你。”夏天站在原地,尷尬搓著手:”你也有說(shuō)過(guò)喜歡我的。”男人皺眉:”別自作多情了,什么時(shí)候的事?!毕奶煨α诵?”嗯……以前,你叫我暑假的時(shí)候?!?/span>


“不忘初心,方得始終?!敝挥胁煌涀约鹤畛醯南敕?,才能有始有終地去完成自己的夢(mèng)想。說(shuō)來(lái)簡(jiǎn)單,但夢(mèng)想這東西終歸是華麗而脆弱的,在滾滾紅塵面前,一介凡人想要憑借孱弱的肉身去守護(hù)自己的夢(mèng)想,又談何容易呢。


本人在杭州,我本科畢業(yè)后在一家小公司,主要做針對(duì)物流監(jiān)控管理這一塊的硬件系統(tǒng),主要是電子鎖和配套系統(tǒng)設(shè)備,屬于物聯(lián)網(wǎng)范疇。工作期間表現(xiàn)不錯(cuò)也做出了一些成果,得到了總經(jīng)理和公司其他骨干(主要做技術(shù)的)的認(rèn)可,2014年因股東間糾紛公司不做了,在總經(jīng)理的策劃下,我們?cè)瓉?lái)幾個(gè)核心人員重新注冊(cè)了一個(gè)公司將原來(lái)的產(chǎn)品繼承過(guò)來(lái)繼續(xù)做,因此我成了合伙人。公司開(kāi)了差不多一年到現(xiàn)在,我因?yàn)榧夹g(shù)方向問(wèn)題和經(jīng)濟(jì)壓力太大而退出了,現(xiàn)在開(kāi)始自學(xué)linux這一塊準(zhǔn)備轉(zhuǎn)職。


之前3年多的工作經(jīng)歷,大概是這樣的。剛畢業(yè)準(zhǔn)備找工作時(shí),成績(jī)一般般,硬件方面不太會(huì),板子沒(méi)畫(huà)過(guò)(現(xiàn)在也沒(méi)畫(huà)過(guò)),因?yàn)榇髮W(xué)的時(shí)候搞過(guò)那個(gè)飛思卡爾智能車(chē)競(jìng)賽,所以對(duì)單片機(jī)的編程比較熟一點(diǎn)。然后準(zhǔn)備考研,因復(fù)習(xí)時(shí)間不夠加上心靜不下來(lái),考研失敗,遂決定工作,其實(shí)畢業(yè)想從事嵌入式Linux方面的工作,但是苦于沒(méi)那方面技能,基本不會(huì)被錄?。ㄟ€有可能會(huì)上培訓(xùn)機(jī)構(gòu)的當(dāng))。后來(lái)我到了這家公司,面試時(shí)和總經(jīng)理聊的挺開(kāi)心的,關(guān)于技術(shù)方面的東西也沒(méi)有聊特別多,就大概說(shuō)了下當(dāng)時(shí)在學(xué)校搗鼓那個(gè)智能車(chē)具體有些什么東西,后來(lái)就要我了,當(dāng)時(shí)還面了一個(gè)中型公司,初次面試和技術(shù)筆試都過(guò)了,就剩最后一輪了,后來(lái)想了想那個(gè)中型公司主要做汽車(chē)儀表的,搞單片機(jī)的,然后這個(gè)小公司做物聯(lián)網(wǎng)相關(guān)的,而且以后可能會(huì)接觸linux,看總經(jīng)理這么大誠(chéng)意我就去了這家了。


畢業(yè)頭兩年是我的技術(shù)成長(zhǎng)期,最開(kāi)始做單片機(jī)+RF模塊這一塊,拿的是電子鎖的半成品程序,功能比較簡(jiǎn)單,機(jī)械解鎖然后通過(guò)無(wú)線(xiàn)將數(shù)據(jù)傳到配套的采集節(jié)點(diǎn)上,無(wú)線(xiàn)通訊也是單向的(節(jié)點(diǎn)到采集端),沒(méi)多久總經(jīng)理決定研發(fā)功能更多的鎖,主要特點(diǎn)在保證低功耗的情況下能夠?qū)崿F(xiàn)節(jié)點(diǎn)和采集主機(jī)AP的雙向通信,以便實(shí)現(xiàn)遠(yuǎn)程指令解鎖,然后這個(gè)任務(wù)就由我承擔(dān)了,花了2個(gè)多月吧,把硬件WOR(Wake On Radio)這個(gè)技術(shù)自己琢磨出來(lái)并開(kāi)發(fā)調(diào)試出來(lái)了,主要就是節(jié)點(diǎn)平常都是低功耗狀態(tài),當(dāng)主機(jī)有指令下發(fā)時(shí)會(huì)發(fā)送一些特殊的數(shù)據(jù)把節(jié)點(diǎn)喚醒,然后節(jié)點(diǎn)在很短時(shí)間內(nèi)接收主機(jī)的指令并執(zhí)行。后來(lái)經(jīng)過(guò)和前輩交流,把這個(gè)硬件WOR又升級(jí)成了軟件WOR,硬件WOR依托RF芯片的一些寄存器和集成在里面的WOR功能,而軟件WOR則完全使用軟件控制。因?yàn)槲沂且粋€(gè)比較喜歡做成架構(gòu)的人,也為了以后功能拓展或移植方便,在那段時(shí)間我也在看TI公開(kāi)的一個(gè)simpkiciTI無(wú)線(xiàn)協(xié)議棧來(lái)學(xué)習(xí)下國(guó)外人是怎么寫(xiě)代碼的,就把simpliciTI的關(guān)于操作RF底層的MRFI層移植了過(guò)來(lái),再根據(jù)自己產(chǎn)品的技術(shù)需求,設(shè)計(jì)了以星型拓?fù)錇榛A(chǔ)的網(wǎng)絡(luò)層,最后形成了一個(gè)小的協(xié)議棧。該協(xié)議棧相對(duì)于TI的simpliciTI相比優(yōu)勢(shì)在于能夠?qū)崿F(xiàn)低功耗下的雙向通訊,主要是把WOR集成了進(jìn)去,通過(guò)調(diào)用API就能夠?qū)崿F(xiàn)所有功能,而且應(yīng)用層不需要干預(yù)RF的底層操作,完全由協(xié)議??刂?;還有比如在發(fā)送數(shù)據(jù)時(shí)可以通過(guò)傳入的API參數(shù)選擇發(fā)送功能,比如發(fā)送數(shù)據(jù)是否需要接收方確認(rèn)回復(fù),如果是的話(huà),協(xié)議棧會(huì)自動(dòng)完成一些工作,上層只需要看API返回值就可以判斷接受方是否確認(rèn)收到等。這個(gè)協(xié)議棧是專(zhuān)門(mén)針對(duì)某一款比較老的RF芯片設(shè)計(jì)的,不過(guò)對(duì)一些新的性能更好的RF芯片,也可以用,只是需要硬件移植,這個(gè)我一直沒(méi)做過(guò),因?yàn)楣疽恢睕](méi)有更換RF芯片的打算。


說(shuō)了這個(gè)協(xié)議棧這么多,我只是想說(shuō)明下這個(gè)是我最拿得出手的東西,也是對(duì)我的技術(shù)成長(zhǎng)中貢獻(xiàn)最大的東西,因?yàn)閺哪菚r(shí)開(kāi)始,總經(jīng)理對(duì)我編程這方面已經(jīng)放心了,之前寫(xiě)的代碼還要給他看過(guò),現(xiàn)在他也不用看了。協(xié)議棧做出來(lái)基本穩(wěn)定是在13年初了,之前都是自己偷偷寫(xiě)的,大概花了2~3個(gè)月時(shí)間,然后調(diào)試優(yōu)化了一段時(shí)間。最后提出來(lái)的時(shí)候感覺(jué)總經(jīng)理還有硬件主管還是眼前一亮的。


其實(shí)在此期間我也同時(shí)在做無(wú)線(xiàn)主機(jī)方面的開(kāi)發(fā)工作,最開(kāi)始用的單片機(jī)和節(jié)點(diǎn)的是一樣的,后來(lái)因?yàn)橹鳈C(jī)功能定義修改,使用了NXP的芯片,我終于開(kāi)始接觸ARM架構(gòu)Cortex-M3和OS有關(guān)的東西了——u/Cos。其實(shí)公司還有車(chē)載定位主機(jī)和平臺(tái),當(dāng)時(shí)我不是負(fù)責(zé)那一塊(后來(lái)也一直沒(méi)有負(fù)責(zé)那一塊,因?yàn)橹鳈C(jī)的代碼不是我寫(xiě)的,編程規(guī)范不符合我的風(fēng)格,缺少框架,很難看懂,其實(shí)自己也不想看,后來(lái)因?yàn)橐恍╉?xiàng)目需求,我曾經(jīng)兩次看懂了然后一段時(shí)間全忘了),但是每天都看在眼里,也很想嘗試下。之后,我從ARM官網(wǎng)下載文檔把CM3架構(gòu)弄懂了(當(dāng)然現(xiàn)在都忘了),然后把u/Cos作者自己寫(xiě)的u/Cos英文文檔也看了一遍,關(guān)于uCos大部分都比較熟悉了(有些沒(méi)用到的就沒(méi)怎么看),自己還根據(jù)文檔寫(xiě)匯編語(yǔ)言移植過(guò)ucos系統(tǒng)。后來(lái)主機(jī)升級(jí)成跑ucos,然后移植了自己寫(xiě)的協(xié)議棧。產(chǎn)品在應(yīng)用層上花的功夫,其實(shí)要比協(xié)議棧多蠻多,但畢竟是應(yīng)用層的東西,也沒(méi)什么好說(shuō)的。


到了2014年,公司換了一個(gè)比較大的地方,說(shuō)大股東準(zhǔn)備增加投資,公司要擴(kuò)大規(guī)模,當(dāng)時(shí)總經(jīng)理說(shuō)準(zhǔn)備讓我接觸linux,公司準(zhǔn)備把一些產(chǎn)品進(jìn)行升級(jí)跑linux,以便擴(kuò)展更復(fù)雜的應(yīng)用,我自然是欣喜,因?yàn)楦懔藛纹瑱C(jī),又有一些os還有arm的基礎(chǔ),學(xué)起來(lái)應(yīng)該不會(huì)費(fèi)力,但是linux內(nèi)容比較多,還是要花很多時(shí)間慢慢去啃。因?yàn)閿U(kuò)大規(guī)模,公司要招一些新員工,13年年底到14年年初,總經(jīng)理讓我去給應(yīng)聘者面試,之后我接觸過(guò)本科的,研究生的,見(jiàn)過(guò)牛人,也見(jiàn)過(guò)一般般的,也見(jiàn)過(guò)來(lái)到公司面試后自己主動(dòng)說(shuō)無(wú)法勝任而離開(kāi)的;關(guān)于linux方面的,因?yàn)槲也欢?,也只是順帶提一提,但是我發(fā)現(xiàn)要是做linux的,很多都是培訓(xùn)機(jī)構(gòu)出來(lái)的,而且很多也只是草草學(xué)了下,不太像做技術(shù)的料,不過(guò)也見(jiàn)過(guò)一個(gè)牛人,應(yīng)屆本科畢業(yè),畢業(yè)前Linux已經(jīng)玩得很熟了,說(shuō)想去培訓(xùn)機(jī)構(gòu)深造下,最后跟我說(shuō)在培訓(xùn)機(jī)構(gòu)也沒(méi)有學(xué)到太多的東西。其實(shí)當(dāng)時(shí)我想讓公司招一個(gè)linux牛人,然后帶帶我,因?yàn)檫@東西自己學(xué)彎路會(huì)走很多,但是事與愿違,想要的人都不來(lái)(不知道是公司給太低還是覺(jué)得我們小公司沒(méi)啥希望),結(jié)果招了一個(gè)應(yīng)屆的渣渣(反正每個(gè)月交給他的任務(wù)一個(gè)都沒(méi)完成,都是應(yīng)付式地工作,而且明知道任務(wù)沒(méi)完成,還每天按時(shí)下班的那種),我想我是被欺騙了,但是總經(jīng)理似乎也被欺騙了,最后再次證明了便宜沒(méi)好貨的真理。初次招聘這么難招到人,當(dāng)時(shí)我開(kāi)始有點(diǎn)懷疑總經(jīng)理的想法和公司的財(cái)力了(我的工資也是比較偏低的,只是一直抱著某種期盼一直堅(jiān)持著,不過(guò)從13年年中開(kāi)始每個(gè)月遞增)。到13年年底,事與愿違,總經(jīng)理后來(lái)決定智能鎖要和app結(jié)合起來(lái),當(dāng)時(shí)安卓已經(jīng)很流行了,于是我開(kāi)始接觸的新東西不是Linux,而是支持低功耗硬件的藍(lán)牙BLE4。


我們用的是TI的BLE4.0,然后我負(fù)責(zé)做藍(lán)牙的智能鎖。關(guān)于TI的BLE4.0,如果要鉆的深,挺需要時(shí)間,但如果不是用到很復(fù)雜的功能,你也不想對(duì)藍(lán)牙協(xié)議棧了解太多的話(huà),相對(duì)來(lái)說(shuō)2~3個(gè)月差不多了,不過(guò)我對(duì)這個(gè)熱情不是很大,因?yàn)檫@個(gè)其實(shí)就是TI基于自己硬件平臺(tái)上搭建的支持BLE4.0協(xié)議的軟件架構(gòu),你只要讀懂最上層的架構(gòu)就行了,不需要去理解藍(lán)牙更深層的協(xié)議,但是在開(kāi)發(fā)過(guò)程中也遇到很多問(wèn)題,因?yàn)楫?dāng)時(shí)這個(gè)東西剛出來(lái)沒(méi)多久,而且到目前為止也是基于TI公布的示例工程的基礎(chǔ)上進(jìn)行修改和添加的,因此它無(wú)法滿(mǎn)足各式各樣的硬件需求,而且TI軟件架構(gòu)自帶的驅(qū)動(dòng)還有些問(wèn)題,比如DMA支持的UART下在大流量數(shù)據(jù)下會(huì)出現(xiàn)數(shù)據(jù)不完整或篡改;再比如自己項(xiàng)目用到的串口不是示例工程的串口1而是串口2,那么你必須要去修改底層,這個(gè)花了我挺多時(shí)間,因?yàn)闉榱烁愣ㄟ@個(gè),我花了很多時(shí)間去讀底層代碼和看相關(guān)資料還有調(diào)試;再比如,你的應(yīng)用層代碼不能占用MCU太多的時(shí)間,因?yàn)樗{(lán)牙協(xié)議棧底層需要充足的MCU時(shí)間,否則你的藍(lán)牙連接就會(huì)斷開(kāi)而且不可恢復(fù)(只能重啟)。因?yàn)檫@個(gè)東西比較新,兼容性還不太好,靈活性太差,最關(guān)鍵一點(diǎn)是,它還是單片機(jī),總之,我實(shí)在不怎么感興趣!


這個(gè)時(shí)候,公司內(nèi)部開(kāi)始鬧矛盾了,主要是利益和權(quán)力的糾紛,總經(jīng)理向讓我和一個(gè)同事能夠持有股份,一方面要掌握公司的實(shí)權(quán),和一個(gè)股東搞僵了(是女股東),最后的結(jié)果是公司不做了,在總經(jīng)理策劃下,我先辭職,然后幾個(gè)核心人員都辭職了,我和總經(jīng)理先到寧波另外一家公司上班(總經(jīng)理帶我過(guò)去的,在我看來(lái),那家公司雖然是小公司,但是那個(gè)公司還是挺有錢(qián)的而且環(huán)境不錯(cuò)),之前說(shuō)好我們暫時(shí)過(guò)去的,等這家公司在杭州成立子公司后再過(guò)去由我們總經(jīng)理管理,但后來(lái)發(fā)現(xiàn)我們總經(jīng)理被忽悠了,后來(lái)我們也就離職了。期間盡力了蠻多東西這里就不說(shuō)了,總之我在那邊待了一個(gè)月不到就回來(lái)了。


到最后,原來(lái)幾個(gè)核心人員在杭州注冊(cè)了一家公司,繼續(xù)做原來(lái)的產(chǎn)品。也就四五個(gè)人,做硬件的只有一個(gè),原來(lái)的硬件主管。從公司成立后,硬件主管工作了一個(gè)多月就開(kāi)始生病,他身體不好,因?yàn)槲也粫?huì)硬件,我只看得懂原理圖,因此項(xiàng)目就被嚴(yán)重耽誤了,15年初,原來(lái)做的智能鎖系統(tǒng)因?yàn)楣收下时容^大,加上商業(yè)上關(guān)系和客戶(hù)處理的不好,把這個(gè)客戶(hù)給丟掉了,公司比較大的利潤(rùn)來(lái)源沒(méi)有了,到了今年5、6月份,公司把14年賺的錢(qián)也開(kāi)銷(xiāo)光了,已經(jīng)快沒(méi)錢(qián),因?yàn)楫?dāng)初股東有協(xié)定:資金不夠時(shí)為了優(yōu)先保證普通員工的工資的發(fā)放,股東是沒(méi)有工資的。到6月底,我已經(jīng)有2個(gè)月沒(méi)拿到工資。因?yàn)?3年年底,在家里人的支持下,我在杭州買(mǎi)了房,過(guò)起了房奴的生活,每個(gè)月5K多的房貸中,家里承擔(dān)一半,我承擔(dān)一半,自己也已經(jīng)成了家。因?yàn)樽约旱墓べY本來(lái)就不高,而且成立公司的時(shí)候我把之前工作的一點(diǎn)點(diǎn)積蓄再加上老婆的繼續(xù)都拿出來(lái)投到公司了。所以,我鑒于公司前景、自己的技術(shù)前景和經(jīng)濟(jì)壓力,自己最終選擇退出,目前無(wú)業(yè)在家,自學(xué)linux準(zhǔn)備轉(zhuǎn)職。


其實(shí)硬件主管生病影響確實(shí)挺大,我離開(kāi)的時(shí)候只留下藍(lán)牙鎖半成品(支持低功耗、集成了GPS和GPRS模塊),軟件還沒(méi)有最終定型和穩(wěn)定測(cè)試,硬件還有些問(wèn)題沒(méi)解決。硬件主管后來(lái)因?yàn)楸容^嚴(yán)重的肺炎到我走之前為止都沒(méi)有來(lái)公司正常上班過(guò),只是偶爾過(guò)來(lái)幫我們解決下問(wèn)題就回去了。我自己其實(shí)不喜歡放棄,但是現(xiàn)實(shí)情況的確十分糟糕:


1.總經(jīng)理對(duì)公司產(chǎn)品定位目前就是藍(lán)牙方向,和我技術(shù)期望方向不一致,而且目前做的東西對(duì)我技術(shù)方面的提高已經(jīng)快到上限了,另外我也一直等著我能搞Linux的那一天(現(xiàn)在覺(jué)得我太單純了,其實(shí)在公司組建之初就應(yīng)該好好想想的,當(dāng)時(shí)只是憑著和總經(jīng)理的感情和創(chuàng)業(yè)的心情,實(shí)在不好意思拒絕);


2.公司近況堪憂(yōu),因?yàn)橛布](méi)人做了,人手不夠,團(tuán)隊(duì)也不是很和諧,原來(lái)的產(chǎn)品生產(chǎn)加工又復(fù)雜,成本大,到最后我基本淪為產(chǎn)品的生產(chǎn)者,做著一些和研發(fā)不相關(guān)的事情,比如焊接板子,排查解決不符合質(zhì)量的硬件板子,總經(jīng)理還讓我負(fù)責(zé)和客戶(hù)間聯(lián)系生產(chǎn)安裝的事宜,讓我鍛煉下比如溝通方面的能力,這都是現(xiàn)階段我不喜歡做的事情,至此我的研發(fā)的心態(tài)已經(jīng)蕩然無(wú)存,再加上公司沒(méi)錢(qián),發(fā)不了工資,為了維持開(kāi)支,公司慢慢淪為倒買(mǎi)倒賣(mài)的性質(zhì),公司研發(fā)幾乎已經(jīng)退化殆盡,感覺(jué)我這個(gè)研發(fā)的已經(jīng)沒(méi)有什么存在的價(jià)值了;


3.團(tuán)隊(duì)凝聚力不夠,氣氛不太好,幾個(gè)股東,一個(gè)我的同事,一個(gè)我的上級(jí),一個(gè)硬件的(一直生病),所以打交道最多的是我那個(gè)同事(和總經(jīng)理打交道基本都是研發(fā)上的),他主要負(fù)責(zé)公司雜七雜八的事情,之前他進(jìn)原來(lái)的公司比我晚一年,但年齡比我大一點(diǎn),剛進(jìn)公司是技術(shù)支持。以前還好的,一起工作挺開(kāi)心,可能因?yàn)樗皇菃T工,并沒(méi)有表現(xiàn)更多的東西出來(lái)。我們自己成立公司的時(shí)候因?yàn)橐恍┰蚩偨?jīng)理讓他作為企業(yè)法人(實(shí)際上總經(jīng)理是老大,股份本來(lái)他比我少,后來(lái)總經(jīng)理說(shuō)為了公平一點(diǎn)讓我和我那個(gè)同事股份一樣,我也同意了),加上之前做的產(chǎn)品故障率較高,給他增添了很多麻煩,感覺(jué)現(xiàn)在他對(duì)我的態(tài)度是越來(lái)越差,慢慢的他身上一些和我不太和諧的特征也慢慢體現(xiàn)出來(lái),自己感覺(jué)和他一起工作不開(kāi)心。另外,我記得原來(lái)總經(jīng)理找我單獨(dú)談話(huà)時(shí)說(shuō)過(guò)一句話(huà):現(xiàn)在你們研發(fā)為公司做的貢獻(xiàn)還是0,因?yàn)楫a(chǎn)品研發(fā)進(jìn)度慢,問(wèn)題多,無(wú)法作為產(chǎn)品公布,都是靠安裝人員和業(yè)務(wù)人員跑一些其他單子很少的產(chǎn)品還有倒賣(mài)的一些產(chǎn)品賺的錢(qián)來(lái)養(yǎng)你們研發(fā)的(這不是原話(huà),但是意思是這個(gè)意思),雖然這句話(huà)沒(méi)錯(cuò),但是覺(jué)得對(duì)自己的打擊很大;


4.個(gè)人經(jīng)濟(jì)問(wèn)題,的確是沒(méi)錢(qián)了,再這樣下去兩三個(gè)月,房貸我已經(jīng)還不起了。


其實(shí)公司成立之后,自己慢慢對(duì)總經(jīng)理的看法也變了,變的不是那么好了,慢慢不再對(duì)他充滿(mǎn)信任了。另外,自己的思路和總經(jīng)理也不一樣,曾經(jīng)在產(chǎn)品設(shè)計(jì)上提出的意見(jiàn)幾乎沒(méi)有被采納,而自己也不屬于那種很強(qiáng)硬的人,總之公司還是他說(shuō)的算,我們只能提意見(jiàn),接不接受是他的問(wèn)題;至于我那個(gè)同事,我覺(jué)得他好像對(duì)總經(jīng)理唯命是從,遇到我和總經(jīng)理有分歧也是站在總經(jīng)理那邊,很多的無(wú)奈與委屈也只能默默承受。


總結(jié)起來(lái),自己在最后快離開(kāi)的時(shí)候自己做的不太好,在最后一兩個(gè)月里,因?yàn)槲蚁胪顺鲇植恢廊绾伍_(kāi)口,最后把自己內(nèi)心摧殘的比較消極,給公司其他人也帶來(lái)了消極的影響,最后沒(méi)有把自己分內(nèi)的事情負(fù)責(zé)好。但是在這2年技術(shù)成長(zhǎng)期和1年多的社會(huì)經(jīng)驗(yàn)體驗(yàn)期還是經(jīng)歷了其他同年齡人沒(méi)經(jīng)歷到的東西,社會(huì)閱歷也豐富了些,也明白了自己的一些缺點(diǎn)和認(rèn)識(shí)到以后一些需要引以為戒的地方。目前,我決定還是按照自己的規(guī)劃去走。


自己咨詢(xún)過(guò)一些同學(xué)和朋友,關(guān)于linux,目前做驅(qū)動(dòng)的話(huà),一般都是移植別人的驅(qū)動(dòng)然后再改一改,相對(duì)來(lái)說(shuō)做應(yīng)用沒(méi)那么枯燥,目前安卓業(yè)發(fā)展起來(lái)了,關(guān)于以后做不做安卓我現(xiàn)在還沒(méi)有什么看法,目前把linux弄懂了再說(shuō)。另外,自己屬于那種如果不深入了解某個(gè)東西就很不舒服的人,所以我現(xiàn)在主要是在研讀《understanding the linux kernel》這本書(shū),教學(xué)視頻還有自己動(dòng)手實(shí)踐沒(méi)有太多去做,之前零零散散也實(shí)踐過(guò)一些,但是也都只知道用而不明白更深的原理。以前看過(guò)一個(gè)大牛說(shuō)自己辭職半年學(xué)linux,一開(kāi)始也是先看內(nèi)核的東西,關(guān)于linux的學(xué)習(xí)方法,還希望前輩多提提意見(jiàn),個(gè)人覺(jué)得學(xué)習(xí)方法因人而異。


最后,自己覺(jué)得事業(yè)的開(kāi)局是糟糕的,而且技術(shù)上自己和厲害的人比起來(lái)還是差了許多,很多東西因?yàn)楣ぷ鞯木窒扌晕叶紱](méi)弄過(guò),這段日子感覺(jué)也耽誤了很多東西,把老婆也連累了,也讓家人擔(dān)心了,和其他同屆的同僚們比起來(lái)自我覺(jué)得很苦逼,目前壓力也比較大,留給我的時(shí)間也不多,總之相信事情會(huì)變的好起來(lái)。


自己目前的感悟是:


1.創(chuàng)業(yè)不是那么容易的;

2.有時(shí)候不能考慮太多,該果斷就果斷,關(guān)鍵問(wèn)題要冷靜思考不能被某些因素沖昏頭腦

3.腳踏實(shí)地,穩(wěn)扎穩(wěn)打

4.最后,自己的命運(yùn)把握在自己手中,不能過(guò)于把希望和幻想放在別人身上


那么嵌入式Linux、單片機(jī)待遇又如何呢?


首先說(shuō)一下嵌入式的標(biāo)準(zhǔn)定義——?


“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置”。


由定義可知實(shí)際上很廣泛,廣泛到單片機(jī)、PLC、工控電腦等很多東西實(shí)際上都是歸屬于嵌入式范疇。


但國(guó)內(nèi)教育一般是將可編程控制芯片按照功能強(qiáng)弱進(jìn)行分層,功能較強(qiáng)的歸類(lèi)給嵌入式,特別是適合跑WINCE、安卓之類(lèi)輕量級(jí)系統(tǒng)的處理器或FPGA、DSP、CPLD等可編程集成電路。能效差、主跑裸機(jī)特定程序、應(yīng)用比較低端的歸給單片機(jī)。而無(wú)論是什么層次的單片機(jī)為核心,只要是加強(qiáng)了穩(wěn)定性和針對(duì)工業(yè)環(huán)境設(shè)計(jì)、使用語(yǔ)句表和圖形化快速編程方式編輯工作邏輯的IO控制系統(tǒng)歸類(lèi)為PLC。


從面向工資的角度來(lái)說(shuō),假設(shè)題主不升學(xué)歷的話(huà),推薦優(yōu)先選擇序列如下:


1、嵌入式(ARM+Linux):可對(duì)接工業(yè)機(jī)器人、物聯(lián)網(wǎng)、高端3C產(chǎn)品設(shè)計(jì),但要去補(bǔ)課,主要是補(bǔ)充信號(hào)處理方面的知識(shí),可不追求精深,但要了解。工資水平根據(jù)選擇企業(yè)和行業(yè)特點(diǎn)決定,相比3、4要好點(diǎn)。


2、嵌入式(FPGA、CPLD等集成電路設(shè)計(jì)):這條路基本上是走信號(hào)處理的道路,對(duì)數(shù)學(xué)、信號(hào)、模電理論等有很深的功底要求,一般能順利工作的起點(diǎn)多為碩士,但若有興趣喜歡做,本科能做好的也有。理論上,薪水是第一位,但工作難度也是第一位。


3、單片機(jī):相關(guān)產(chǎn)品舉例——電飯鍋、豆?jié){機(jī)、智能化程度不高的家用電器之類(lèi)的,同質(zhì)化嚴(yán)重,能干的人也不少,競(jìng)爭(zhēng)相對(duì)激烈,產(chǎn)品利潤(rùn)低,導(dǎo)致薪水以及未來(lái)薪水漲幅都不是太好。但比PLC強(qiáng)一點(diǎn)。


4、PLC:悲催的PLC,最不推薦做的一個(gè)方向。搞PLC的一般都在各地的中小自動(dòng)化公司或大公司的設(shè)備部,加班是常事,薪水不會(huì)太高,因?yàn)?strong style="margin:0px;padding:0px;max-width:100%;">中專(zhuān)水平開(kāi)始就可以搶你飯碗,技術(shù)附加值現(xiàn)在很低,跳槽也沒(méi)啥好發(fā)展。


------

對(duì)此也有人反對(duì):


@江南一條魚(yú)魚(yú)


PLC那一條有點(diǎn)扯淡。 待遇這塊。。。有幾個(gè)同學(xué)開(kāi)了自動(dòng)化小公司,反正有房有車(chē)的,車(chē)是豪車(chē)房是大房。

大公司的設(shè)備部,奇瑞的設(shè)備部和廣本的設(shè)備部,都是設(shè)備部,可待遇不是差一點(diǎn)半點(diǎn)。

大型自動(dòng)化公司,民營(yíng)的,國(guó)企,歐美的,日韓的,或者上市沒(méi)上市的待遇也是都有很大區(qū)別。

技術(shù)這塊。。。你真以為plc就是寫(xiě)兩步程序電機(jī)轉(zhuǎn)起來(lái)就完事??福特,通用,豐田等等對(duì)于自己的生產(chǎn)設(shè)備都有一套嚴(yán)格的標(biāo)準(zhǔn),從圖紙?jiān)O(shè)計(jì),到程序編寫(xiě),仿真,器件選型,都要嚴(yán)格按照要求來(lái),最傷頭的是這些標(biāo)準(zhǔn)都是英文編寫(xiě),隨便一個(gè)中專(zhuān)的能吃透么??


任何一行都有高端低端之分,路邊攤也算飯店,米其林餐廳也是飯店,他們能混為一談呢。


那么究竟是否要從單片機(jī)轉(zhuǎn)嵌入式Linux?


著名嵌入式工程師火哥這樣說(shuō):(來(lái)自嵌入式老鳥(niǎo)的職場(chǎng)之道)


盡管火哥目前從事Linux/Android方面的嵌入式開(kāi)發(fā)工作,但是讀書(shū)的時(shí)候也有5年左右單片機(jī)裸機(jī)和RTOS經(jīng)驗(yàn),之前面試也拿過(guò)一些做單片機(jī)stm32開(kāi)發(fā)的offer,所以今天分享一些關(guān)于單片機(jī)是否要轉(zhuǎn)嵌入式Linux的一些觀(guān)點(diǎn)。


一、你真的決定要轉(zhuǎn)嵌入式Linux嗎?


要不要從單片機(jī)轉(zhuǎn)嵌入式Linux是一個(gè)影響到職業(yè)發(fā)展的嚴(yán)肅決策,火哥不能幫你拿主意,只能幫你列出利弊,你需要根據(jù)自身的各種環(huán)境(比如所在城市Linux嵌入式相關(guān)崗位多嗎?是否決定背井離鄉(xiāng)去北上深發(fā)展等等)做出最有利的決策?;鸶绲挠^(guān)點(diǎn)并不是Linux嵌入式絕對(duì)比單片機(jī)開(kāi)發(fā)職業(yè)發(fā)展好,只是根據(jù)自身的一些經(jīng)歷,給出一些看法。


1. 單片機(jī)開(kāi)發(fā)相對(duì)于Linux嵌入式最大的劣勢(shì)在于基層的打工崗位平均薪資偏低。我想這是大部分單片機(jī)工程師想轉(zhuǎn)嵌入式Linux的最主要的原因。技術(shù)本身各有優(yōu)劣,但是就基層打工而言,在同一座城市,就打工而言,單片機(jī)的薪資比嵌入式Linux低30%到50%。也許很多有會(huì)拿某些做單片機(jī)的高薪的老板(比如野火的火哥,周立功等)或者一些公司高管的薪資和做嵌入式Linux打工的工程師對(duì)比,證明單片機(jī)也可以拿高收入。但是他們都犯了田忌賽馬的錯(cuò)誤,拿別人的上等馬和你的中等馬對(duì)比,火哥認(rèn)為這種田忌賽馬的比較非常不切實(shí)際,基層打工的就應(yīng)該和基層打工的這個(gè)水平的對(duì)比。目前火哥調(diào)查到情況來(lái)看,在深圳的基層就業(yè)市場(chǎng),單片機(jī)(含RTOS)開(kāi)發(fā)的起步薪資在6K-7K, 一般人到15K就是高薪,很難突破。20K以上的單片機(jī)offer也有,但是很少,最多也見(jiàn)過(guò)25K的單片機(jī)offer,但是那都是有名企,名?;蛘咂渌麡I(yè)務(wù)背景換來(lái)的,一般人真拿不到。嵌入式Linux/Android這塊,薪資相對(duì)高不少,起步價(jià)12K很正常,工作2年一般都能突破15K,3-5年突破20K甚至到25K也是很多的,5年以上去一線(xiàn)土豪大廠(chǎng)(華為、OPPO、VIVO等)可以到30K,如果在手機(jī)大廠(chǎng)做到模塊owner專(zhuān)家,突破40K也是可以有,但是在往上就有點(diǎn)難了。整體來(lái)看,同檔次的基層打工者,嵌入式Linux薪資比單片機(jī)開(kāi)發(fā)還是高不少,單片機(jī)15K就會(huì)遇到瓶頸,突破20K就很難了,嵌入式Linux突破20K并不是難事,到25K以上才遇到瓶頸。


2. 你所在的城市嵌入式Linux崗位多嗎?我覺(jué)得這是影響你做決定的另一個(gè)大問(wèn)題。我們學(xué)嵌入式Linux這門(mén)技術(shù),絕大部分人是為了從事相關(guān)的工作,而不是陶冶情操。但是根據(jù)火哥統(tǒng)計(jì)來(lái)看,嵌入式Linux的普遍薪資雖然高于單片機(jī),但是就業(yè)崗位并沒(méi)有單片機(jī)那么多。深圳目測(cè)是嵌入式Linux就業(yè)機(jī)會(huì)最多的城市,但是單片機(jī)機(jī)會(huì)看起來(lái)似乎更多,在深圳,單片機(jī)和Linux崗位數(shù)量對(duì)比大概6比4。從嵌入式Linux城市的崗位數(shù)量來(lái)看,依次是深圳 > 上海 > 北京 > 成都 = 杭州 = 蘇州 > 東莞(華為加持)>= 珠海 >= 南京 = 廣州 = 武漢 = 西安 = 福州 = 廈門(mén) > 佛山 = 長(zhǎng)沙 = 天津 = 合肥 > 其它, 在其它城市我就很少了解到做嵌入式Linux開(kāi)發(fā)相關(guān)的崗位。所以如果你要考慮轉(zhuǎn)行,首先考慮是否愿意背景離鄉(xiāng)去以上幾個(gè)城市工作。否則哪怕你學(xué)了牛逼的Linux技術(shù),可能也會(huì)在當(dāng)?shù)卣也坏綄?duì)口不得不繼續(xù)從事單片機(jī)開(kāi)發(fā)。


3. 單片機(jī)雖然待遇較低,但是就業(yè)機(jī)會(huì)更多,對(duì)大齡求職者相對(duì)友好。這點(diǎn)其實(shí)并不矛盾,做單片機(jī)各行各業(yè)的小公司特別多 (當(dāng)然像格力,美的這種傳統(tǒng)家電大廠(chǎng)也有,但是華為、商湯等新興高科技大廠(chǎng)很少招單片機(jī)),業(yè)務(wù)多種多樣,需要的人更多,但是一般小廠(chǎng)可能資金并不充裕,給不起人才高價(jià),加上單片機(jī)開(kāi)發(fā)門(mén)檻較低(不考慮產(chǎn)品穩(wěn)定性,EMC等有工作經(jīng)驗(yàn)自然會(huì)知道的概念,僅指學(xué)習(xí)使用單片機(jī)干活編程的培養(yǎng)門(mén)檻), 培養(yǎng)周期比較短(大二學(xué)生一個(gè)暑假的功夫),所以導(dǎo)致中低端能干活的人還是挺多,拉低平均薪資。但這就像富士康一樣,招人多,但抱怨缺人,老板就是不想把待遇提上去,要控制成本,這是缺人但是待遇低之間一種永遠(yuǎn)存在的矛盾。但是對(duì)大齡求職者來(lái)說(shuō),由于單片機(jī)崗位實(shí)在是多,很多小廠(chǎng)真的很難以高的性?xún)r(jià)比招到優(yōu)秀的人,在小廠(chǎng)也沒(méi)有HR插手做人力資源規(guī)劃,年齡梯隊(duì)建設(shè),反而在年齡上卡的不嚴(yán),大齡求職者只要薪資不挑,也能找到一份工作,所以相對(duì)于做Linux的大廠(chǎng),對(duì)年齡問(wèn)題比較寬容一些(可能由于單片機(jī)有點(diǎn)歷史了,大齡從業(yè)者也多)。


4. 單片機(jī)也有一些較高薪職位。在單片機(jī)工程師眼中,20k以上就算是高薪,以這個(gè)為標(biāo)準(zhǔn),火哥也見(jiàn)過(guò)一些較高薪的職位,但是這里面有些特殊的要求。某家做智能門(mén)鎖STM32 RTOS的公司給火哥開(kāi)過(guò)20K的offer,主要是因?yàn)楣鞠M械募夹g(shù)人員都有985 211以上學(xué)歷背景,這樣溝通起來(lái)可能觀(guān)念比較一致,所以薪資能給到20k。另外還有一家明星獨(dú)角獸創(chuàng)業(yè)公司給過(guò)25K的單片機(jī)offer, 但是前提要求是能在Linux環(huán)境下開(kāi)發(fā)單片機(jī),而且面試難度較高,本來(lái)25K要價(jià)超出他們預(yù)期了,他們不愿意給這么多,后來(lái)火哥吊著他們一個(gè)星期,謊稱(chēng)拿到華為同等價(jià)格的offer,他們才最終答應(yīng)給25K的offer。剩下火哥還了解到有年薪80w的單片機(jī)高級(jí)工程師(掌握某些行業(yè)特殊的認(rèn)證標(biāo)準(zhǔn))。但是整體來(lái)說(shuō),單片機(jī)較高薪的offer確實(shí)不容易拿到,而且拿到也不僅僅是因?yàn)槟愕膯纹瑱C(jī)技術(shù)好,解bug能力強(qiáng),而是因?yàn)槟愕谋尘?,學(xué)歷,有其它offer抬價(jià),掌握特殊的業(yè)務(wù)競(jìng)爭(zhēng)力等等(關(guān)于嵌入式業(yè)務(wù)競(jìng)爭(zhēng)力可以讀讀火哥上一篇關(guān)于嵌入式競(jìng)爭(zhēng)力的文章),這些特殊業(yè)務(wù)和文憑,背景都不是能靠當(dāng)下自己砸時(shí)間努力看書(shū)學(xué)習(xí)寫(xiě)代碼就能輕易獲取的。如果能單單靠自己砸時(shí)間努力就能獲取的技術(shù)就不是啥門(mén)檻性的技術(shù)。

列舉了以上這幾點(diǎn),要不要從單片機(jī)開(kāi)發(fā)轉(zhuǎn)嵌入式Linux相信你也應(yīng)該可以下決定了。


二、 單片機(jī)和嵌入式Linux開(kāi)發(fā)到底有什么異同


1. 單片機(jī)轉(zhuǎn)嵌入式Linux保留的優(yōu)勢(shì)主要在于熟練的C語(yǔ)言編程能力以及豐富的底層軟件與硬件接口的調(diào)試經(jīng)驗(yàn)。因?yàn)長(zhǎng)inux內(nèi)核本身就是C語(yǔ)言編寫(xiě)的,Linux底層應(yīng)用程序大部分也是C語(yǔ)言的,一般有單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的,C語(yǔ)言應(yīng)該不是問(wèn)題,所以在切換的過(guò)程中,不需要考慮語(yǔ)言的切換,當(dāng)然如果沒(méi)有系統(tǒng)學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)(火哥認(rèn)為數(shù)據(jù)結(jié)構(gòu)是熟悉C語(yǔ)言必不可少的內(nèi)容,哪怕單片機(jī)也要懂?dāng)?shù)據(jù)結(jié)構(gòu)),可能需要補(bǔ)補(bǔ),另外有uCOS FreeRTOS這類(lèi)的實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)就更好,至少在看大規(guī)模C語(yǔ)言代碼的時(shí)候不害怕(其實(shí)懂uCOS內(nèi)核也不代表能馬上掌握Linux內(nèi)核,Linux內(nèi)核真的復(fù)雜太多,設(shè)計(jì)理念也很不一樣)。另外豐富的單片機(jī)底層調(diào)試與寄存器配置經(jīng)驗(yàn),可能幫助你在學(xué)習(xí)Linux嵌入式開(kāi)發(fā)的時(shí)候能快速定位底層的一些問(wèn)題,節(jié)約一些時(shí)間。


2. 單片機(jī)轉(zhuǎn)Linux嵌入式需要熟悉一套風(fēng)格迥異的開(kāi)發(fā)環(huán)境。對(duì)于大部分單片機(jī)工程師而言,都是在Windows上用IDE環(huán)境開(kāi)發(fā)單片機(jī)程序?yàn)橹?不排除有些公司已經(jīng)使用Linux開(kāi)發(fā)單片機(jī)了),Ubuntu這類(lèi)Linux系統(tǒng)接觸比較少,所以你們要越過(guò)的第一關(guān)并不是Linux內(nèi)核源碼,而是如何使用Ubuntu這種Linux系統(tǒng)。因?yàn)樵贒ebian Ubuntu CentOS 等各種Linux系統(tǒng)做軟件開(kāi)發(fā),主要都是通過(guò)命令行操作,而不是鼠標(biāo)界面點(diǎn)擊。并且Linux系統(tǒng)里面的應(yīng)用軟件不像Windows里面的IDE這樣給你集成好了,點(diǎn)擊就能用,Linux里面很多Makefile之類(lèi)的編譯腳本以及Samba, SSH Server等各種服務(wù),arm-linux-gcc等各種編譯鏈接工具,就像IDE軟件里面的各個(gè)組件,需要自己重新組裝使用,并且用的時(shí)候可能有各種環(huán)境甚至編譯問(wèn)題(開(kāi)源軟件猛糙快就是這樣),需要自己折騰花費(fèi)不少時(shí)間,所以對(duì)于Linux入門(mén)者,哪怕你有豐富的單片機(jī)C語(yǔ)言經(jīng)驗(yàn),折騰起來(lái)也挺耗時(shí)間,需要克服心理的障礙,Linux系統(tǒng)開(kāi)發(fā)環(huán)境就像一匹不聽(tīng)話(huà)的烈馬,馴服他才能發(fā)揮出它的價(jià)值,而Windows系統(tǒng)開(kāi)發(fā)環(huán)境更像一匹聽(tīng)話(huà)的普通馬。


3. 嵌入式Linux開(kāi)發(fā)代碼的掌控程度遠(yuǎn)低于單片機(jī)開(kāi)發(fā),單片機(jī)轉(zhuǎn)Linux需要適應(yīng)如何在這種低掌控度的不安全感中進(jìn)行開(kāi)發(fā)。做單片機(jī)開(kāi)發(fā),包括RTOS, 一般代碼量最多幾萬(wàn)行,哪怕不是每行代碼都讀過(guò),也基本能夠精確掌控每個(gè)模塊,大概哪里出了bug,作為開(kāi)發(fā)者很容易定位。而做嵌入式Linux開(kāi)發(fā),單獨(dú)Linux內(nèi)核就有幾百萬(wàn)甚至上千萬(wàn)行,還不包括各種你不熟悉的應(yīng)用層的開(kāi)源庫(kù),這導(dǎo)致大部分代碼都不可能掌控。嵌入式Linux的開(kāi)發(fā)模式就是在這種大部分代碼都不是你開(kāi)發(fā)的,你也掌控不了大部分代碼的情況下開(kāi)發(fā)驅(qū)動(dòng)或者應(yīng)用,你經(jīng)常會(huì)不熟悉的東西需要各種搜索問(wèn)人,這種開(kāi)發(fā)模式,會(huì)把人置于一種不安之谷當(dāng)中,很多你使用的函數(shù)你并不知道它的實(shí)現(xiàn)細(xì)節(jié),可能工作機(jī)制都只是略懂。在這種模式下開(kāi)發(fā)需要很好的搜索,溝通,團(tuán)隊(duì)協(xié)作能力,不能再像單片機(jī)那樣一個(gè)人全局掌控,蒙著頭開(kāi)發(fā)了,這種不可掌控的不安全感是單片機(jī)工程師往Linux嵌入式工程師發(fā)展過(guò)程中最需要適應(yīng)的。


4. 嵌入式Linux開(kāi)發(fā)需要有大局觀(guān),不用迷失在細(xì)節(jié)的叢林找不到方向和出口。很多單片機(jī)工程師有個(gè)思維習(xí)慣,編程時(shí)喜歡細(xì)摳到每個(gè)寄存器的工作原理,每個(gè)功能的實(shí)現(xiàn)細(xì)節(jié)邏輯,每個(gè)if else都不放過(guò)。這在Linux嵌入式學(xué)習(xí)中將非常耗費(fèi)時(shí)間,事倍功半的做法。注重細(xì)節(jié)固然好,但是當(dāng)系統(tǒng)龐大到一種程度的時(shí)候,過(guò)于注重細(xì)節(jié)的人,往往很難駕馭這個(gè)系統(tǒng)。我看到很多初學(xué)者,每個(gè)寄存器,鏈接腳本的每種寫(xiě)法都要去糾結(jié)很久,芯片啟動(dòng)方式更上生搬硬套把2440的啟動(dòng)流程作為芯片啟動(dòng)的唯一真理,處處往其他芯片套。殊不知很多東西都是人為約定的一些習(xí)慣性做法,每家公司的芯片有自己的特點(diǎn),流程是死的,人是活的。掌握大局觀(guān),讓自己迅速熟悉整個(gè)系統(tǒng)的知識(shí),很多細(xì)節(jié)上習(xí)慣性的東西自然而然就明白了,對(duì)整個(gè)系統(tǒng)的掌控力度就高了,遇到具體阻礙你前進(jìn)的細(xì)節(jié)問(wèn)題,再去嘗試處理。掌控并不意味著你知道每行代碼每個(gè)寄存器的意思,但是你能讓整個(gè)系統(tǒng)按照你的想法去運(yùn)行。


三、 單片機(jī)轉(zhuǎn)嵌入式Linux大概需要學(xué)哪些基本的知識(shí)


吹了這么多水,到了真正上干貨的時(shí)候了,從單片機(jī)轉(zhuǎn)Linux嵌入式到底需要學(xué)些啥。如果沒(méi)有這一段,火哥真怕你下定轉(zhuǎn)行決心之后,馬上拿起一本Linux內(nèi)核架構(gòu)與實(shí)現(xiàn)的書(shū),以為像學(xué)uCOS等RTOS系統(tǒng)一樣,都是C語(yǔ)言代碼,然后看得云里霧里,從入門(mén)到放棄。其實(shí)火哥在剛學(xué)習(xí)Linux嵌入式的,也犯過(guò)類(lèi)似的錯(cuò)誤,因而總結(jié)了一些經(jīng)驗(yàn)教訓(xùn)。


1. 你需要花一定時(shí)間熟悉如何使用Linux系統(tǒng)進(jìn)行編程開(kāi)發(fā)。相信很多童鞋都是從小使用Windows電腦長(zhǎng)大的,在學(xué)計(jì)算機(jī)編程之前,應(yīng)該沒(méi)有接觸過(guò)Ubuntu等Linux系統(tǒng),而這個(gè)系統(tǒng)又不像Windows那樣點(diǎn)點(diǎn)鼠標(biāo)就聽(tīng)話(huà),需要各種命令行操作。而且系統(tǒng)里面有各種服務(wù)和應(yīng)用工具需要你自己按照需求去配置。所以學(xué)習(xí)嵌入式Linux開(kāi)發(fā)不是急于鉆進(jìn)Linux內(nèi)核代碼的海洋中,而是先用好Linux系統(tǒng)。你可以參考《鳥(niǎo)哥的Linux私房菜》等Linux系統(tǒng)如何安裝使用等書(shū)籍,學(xué)會(huì)使用命令行。但是火哥認(rèn)為學(xué)習(xí)要有目標(biāo)性,如果對(duì)著《鳥(niǎo)哥的Linux私房菜》一頁(yè)一頁(yè)每個(gè)命令學(xué)下去,看幾天就會(huì)枯草乏味了,所以火哥建議由單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的童鞋,第一個(gè)目標(biāo)就是在Linux系統(tǒng)上如何搭建你的單片機(jī)開(kāi)發(fā)板交叉環(huán)境,編譯出一個(gè)裸機(jī)的Led點(diǎn)燈的程序(不需要跑Linux內(nèi)核),并通過(guò)開(kāi)發(fā)板產(chǎn)商提供的工具燒寫(xiě)。這件事情并不難,網(wǎng)上已經(jīng)有很多如何在Linux系統(tǒng)下交叉編譯單片機(jī)程序的文章,尤其是stm32系列的,你可以參考別人的文章做一遍,在這過(guò)程中你將會(huì)熟悉各種常用的命令,shell, arm-linux-gcc交叉編譯工具鏈,Makefile(可以單獨(dú)參考陳皓的文章)等Linux編程環(huán)境相關(guān)的知識(shí),從而開(kāi)始進(jìn)入Linux的世界。


2. 你需要知道嵌入式Linux系統(tǒng)是怎么跑起來(lái)的,一般由哪些組成部分。相信大部分人轉(zhuǎn)行嵌入式Linux開(kāi)發(fā)并不是為了在Linux系統(tǒng)上開(kāi)發(fā)單片機(jī)程序,而是想做Linux驅(qū)動(dòng)或者應(yīng)用開(kāi)發(fā)。在走完入門(mén)第一步之后,就不要太糾結(jié)那些編譯,鏈接腳本那些文件格式怎么寫(xiě),而是盡快把精力專(zhuān)注到Linux系統(tǒng)開(kāi)發(fā)。學(xué)習(xí)嵌入式Linux系統(tǒng)開(kāi)發(fā),首先就得知道一個(gè)Linux系統(tǒng)如何跑起來(lái),如何把一個(gè)Linux系統(tǒng)環(huán)境在開(kāi)發(fā)板上搭起來(lái)。這牽涉到bootrom, bootloader, uboot, dts, Linux內(nèi)核,cmdline, rootfs等一系列組件,以及nand啟動(dòng),nor啟動(dòng)等各種不同的方式,知道一個(gè)Linux嵌入式系統(tǒng)如何工作,再進(jìn)一步修改添加自己的驅(qū)動(dòng)和應(yīng)用。這里有很多實(shí)踐性的東西,可能需要視頻資料帶你跑一遍,才能快速入門(mén),火哥之前看的是韋東山老師的嵌入式Linux視頻,總共有一二三四期等,有免費(fèi)試看,也有付費(fèi)的,直接X(jué)寶聯(lián)系賣(mài)家可以了解,火哥就不貼廣告鏈接了。另外還有其它視頻,火哥沒(méi)有看過(guò)的,就不隨便推薦了,在嵌入式Linux學(xué)習(xí)這塊,理論性的知識(shí)需要慢慢看書(shū),但是實(shí)踐性的知識(shí)還是需要視頻資料帶你操作快速入門(mén),看書(shū)和實(shí)踐循環(huán)漸進(jìn)。


3. 你可以嘗試做一些簡(jiǎn)單的Linux應(yīng)用和驅(qū)動(dòng)開(kāi)發(fā)了。走完了前面兩個(gè)步驟,相信你對(duì)嵌入式Linux開(kāi)發(fā)有一定專(zhuān)業(yè)性認(rèn)識(shí)了。在嵌入式Linux學(xué)習(xí)這塊,火哥更傾向于在做中學(xué),60%實(shí)踐+40%理論。因?yàn)榍度胧絃inux里面很多系統(tǒng)環(huán)境相關(guān)的東西,并不是書(shū)本上那種嚴(yán)格的理論公式,通過(guò)看書(shū)很難找到規(guī)律,而且在Linux內(nèi)核里面有一整套GNU(GNU是啥意思自己搜)世界的行話(huà),那些寫(xiě)Linux內(nèi)核,驅(qū)動(dòng)書(shū)籍的技術(shù)專(zhuān)家不可能所有行話(huà)都給你解釋,所有在沒(méi)有使用和開(kāi)發(fā)經(jīng)驗(yàn)的前提下就直接打開(kāi)《Unix環(huán)境高級(jí)編程》、《Linux設(shè)備驅(qū)動(dòng)程序》等大牛的經(jīng)典書(shū)籍,容易讓你云里霧里。火哥建議是,跟著一個(gè)視頻教程,比如韋東山老師的嵌入式Linux視頻,從0開(kāi)始寫(xiě)一個(gè)簡(jiǎn)單驅(qū)動(dòng)和應(yīng)用,讓自己寫(xiě)的驅(qū)動(dòng)和應(yīng)用代碼跑起來(lái),點(diǎn)亮1個(gè)Led燈,先不用管Linux驅(qū)動(dòng)中你調(diào)用的那些初始化,注冊(cè)等框架函數(shù)如何實(shí)現(xiàn)。通過(guò)實(shí)踐的過(guò)程,熟悉整個(gè)代碼的運(yùn)行環(huán)境以及Linux開(kāi)發(fā)中的各種行話(huà)(系統(tǒng)調(diào)用,vfs等等)。這也是讓你一步一步取得學(xué)習(xí)正反饋,提升成就感和學(xué)習(xí)信心的方法。其實(shí)Linux驅(qū)動(dòng)開(kāi)發(fā)本身并不難(難度不會(huì)超過(guò)你復(fù)變函數(shù)課本上的公式),也并不神秘,只不過(guò)它一整套行話(huà)術(shù)語(yǔ),容易讓初學(xué)者云里霧里,熟悉這套行話(huà),擺脫恐懼心理,一個(gè)智商正常的普通本科生應(yīng)該是能夠掌握的。


4. 你需要補(bǔ)充一些計(jì)算機(jī)的理論知識(shí)。據(jù)火哥了解,大部分單片機(jī)工程師都是電子、通信、自動(dòng)化、機(jī)械等專(zhuān)業(yè)出身,很少計(jì)算機(jī)專(zhuān)業(yè)的。這些專(zhuān)業(yè)的童鞋,相對(duì)會(huì)缺乏計(jì)算機(jī)專(zhuān)業(yè)的基本理論知識(shí),如數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),計(jì)算機(jī)組成原理,計(jì)算機(jī)網(wǎng)絡(luò),算法,編譯鏈接的基本原理,數(shù)據(jù)庫(kù)等等。補(bǔ)充理論知識(shí)是一個(gè)長(zhǎng)期的過(guò)程(可能需要2-3年),并不是要等到計(jì)算機(jī)的專(zhuān)業(yè)理論都學(xué)完才可以去找工作,你可以一邊補(bǔ)充基礎(chǔ)知識(shí)一邊面試一邊找工作,同時(shí)檢驗(yàn)自己的基礎(chǔ)知識(shí)。這些基礎(chǔ)知識(shí)不但能提高你的技術(shù)功底,也能幫你通過(guò)筆試面試,決定你能否在一線(xiàn)城市突破20K的薪水。在有了計(jì)算機(jī)科班的基礎(chǔ)知識(shí),以及有一定Linux驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)之后,Linux內(nèi)核的學(xué)習(xí)是有必要的,但是入門(mén)的初學(xué)者不用急于進(jìn)入Linux內(nèi)核源碼,內(nèi)核這塊東西還是挺多的挺艱深的,得花時(shí)間邊看書(shū)邊看代碼慢慢啃,沒(méi)法速成,但是Linux內(nèi)核功底還是能夠提高你的薪資競(jìng)爭(zhēng)力。


四、 給有工作經(jīng)驗(yàn)的轉(zhuǎn)行者的建議


1. 有工作的轉(zhuǎn)行者,你的優(yōu)勢(shì)是有保底的工作和收入,劣勢(shì)是沒(méi)有足夠的學(xué)習(xí)時(shí)間自由。有了當(dāng)前的工作飯碗,不用急著找新工作,你可以保持一個(gè)良好的心態(tài),不驕不躁,可以邊學(xué)習(xí)邊騎驢找馬,找到合適的工作。當(dāng)然有工作的人,時(shí)間上并不自由,如果你想學(xué)的新東西和你當(dāng)前工作內(nèi)容并不直接相關(guān),火哥建議你可以先選擇一份加班少的工作,這樣可以騰出下班后的業(yè)余時(shí)間來(lái)學(xué)習(xí)嵌入式Linux的新知識(shí)。有工作的人,有了一些小積蓄,缺的是時(shí)間,那么在學(xué)習(xí)上可以適當(dāng)買(mǎi)一些性?xún)r(jià)比高的付費(fèi)視頻,加快入門(mén)和學(xué)習(xí)進(jìn)度,節(jié)約寶貴的時(shí)間,這也是用金錢(qián)換時(shí)間。一般情況下,不需要學(xué)精通才出去找工作,學(xué)到可以self correct(這個(gè)詞來(lái)源于一個(gè)TED關(guān)于如何快速自學(xué)的演講), 能夠干一些活的狀態(tài),就可以出去面試找相關(guān)的工作了,Linux嵌入式學(xué)習(xí)以通用基礎(chǔ)知識(shí)為主,驅(qū)動(dòng)里面的音視頻,通信協(xié)議相關(guān)的業(yè)務(wù)上的知識(shí)可以找到相關(guān)的工作再補(bǔ)充。


2. 如何在只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下,如何通過(guò)社招嵌入式Linux開(kāi)發(fā)工作?這個(gè)對(duì)于社招看中相關(guān)工作背景的求職者是個(gè)頭疼的問(wèn)題,火哥有以下幾點(diǎn)建議:


首先,看看公司是否有Linux相關(guān)的部門(mén)和開(kāi)發(fā)計(jì)劃,可以主動(dòng)嘗試內(nèi)部轉(zhuǎn)崗

第二,看看能不能建議公司技術(shù)負(fù)責(zé)人把單片機(jī)開(kāi)發(fā)的環(huán)境遷移到Linux系統(tǒng)上,在Linux系統(tǒng)環(huán)境上開(kāi)發(fā)單片機(jī),這樣至少你在工作中有使用Linux系統(tǒng)的機(jī)會(huì)。

第三,可以先嘗試面一些在Linux環(huán)境下開(kāi)發(fā)單片機(jī)的公司,面試后詢(xún)問(wèn)面試官是否在Linux環(huán)境下開(kāi)發(fā)單片機(jī),如果是,可以先加入用Linux開(kāi)發(fā)單片機(jī)的公司繼續(xù)做一段時(shí)間單片機(jī),順便再工作中熟悉一下Linux.

第四,嘗試一下面試真正做Linux系統(tǒng)開(kāi)發(fā)的公司一些Bootloader或者固件開(kāi)發(fā)相關(guān)的崗位,因?yàn)锽ootloader和存儲(chǔ)控制器,電管管理等固件代碼和單片機(jī)裸機(jī)rtos開(kāi)發(fā)有很多相關(guān)性,甚至ARM SOC里面就有單片機(jī)核以及相關(guān)的固件,用于控制wifi,存儲(chǔ),電源休眠喚醒等相關(guān)的功能,這樣能保證你能夠在新工作中有一定輸出貢獻(xiàn),而不是完全的學(xué)習(xí)者。

第四,嘗試面試一些流動(dòng)性高,離職率高的真正做Linux公司。這樣的公司一個(gè)詞形容:“缺人”。火哥之前在珠海某IC原廠(chǎng)工作,由于珠海相關(guān)的從業(yè)者基數(shù)少,應(yīng)屆畢業(yè)生很多也不愿意來(lái)小城市發(fā)展,再加上公司近年業(yè)績(jī)不好,離職率高,導(dǎo)致公司缺人,并且很難招到人,所以后來(lái)放開(kāi)招人標(biāo)準(zhǔn),愿意培養(yǎng)只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux經(jīng)驗(yàn)社招者。當(dāng)然現(xiàn)在火哥在的深圳知名大廠(chǎng),由于從業(yè)人口基數(shù)大,公司品牌和待遇都很有競(jìng)爭(zhēng)力,競(jìng)爭(zhēng)較為激烈,雖然號(hào)稱(chēng)缺人(其實(shí)是招人太挑剔了),但是一般不會(huì)給沒(méi)有Linux經(jīng)驗(yàn)的求職者機(jī)會(huì)。

最后,在學(xué)習(xí)Linux嵌入式的過(guò)程中,遇到的問(wèn)題和寫(xiě)的代碼,最好有技術(shù)博客和GitHub記錄下來(lái),把相關(guān)鏈接貼在簡(jiǎn)歷上,這也是像面試官證明你真的對(duì)嵌入式Linux有一定了解,面試官看完你的博客和GitHub,才能對(duì)你的技術(shù)水平有進(jìn)一步了解,決定是否給你機(jī)會(huì)。


五、 給在校生轉(zhuǎn)行者的建議


對(duì)在校生來(lái)說(shuō),你多的是時(shí)間上的自由,缺的是金錢(qián)以及沒(méi)有一份保底的工作。


當(dāng)然時(shí)間這東西就像衛(wèi)生紙,看起來(lái)多,但是用著用著就沒(méi)有了,所以即使有充裕的時(shí)間,也要好好規(guī)劃,盡量多學(xué)一些東西。


在校生既然缺錢(qián),火哥就不建議花好幾萬(wàn)培訓(xùn)費(fèi)去參加線(xiàn)下的嵌入式培訓(xùn),實(shí)際上培訓(xùn)的內(nèi)容都是嵌入式入門(mén)級(jí)知識(shí),質(zhì)量上可能還比不過(guò)幾百塊的韋東山嵌入式Linux視頻。而且視頻教程在時(shí)間上可能比培訓(xùn)更加靈活。


在校生的優(yōu)勢(shì)在于大家都沒(méi)有行業(yè)相關(guān)經(jīng)驗(yàn),校招的時(shí)候,不會(huì)考察你行業(yè)相關(guān)的知識(shí),而更加注重計(jì)算機(jī)基礎(chǔ)知識(shí)的考察(火哥甚至是憑著操作系統(tǒng),C語(yǔ)言,數(shù)據(jù)結(jié)構(gòu)的筆試成績(jī),基本沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下拿到IC原廠(chǎng)Linux的offer, 當(dāng)然校招之后還有大半年,買(mǎi)了韋東山付費(fèi)視頻狂補(bǔ)相關(guān)知識(shí)),所以在校生應(yīng)該乘著寶貴的時(shí)間,把火哥上一節(jié)提到的第4點(diǎn)基礎(chǔ)知識(shí)打牢固,這樣工作之后就可以專(zhuān)注業(yè)務(wù)知識(shí)學(xué)習(xí),更快升職加薪,不用因?yàn)榛A(chǔ)知識(shí)不牢,回爐重造。


另外,在校生可能有各種單片機(jī)嵌入式的競(jìng)賽,在競(jìng)賽過(guò)程中,可能可以拿到很多獎(jiǎng),得到老師同學(xué)的夸贊。但是切記戒驕戒躁,不要因?yàn)楸绕胀ǖ耐瑢W(xué)多掌握2個(gè)技術(shù)就自以為了不起(你們以后面試的競(jìng)爭(zhēng)對(duì)手根本不是這些完全沒(méi)有技術(shù)同學(xué)),不要因?yàn)閹讉€(gè)獎(jiǎng)狀就飄了,而不能靜下心來(lái)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等基礎(chǔ)知識(shí)。如果不是在知名期刊發(fā)表高水平論文,或者國(guó)際上認(rèn)可的ACM, Kaggle, ISLVRC圖像競(jìng)賽中拿到那種高質(zhì)量有分?jǐn)?shù)和名次比賽結(jié)果的獎(jiǎng),其它國(guó)內(nèi)競(jìng)賽的獎(jiǎng)在面試與實(shí)際工作中并沒(méi)有太多說(shuō)服力,面試官反而喜歡基本功扎實(shí),可塑性強(qiáng)的學(xué)生,而不是國(guó)內(nèi)各種獎(jiǎng)一堆,結(jié)果時(shí)間復(fù)雜度,鏈表堆棧,mmu虛擬地址空間等概念一問(wèn)三不知的學(xué)生。


那么其他專(zhuān)業(yè)該能轉(zhuǎn)嵌入式嗎,如何轉(zhuǎn)?


前幾天,有朋友在后臺(tái)問(wèn),他是一個(gè)機(jī)械專(zhuān)業(yè)的學(xué)生,想轉(zhuǎn)到嵌入式方向,該怎么學(xué)?今天我們特意做了這樣這個(gè)話(huà)題,希望能幫到那些想轉(zhuǎn)嵌入式領(lǐng)域的朋友們!


當(dāng)局者迷,旁觀(guān)者清,關(guān)于轉(zhuǎn)行這件事,先聽(tīng)聽(tīng)其他人的看法:


機(jī)械到嵌入式,我不覺(jué)得是轉(zhuǎn)行,算是自己專(zhuān)業(yè)領(lǐng)域的拓展,畢竟嵌入式軟件不是純理論的東西,絕大部分是通過(guò)機(jī)械來(lái)實(shí)現(xiàn)其功能的。舉一個(gè)極端的例子,你覺(jué)得設(shè)計(jì)一個(gè)機(jī)器人都需要哪些知識(shí)??jī)H僅的機(jī)械設(shè)計(jì)和嵌入式軟件就夠了嗎?遠(yuǎn)遠(yuǎn)不止。學(xué)習(xí)嵌入式軟件設(shè)計(jì)并不意味著放棄機(jī)械設(shè)計(jì)。

能有這個(gè)想法很好,純粹地做機(jī)械,不是太好,以后的趨勢(shì)肯定是要復(fù)合型的。

首先從個(gè)人發(fā)展來(lái)說(shuō),軟件行業(yè)(嵌入式/通信/互聯(lián)網(wǎng))整體薪資待遇都比傳統(tǒng)的機(jī)械行業(yè)要好,如果有毅力和決心,并且能主動(dòng)學(xué)習(xí),為了提高自己的生活水平,換行業(yè)未嘗不可。從行業(yè)發(fā)展來(lái)說(shuō),據(jù)我所了解的,國(guó)內(nèi)的高精度數(shù)控機(jī)床的研發(fā)一直是很薄弱,這方面的研究需要跨行業(yè)的人才,如果能有這樣的機(jī)遇是相當(dāng)不錯(cuò)的;另外機(jī)器人領(lǐng)域的研究(自動(dòng)化生產(chǎn))也在興起,有跨行業(yè)的技術(shù)背景也是相當(dāng)不錯(cuò)的。

嵌入式軟件開(kāi)發(fā)以后會(huì)比較火,而且應(yīng)用范圍比較廣。但不太建議完全放棄原來(lái)的工作領(lǐng)域,轉(zhuǎn)入嵌入式。最好是能找到一些交叉點(diǎn),這樣你的職業(yè)生涯起伏會(huì)比較小。

我是學(xué)機(jī)械的,但同時(shí)對(duì)于電子與軟件非常喜歡。我學(xué)習(xí)單片機(jī)和畫(huà)電路圖,所以,在這方面是有一些心得的。如果純機(jī)械的人,想轉(zhuǎn)到電子或軟件,要進(jìn)行的轉(zhuǎn)變比較大,最好要有人帶。軟件要學(xué)得比較深,所以,要向這個(gè)方面發(fā)展的話(huà),需要學(xué)習(xí)的很多很多。我想,如果自己喜歡,而且各方面的條件比較合適的話(huà),可以向這方面發(fā)展呀。

如果覺(jué)得你在機(jī)械設(shè)計(jì)這個(gè)行業(yè)的專(zhuān)長(zhǎng)還沒(méi)有發(fā)揮到極致,建議不要轉(zhuǎn)行。如果你有能力只是感覺(jué)工作困難就不要轉(zhuǎn)了。這年頭做哪個(gè)行業(yè)都會(huì)遇到困難,看你在困難面前能堅(jiān)持多久。綜合分析下,如果你覺(jué)得自己的能力沒(méi)辦法再堅(jiān)持下去,建議馬上轉(zhuǎn),不要猶豫。當(dāng)然跨行還會(huì)遇到困難。


當(dāng)然,上面的建議只是參考,如果你真的想好了,要轉(zhuǎn)做嵌入式工程師,下面的建議可以看看:


1.嵌入式涉及到很多的基礎(chǔ)知識(shí)


C語(yǔ)言,關(guān)于C語(yǔ)言要知道基本的語(yǔ)法,什么是結(jié)構(gòu)體,什么是共用體,有什么區(qū)別,不用強(qiáng)記一些二級(jí)考的東西,因在實(shí)際中用的很少。


C++要知道什么是類(lèi),怎么定義,繼承,接口,要深刻理解,當(dāng)然基本語(yǔ)法也是必不可少的。


操作系統(tǒng)原理也應(yīng)該知道基本的原理的,什么時(shí)間片啊,任務(wù)調(diào)度啊,都是需要知道的。


Linux基本命令的使用(vi編輯器必須會(huì)用,因?yàn)樵诮K端改文件的時(shí)候只能用這個(gè)),我們現(xiàn)在很多的人都習(xí)慣用鼠標(biāo)了,很少用到命令,我們學(xué)習(xí)嵌入Linux可要改改這個(gè)習(xí)慣了,Linux用命令操作一是效率高,二是功能非常強(qiáng)大,遠(yuǎn)非圖形界面能比的了的,其實(shí)我們用圖形界面的操作都要轉(zhuǎn)化為命令傳給硬件的。


Linux文件系統(tǒng)的管理要清楚,哪個(gè)目錄存放是什么東西,有什么用,文件權(quán)限管理等。  


Shell編程也要了解一些,在這給大家推薦一個(gè)教程,周朝劍的shell編程,也就七八講吧,講的很全面。初學(xué)者看前4講就可以了。


2. 看書(shū)不要希望一次就會(huì),一次就明白是什么意思,也不要死記硬背


看不明白也沒(méi)關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀Linux內(nèi)核源代碼,看一些自己把頭撞破也想不明白的事,會(huì)打擊初學(xué)者的積極性,要循序漸進(jìn),今天學(xué)個(gè)做個(gè)LED,明天做個(gè)串口,后天說(shuō)不定就做硬件編解碼了。


3.你可以不接受培訓(xùn),但是不能不買(mǎi)開(kāi)發(fā)板


如果你想學(xué)習(xí)嵌入式一定要買(mǎi)塊學(xué)習(xí)板,現(xiàn)在的開(kāi)發(fā)板很便宜了,給初學(xué)者減輕了很多經(jīng)濟(jì)負(fù)擔(dān)??丛俣嗟囊曨l,看再多的書(shū),也不如自己動(dòng)手試一下,看著很簡(jiǎn)單的東西,做起來(lái)就可能遇到很多的問(wèn)題,遇到問(wèn)題找到原因,解決問(wèn)題,只有這樣才能學(xué)到東西,記得我第一次寫(xiě)LED的驅(qū)動(dòng),想自己試一下,網(wǎng)上也有人寫(xiě)過(guò)相關(guān)的代碼,可是自己一試,就出了好多的問(wèn)題,弄了一天才把LED燈點(diǎn)亮。所以不要眼高手低。


還有關(guān)于培訓(xùn),現(xiàn)在的培訓(xùn)機(jī)構(gòu)很多,講的也不錯(cuò),老師也很好,但是有一個(gè)問(wèn)題,太集中了,而且學(xué)生動(dòng)手的機(jī)會(huì)也不太多,記得我們公司還招了一個(gè)在北京某個(gè)培訓(xùn)機(jī)構(gòu)培訓(xùn)半年的員工呢,花了一萬(wàn)多,來(lái)了之后也沒(méi)感覺(jué)有多高,問(wèn)他都學(xué)了什么,也就是我前邊說(shuō)的那些基礎(chǔ)知識(shí),很多的東西還是不知道的,照著書(shū)弄個(gè)helloworld模塊驅(qū)動(dòng)兩天沒(méi)搞定。不是培訓(xùn)不好,但我個(gè)人見(jiàn)解效果并不是很好。記?。褐挥凶约簞?dòng)手做過(guò)的東西才是自己的。


4.不要好高騖遠(yuǎn),要腳踏實(shí)地


對(duì)于初學(xué)者,還有一點(diǎn)小建議,我們拿到一個(gè)開(kāi)發(fā)板,很興奮也很激動(dòng),想法自然也很多,想用開(kāi)發(fā)板實(shí)現(xiàn)自己的這個(gè)想法,實(shí)現(xiàn)那個(gè)想法,然后又不知道從何下手,然后就去論壇中發(fā)一個(gè)貼, “那個(gè)什么什么怎么實(shí)現(xiàn)啊,哪位大俠能詳細(xì)說(shuō)一下啊,跪求!!”然后等著別人去回復(fù)。見(jiàn)沒(méi)人回復(fù)就抱怨。有想法是好的,我們要實(shí)現(xiàn)自己的想法也是有前提的,首先,我們對(duì)這部分知識(shí)了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問(wèn)題,再去發(fā)貼問(wèn),這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問(wèn)串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。


5.多看代碼,多寫(xiě)代碼


見(jiàn)多識(shí)廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來(lái)。自己平時(shí)也要多寫(xiě)代碼,多練習(xí)。

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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