溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

跟濤哥一起學(xué)嵌入式 第03集:嵌入式要從u-boot移植學(xué)起

發(fā)布時間:2020-02-29 07:53:05 來源:網(wǎng)絡(luò) 閱讀:909 作者:宅學(xué)部落 欄目:系統(tǒng)運(yùn)維

大家好,我是濤哥,歡迎閱讀《跟濤哥一起學(xué)嵌入式》第3集。俄羅斯仲夏夜,世界杯依舊如火如萘。球場上,夕陽下,梅西沒落的身影、C羅的黯淡離場,并沒有打擊大家太多的熱情。戰(zhàn)火依舊,老兵不死,梅羅時代是否快要終結(jié)?然而新一代巨星冉冉升起,風(fēng)起云涌。在看球的同時,學(xué)習(xí)充電也不能落下,今天我們聊聊第3個話題:學(xué)習(xí)嵌入式,一定要從u-boot移植學(xué)起嗎?

嵌入式真要從U-boot移植學(xué)起?

故事緣起嵌入式技術(shù)群(475504428)一位嵌入式學(xué)員遇到的問題:這位學(xué)員想在他的開發(fā)板上移植最新版本的U-boot。然而,將近半年過去了,發(fā)現(xiàn)還在群里問一些關(guān)于移植的一些問題,這就引發(fā)我的思考:照這樣的速度,再給他幾個月,能否移植成功?對于一個新手,沒有輔助的一些工具,費(fèi)這么大力氣,去做一些跟以后的工作不太相關(guān)的技能,是否劃算?當(dāng)看到這種學(xué)習(xí)方式給很多新手帶來的不是進(jìn)步的喜悅,而是打擊,甚至是轉(zhuǎn)行去做其它,我覺得我們也許應(yīng)該換種學(xué)習(xí)方式了,包括我在內(nèi),在上面也栽過不少坑。

我的悲催學(xué)習(xí)經(jīng)歷

跟大家學(xué)習(xí)的經(jīng)歷差不多,學(xué)生時代,玩完51單片機(jī)后,我就購買了第二塊開發(fā)板:某款A(yù)RM9開發(fā)板,這里就不說具體的名字了。按照流程,裸機(jī)實驗做了一遍后,就開始開啟了U-boot的移植生涯,在燒寫U-boot時發(fā)現(xiàn)根本啟動不起來,當(dāng)時由于沒有相關(guān)的調(diào)試工具,比如TRACE等,也不會相關(guān)的調(diào)試打印手段,所以只能嘗試各種可能的原因一一排除,逛各種論壇、到百度翻頁,發(fā)現(xiàn)根本解決不了問題。為此前前后后折騰了幾個月,被折騰得有氣無力。到最后,聯(lián)系廠商的工程師,開發(fā)板寄回去后,發(fā)現(xiàn)是NOR FLASH芯片的問題,重新?lián)Q了一塊NOR FLASH,系統(tǒng)就可以正常運(yùn)行了。雖然這個問題最后得到了解決,但是前前后后也浪費(fèi)了我?guī)讉€月的時間,當(dāng)然,有人可能會說,通過這個bug你也學(xué)到很多東西啊。是的,通過不斷分析這個問題,確實增長了不少知識和技能,但是對于新手來說,如果一上來就通過問題驅(qū)動來學(xué)習(xí),是很容易打擊人的學(xué)習(xí)積極性的。大部分人可能會堅持不下去,折騰得差不多了,也就把板子扔到一邊落灰,去搞互聯(lián)網(wǎng)、Java去了,從而改變了自己的職業(yè)道路。為了這個bug,我浪費(fèi)了幾個月的時間,我覺得是不劃算的,這幾個月的寶貴時間,我可以去學(xué)習(xí)以后嵌入式開發(fā)中用到的高頻技能,提高我的工作效率,而不是在這個低頻技能上耗費(fèi)太多的時間。

高頻技能與低頻技能

什么是高頻技能,低頻技能呢?寫這兩個詞時,特地到百度搜索了一下,發(fā)現(xiàn)并沒有相關(guān)的詞匯,姑且看作是我創(chuàng)造的兩個新詞吧(版權(quán)歸我啊,用時要交稅~)。顧名思義,高頻技能就是我們在工作中大概率使用到的技能;低頻技能,就是我們在工作中很少使用的技能。

早期的單片機(jī)開發(fā),系統(tǒng)比較簡單,從硬件設(shè)計、PCB畫圖、軟件開發(fā)、測試,一個工程師就可以搞定,軟硬通吃。按照今天的流行語,就叫全棧工程師。但現(xiàn)在不同了,嵌入式開發(fā),尤其是上了OS后的嵌入式系統(tǒng)開發(fā),需要的理論基礎(chǔ)和技能儲備太多太雜:從硬件、計算機(jī)系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、應(yīng)用層、GUI等,都要有所涉獵。同時,隨著嵌入式越來越復(fù)雜,分工也越來越明確:硬件工程師、PCB工程師、BSP工程師、驅(qū)動工程師、應(yīng)用工程師、測試工程師,大家以一個團(tuán)隊的形式共同開發(fā)維護(hù)一個嵌入式項目。

分工的形成,以前全棧工程師需要的軟硬技能,就不需要全部學(xué)習(xí)了。當(dāng)然,你也學(xué)不完,就算你學(xué)完了,有些知識你一輩子也可能用不到。分工機(jī)制下,每個人精通各自的模塊,分工協(xié)作,效率最高?,F(xiàn)在一個嵌入式SOC,幾十個IP模塊,你說你都掌握,有點不現(xiàn)實,一個音視頻解碼、GPS、GPU、USB都可能讓你啃幾年才能談得上精通。系統(tǒng)越來越復(fù)雜,分工越來越明確,這就需要我們可能要換一種新的方式了。

對于嵌入式學(xué)習(xí)者來說,面對越來越復(fù)雜的系統(tǒng),我們該如何學(xué)習(xí),學(xué)習(xí)什么,這是一個很值得思考的問題。在思考這個問題之前,我們首先要有一個前提:人的精力是有限的,不可能掌握所有的知識和技能。如果你不認(rèn)可這個前提,非得按照那種全棧工程師的模式學(xué)習(xí),那下面就沒有看的需要了。

該如何學(xué)習(xí)呢?我們需要對嵌入式開發(fā),需要的技能進(jìn)行重構(gòu)和分解。哪些是常用的,基礎(chǔ)的,必須掌握的,即高頻技能,哪些是不常用的,即低頻技能,然后再根據(jù)需要,科學(xué)地學(xué)習(xí)。這才是嵌入式2.0時代,學(xué)習(xí)嵌入式的正確姿勢,適應(yīng)職場技新形勢新需求的學(xué)習(xí)捷徑。

學(xué)習(xí)U-boot的正確姿勢

同樣一個U-boot,不同的職位、不同的開發(fā)人員,對它的掌握程度是不一樣的。一個團(tuán)隊就和一個特種小分隊一樣:狙擊手要求精通狙擊、爆破手要精通各種爆破技術(shù)、通信兵要掌握各種電子情報獲取技術(shù)。團(tuán)隊中不同的成員精通不同的技能,集合在一起,就可以形成恐怖的戰(zhàn)斗力。人的精力是有限的,精通一門技術(shù)的同時,就不可能在另一門技術(shù)上花費(fèi)同樣的心力了,學(xué)習(xí)U-boot也是一樣,你也不必什么都學(xué)。

那對于新手來說,U-boot要學(xué)習(xí)什么呢?我覺得兩點就夠了:U-boot的啟動流程和U-boot跟內(nèi)核的傳參交互。這些是基礎(chǔ),也是各種開發(fā)人員經(jīng)常接觸到的。至于各種啟動方式、底層實現(xiàn)的一些細(xì)節(jié),這些原廠都已經(jīng)做好了,我們直接用就可以了。軟件開發(fā)中有軟件復(fù)用的思想,同樣,嵌入式系統(tǒng)開發(fā)中,我們也要有這種思想,不要什么都自己干,什么輪子都自己造,尤其是硬件,尤其是新手!高手造輪子,一般人用輪子,這是規(guī)律,先學(xué)會用輪子造汽車,在慢慢學(xué)著造更好的輪子。因為很多硬件上的坑、芯片內(nèi)部的bug,這些都是不可見的,不會對外公開的,很多都是通過軟件規(guī)避、或者其它手段曲線救國來實現(xiàn)的,這些東西你可能永遠(yuǎn)都不會知道,所以,如果你是新手,盡量不要跌到這些坑里,可以參考我上面所說的學(xué)習(xí)方式。

嵌入式工程師自我修養(yǎng)

《嵌入式工程師自我修養(yǎng)》體系教程,就是根據(jù)這種思路,適應(yīng)嵌入式新時代需求、對嵌入式中的高頻技能、低頻技能不斷重構(gòu),分解,重新設(shè)計而成的一種培訓(xùn)教程體系,也是我未來幾年努力打造的一套培訓(xùn)課程。跟隨這套教程學(xué)習(xí)的學(xué)員也許會發(fā)現(xiàn),里面的相關(guān)課程,跟目前市面上、培訓(xùn)機(jī)構(gòu)的都不太一樣,沒錯,這也算是我的一個小小原創(chuàng),互聯(lián)網(wǎng)上首家使用新概念:高頻技能、低頻技能重新打造的一門嵌入式自學(xué)體系教程。

這門教程的威力在哪里?一般的教程,大家學(xué)到最后,學(xué)到的都是同樣的知識和技能,就像流水線一樣,出來的都是同樣的產(chǎn)品。而《嵌入式工程師自我修養(yǎng)》體系教程,不是這樣:每個人的學(xué)習(xí)強(qiáng)度不同、選擇方向不同,最后結(jié)果也不一樣:你有可能發(fā)現(xiàn)太難、學(xué)不下去,知難而退;有可能是基礎(chǔ)扎實的普通士兵;也有可能是身懷絕技的特種兵;也有可能是身兼數(shù)門絕技的兵王。課程的難度強(qiáng)度梯度足夠大,對你的技術(shù)成長上限不設(shè)限,它跟你的目標(biāo)、要投入的時間和精力成正比,只要你肯吃苦、愿意努力,你可以把你的潛力推高到極致。對你,對我,都是同樣的挑戰(zhàn)。

《跟濤哥一起學(xué)嵌入式》,會持續(xù)跟大家分享嵌入式相關(guān)技術(shù)、學(xué)習(xí)方法、學(xué)習(xí)路線、求職面試等,歡迎收聽頭條號(微信公眾號):宅學(xué)部落,QQ群:475504428

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI