91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

學習篇—如何進行嵌入式學習?又有哪些誤區(qū)呢?

454398 ? 來源:羅姆半導體社區(qū) ? 作者:羅姆半導體社區(qū) ? 2022-11-28 12:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:羅姆半導體社區(qū)

嵌入式學習的一些概念理解誤區(qū)

很多嵌入式初學者認為,學嵌入式,就是學習ARM,就是學習開發(fā)板。買一塊開發(fā)板,然后在上面“移植”u-boot、Linux內(nèi)核,再使用busybox制作一個根文件系統(tǒng),大功告成!覺得可以出去找工作了。這其實是有一定片面性的:首先ARM是個CPU架構(gòu),跟PC上的X86架構(gòu)一樣,你見過有人在Windows下面學習C/C++編程、MFC編程、網(wǎng)絡(luò)編程、互聯(lián)網(wǎng)編程,說自己學習X86的嗎?當然,也不可否認,嵌入式平臺的多樣性、硬件的可定制性導致我們在嵌入式平臺上開發(fā)應(yīng)用程序、驅(qū)動之前,首先要搭建這個平臺,就像我們在Windows下面要裝操作系統(tǒng)一樣,但是這僅僅是我們學習嵌入式開發(fā)的第一步。

其次,關(guān)于系統(tǒng)的“移植”,很多人玩了開發(fā)板之后,會在自己的簡歷上寫自己移植過u-boot,Linux內(nèi)核......其實,這種寫法也是有點瑕疵的。真正的移植,往一個新的芯片或開發(fā)板上porting一個u-boot或Linux內(nèi)核,那可不是一個人能干的事情,是一個團隊干的事情。時鐘、DDR、存儲,可能牽涉到各個模塊,哪里遇到問題,都需要各個模塊的owner去debug,有時候甚至可能是芯片的bug,或者硬件開發(fā)板的bug,這就需要我們使用軟件去解決、去規(guī)避這個坑,這都需要我們在很短時間,甚至一兩天的時間去解決這個問題,需要一個團隊的各個模塊專家合力完成。所以說,我們所說的“移植”,其實就像是在Windows下面安裝操作系統(tǒng),按照步驟完成裝機。當然,通過這個過程,可以加深我們對嵌入式系統(tǒng)的理解,但是我們首先要知道的是,我們“移植”的系統(tǒng),都是芯片公司團隊做好的系統(tǒng)鏡像,我們做的只是配置、編譯、安裝、甚至升級這些基本的操作。這些環(huán)境只是我們學習嵌入式開發(fā)的平臺,萬里長征才走完了第一步。


學習嵌入式,我們到底該學些什么?

嵌入式越來越復雜,一個SOC芯片上集成的模塊越來越多。以手機為例,典型的嵌入式產(chǎn)品,我們看看上面集成了多少模塊:觸摸屏、LCD、USB、WiFi、4G無線通信、音視頻編解碼IP、DDR、存儲控制器、3D/2D加速、GPS、指紋識別、NFC、DMA、G-sensor各種傳感器.......??梢哉f,現(xiàn)在一個手機的復雜度和硬件配置,已經(jīng)超過我們的桌面PC了。除了不斷增加的硬件,軟件方面,比如Linux內(nèi)核,光內(nèi)核代碼就有1000多萬行,每天更新的速度超過你學習的進度,你能學得完嵌入式的所有知識和技能嗎?

早期PC時代,我們知道能做出X86 CPU量產(chǎn)的也沒有幾家,Intel、AMD和威盛。但是嵌入式時代不一樣了,ARM的IP授權(quán)模式導致不同的芯片廠商百家齊放,不同的SOC平臺和開發(fā)板眼花繚亂,針對不同行業(yè)需求定制的SOC平臺雨后春筍:手機芯片、平板芯片、視頻安防、物聯(lián)網(wǎng)、汽車電子工業(yè)控制,甚至人工智能AI芯片....,你到Linux內(nèi)核的ARCH下面可以看看有多少種CPU架構(gòu),再到arch/arm下面看看有多少種開發(fā)平臺,這還只是加入到內(nèi)核mainline的平臺,算上沒有加入Linux內(nèi)核主線的各種平臺,其實數(shù)量更多。

眾多的芯片架構(gòu)、不同的開發(fā)板平臺,我們該如何去學習?

嵌入式和PC的概念也越來越模糊了,Intel已經(jīng)推出X86架構(gòu)的CPU和嵌入式產(chǎn)品了,比如平板。ARM也開始進軍服務(wù)器和筆記本領(lǐng)域了。無論什么CPU架構(gòu),ARM、X86、MIPS、PowerPC,還有最近火熱的物聯(lián)網(wǎng)芯片,無論是做嵌入式產(chǎn)品,還是PC、服務(wù)器,他們的底層本質(zhì)其實都沒有變,都是計算機原理和系統(tǒng)架構(gòu),都是馮諾依曼的計算機架構(gòu),圖靈原型機的各種實現(xiàn)。

不斷復雜的軟硬件系統(tǒng),對嵌入式工程師或者學習者來說是一個挑戰(zhàn)。這對我們本身的知識和技能有一個更新的要求。早期51單片機時代,我們可以自己使用面包板或者自己畫PCB,做一個開發(fā)板,然后在上面開發(fā)軟件。軟件、硬件自己全搞。現(xiàn)在不斷復雜的SOC平臺,再想一個人全搞,軟硬通吃,基本不可能,這也導致我們需要分工協(xié)作來完成。首先軟硬件的分工,各司其職,各自精通自己的領(lǐng)域,然后進行軟硬件整合,協(xié)作開發(fā)。再次,軟件方面,嵌入式軟件也越來越復雜,Linux內(nèi)核1000多萬行,android源碼下載下來就占幾個G的空間,自己想全搞,同樣不可能,同樣需要進行分工。比如android,需要分為BSP工程師、Linux內(nèi)核工程師、驅(qū)動工程師、android中間層開發(fā)工程師、APP開發(fā)工程師。對于一個Linux內(nèi)核,也需要分工,各個模塊同樣進行分工:Linux內(nèi)核的USB子系統(tǒng)、音頻子系統(tǒng)、視頻編解碼、文件系統(tǒng)......把其中一個模塊你搞精通了,工資絕對不是問題。

對于嵌入式學習者來說,我們該學習什么,或者說如何學習?才能提高自己的職場競爭力,或者說對于一個新手來說,如何通過自學,達到公司的用人標準和技術(shù)要求,找到一份自己想要的工作?

首先,你要學會做減法,從現(xiàn)實出發(fā),要有這樣一個意識:我不可能精通所有的嵌入式技術(shù),學會堅持,制定合理現(xiàn)實的小目標。很多人喜歡那種不切實際的廣告轟炸營銷,擊中你心理上的某個軟肋,某個G點,一下子興奮起來。越熬越濃的心靈雞湯,并不能解決我們吃飯的生存現(xiàn)實問題。很多人,包括我,在學習的時候,都喜歡給自己樹立各種路線、計劃、日程表。制定計劃時激情滿滿,熱情高漲,激動得睡不著覺。計劃宏偉而飽滿,仿佛成功就在眼前。但是往往不切實際,往往在早期,遇到各種困難,各種坑,各種拖延導致沒有堅持下來,最后夭折。然后接著制定下一個宏偉的計劃,繼續(xù)夭折,生活周而復始,day after day。觀察我們生活周圍,真正做出成績的都是那些基于現(xiàn)實出發(fā),能一路堅持下來的人,day by day。有時候你會發(fā)現(xiàn),并不覺得他們有多聰明。

其次,保持自己的興趣,說白了就是為了堅持下去。見過很多人想學習嵌入式,花了很多米買一塊開發(fā)板,激情滿滿,過一段是過去再看,已經(jīng)不折騰了。嵌入式開發(fā)難,難在哪里呢?主要在于開發(fā)環(huán)境的搭建,軟件調(diào)試上,不像在Windows上使用VC開發(fā)程序,集成開發(fā)環(huán)境都幫你弄好了,各種斷點、單步、查看堆棧、寄存器、內(nèi)存窗口。而嵌入式不一樣,硬件環(huán)境搭建會遇到各種各樣的問題,各種電腦的兼容問題,各種莫名其妙的問題,有時候著實讓人抓狂,時間久了,慢慢地學習的激情殆盡,也就不想學習了。這還不算什么,更嚴重的是,很多人學習嵌入式遇到挫折,往往會打擊人的自信,覺得自己能力不行,智商不夠,不適合干這行,在心理留下了陰影。對于個人學習者來說,買了開發(fā)板,你不買配套的萬用表、示波器等調(diào)試設(shè)備,遇到硬件問題也是一籌莫展,無法解決。其實我們可以完全使用其它的平臺去開展我們的研究和學習,比如QEMU,一款可以仿真開發(fā)板的開源軟件,使用這款開源軟件,我們可以在電腦上虛擬一個世面上流行的開發(fā)板,然后再在這個仿真的開發(fā)板上跑u-boot、Linux內(nèi)核、掛載根文件系統(tǒng),使用和開發(fā)板一樣的源碼,運行效果和真實的開發(fā)板是一樣的。而且,使用QEMU的好處就是,“硬件”永遠不會出問題,可以讓我們避過硬件的各種坑,騰出更多的精力去研究嵌入式軟件的各種架構(gòu)、編程技能、內(nèi)核驅(qū)動....,這些才是嵌入式工程師的核心競爭力,需要花大量的時間不斷地去積累,去磨合,去提高的。把大量的時間耗在一個本該不屬于學習范疇的硬件bug上或者硬件環(huán)境不兼容上,不劃算,因為你以后進公司后,遇到同樣的問題,找硬件工程師,半分鐘幫你搞定。所以說,選擇一個理想的嵌入式學習平臺,尤其對于初學者來說,很重要。

最后,要保持學習的深度,刻意練習。不要讓自己永遠待在學習的舒適區(qū),要學會挑戰(zhàn)自己,不斷去擴展自己知識的邊界,完善自己的知識體系和技能。很多人買了開飯,按照教程,“移植”了u-boot,Linux內(nèi)核,制作了根文件系統(tǒng),然后就陷入了迷茫:接著要干什么?要學習什么?想學習又感覺深入不下去,東一耙子,西一耙子,看看這,看看那,時間不知不覺就過去了。其實,學習嵌入式,基本的嵌入式知識和理論學習還是必要的,很多人推崇邊做邊學,到項目中學習,實踐出真知。當然這也是一個方法,但是也有弊端,那就是學習的不系統(tǒng),很多有心人到后來還是得回來補課,完善自己的知識體系和技能。很多人玩開發(fā)板,燒寫鏡像,玩得賊溜,但是你知道這里面的原理嗎?知道JTAG怎么下載的嗎?Jlink和JTAG有什么區(qū)別?為什么PC上要裝個JTAG軟件而Jlink不用?程序的編譯和鏈接是怎么樣的?為什么內(nèi)核鏡像要下載內(nèi)存的某個地址?換個地址行不行?為什么我們編寫的程序要在有OS的環(huán)境下運行,在ARM開發(fā)板裸機環(huán)境下,你能寫一個跑起來的程序嗎?只有對這些問題深入思考,你才會對嵌入式有一個更深的認識,超越了平臺,一通百通。


80%的嵌入式知識和技能,其實跟硬件平臺無關(guān)

嵌入式開發(fā)需要的知識體系和技能,80%其實跟硬件平臺無沒有無關(guān)系的。比如計算機系統(tǒng)原理、編程技能、程序的編譯鏈接、你對Linux內(nèi)核的理解、設(shè)備模型、驅(qū)動架構(gòu)、項目管理等等。

真正跟硬件平臺有關(guān)的,比如驅(qū)動開發(fā),上面的框架是跟平臺無關(guān)的,下面跟各個硬件平臺的適配部分,可能跟硬件平臺就有關(guān)系了,寄存器配置、開發(fā)板硬件配置等。而對于嵌入式工程師來說,尤其是驅(qū)動開發(fā)工程師,等你工作后,你會發(fā)現(xiàn),跟應(yīng)用開發(fā)相比,真正要寫的代碼量很少,往往只需要改幾行代碼。但是往往這幾行的代碼量,需要你深厚的背景知識:硬件知識、通信協(xié)議、對芯片、開發(fā)平臺資源掌握、對Linux內(nèi)核架構(gòu)、設(shè)備模型、驅(qū)動框架的理解,這些才是嵌入式工程師的核心競爭力。

如果你看到很多廣告還在以開發(fā)板或者平臺作為噱頭,能拿多少工資作為宣傳,這時候你的腦海里要有這種意識,這是一種推廣宣傳。工資多少是由你自己的水平和市場大行情決定的,雖然在面試時HR會對你本身的水平評估有一些誤差,但是要相信,時間會證明你自己的真實價值,不斷提高自己的知識水平和技能才是王道。真正的技術(shù)需要自己花時間慢慢吸收、積累、消化,內(nèi)化為自己的知識體系和技能。外在的心靈雞湯或高煲老鴨湯,只能讓你一時地熱情高漲,產(chǎn)生暫時的錯覺,并不能真正的提高技能。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334048
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式單片機開發(fā)學習路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學習嵌入式單片機開發(fā)不僅能提升個人技能,還能開拓職業(yè)發(fā)展路徑。本文將為你提供一條詳細的嵌入式
    發(fā)表于 02-09 15:42

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南 一、小白入門:搭建 Linux 嵌入式開發(fā)的認知地基? 對于零基礎(chǔ)學習者,首先要打破 “嵌入式開發(fā)高深莫測”的
    發(fā)表于 12-16 10:42

    系統(tǒng)嵌入式學習路線

    的知識太多,太雜,太廣,很多嵌入式初學者陷入嵌入式知識的海洋中,東學一點,西學一點,找不到學習的方向。 我從事嵌入式開發(fā)工作有10年,嵌入式
    發(fā)表于 12-16 07:49

    嵌入式應(yīng)掌握的幾種能力

    、能力。 我覺得牢牢地掌握這些99.99999%的概率都會用得上的嵌入式軟件基礎(chǔ)對找工作才比較有利。其它一些技術(shù)可以再用的時候再去了解、學習。 特別是一些行業(yè)相關(guān)知識,可以入行之后再進行
    發(fā)表于 12-08 06:05

    分享一個嵌入式開發(fā)學習路線

    如果你想要學習嵌入式開發(fā),我建議按照這個學習路線準備: 1. 基礎(chǔ)鋪墊期(1-2個月) 理解嵌入式系統(tǒng)的“硬件基礎(chǔ)”和“編程入門”,能看懂簡單電路,寫出基礎(chǔ)C語言代碼。這一階段的
    發(fā)表于 12-04 11:01

    2025年最佳的嵌入式編程語言有哪些?

    嵌入式系統(tǒng)是現(xiàn)代科技不可或缺的一部分。它們存在于家用電器、汽車、住宅、醫(yī)院、商店等各個領(lǐng)域。它們與我們的社會緊密相連。選擇合適的語言來構(gòu)建嵌入式系統(tǒng)對于成功至關(guān)重要。那么,2025年最佳的嵌入式編程
    的頭像 發(fā)表于 11-14 10:27 ?1416次閱讀
    2025年最佳的<b class='flag-5'>嵌入式</b>編程語言有哪些<b class='flag-5'>呢</b>?

    AI/嵌入式轉(zhuǎn)行,華清遠見虛擬仿真系統(tǒng)幫你避開3個無效學習陷阱,牢記崗位導向邏輯

    轉(zhuǎn)行學AI/嵌入式的人里,80%會陷入“學了沒用、越學越慌”的怪圈——不是因為不夠努力,而是從一開始就踩了“違背學習規(guī)律”的坑。這些誤區(qū)看似是“選課失誤”,本質(zhì)是沒搞懂“轉(zhuǎn)行學習”和“
    的頭像 發(fā)表于 10-17 16:22 ?385次閱讀
    AI/<b class='flag-5'>嵌入式</b>轉(zhuǎn)行,華清遠見虛擬仿真系統(tǒng)幫你避開3個無效<b class='flag-5'>學習</b>陷阱,牢記崗位導向邏輯

    嵌入式 STM32 零基礎(chǔ)入門:「降維打擊學習法」適配零基礎(chǔ),高效進階全棧工程師

    嵌入式學習難嗎?今天就為你揭秘顛覆傳統(tǒng)的——“降維打擊嵌入式學習法”!初學嵌入式會感覺難,為什
    的頭像 發(fā)表于 08-25 15:24 ?757次閱讀
    <b class='flag-5'>嵌入式</b> STM32 零基礎(chǔ)入門:「降維打擊<b class='flag-5'>式</b><b class='flag-5'>學習</b>法」適配零基礎(chǔ),高效進階全棧工程師

    入行嵌入式應(yīng)該怎么準備?

    想入行嵌入式該怎么準備。很能理解大家對于嵌入式的關(guān)注,嵌入式系統(tǒng)是當今科技領(lǐng)域中的重要組成部分,它存在于我們生活的方方面面,各行各業(yè)。智能化時代的到來也讓嵌入式技術(shù)炙手可熱! SO,
    發(fā)表于 08-06 10:34

    【「Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗】+基礎(chǔ)概念學習理解

    軟件包的依賴關(guān)系、編譯選項、配置參數(shù)等。掌握元數(shù)據(jù)的使用方法對于定制和優(yōu)化嵌入式 Linux 系統(tǒng)至關(guān)重要。 BitBake BitBake 是 Yocto 項目的構(gòu)建工具。通過學習這部分內(nèi)容,我深入
    發(fā)表于 08-04 22:29

    嵌入式學習的重點和難點究竟在哪?

    嵌入式開發(fā)領(lǐng)域,硬件原理的抽象性和項目全流程的復雜性一直是初學者面臨的挑戰(zhàn),尤其是像STM32單片機開發(fā)這種軟硬件結(jié)合的方向,初學者很容易被復雜的硬件知識、寄存器配置、PCB設(shè)計這些東西勸退
    的頭像 發(fā)表于 07-31 15:07 ?748次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>學習</b>的重點和難點究竟在哪?

    嵌入式開發(fā)入門指南:從零開始學習嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學者提供一份詳細的嵌入式開發(fā)入門指南,涵蓋學習路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用
    發(fā)表于 05-15 09:29

    嵌入式適合自學嗎?

    嵌入式適合自學嗎?其實并不建議大家自學嵌入式,主要有以下原因。 一)學習難度大 1)知識體系復雜:嵌入式系統(tǒng)是一個復雜的領(lǐng)域,涉及到計算機、電子、通信等多學科知識,需要
    發(fā)表于 04-27 09:54

    請問STM32WBA65如何進行matter的學習

    STM32WBA65如何進行matter的學習?相關(guān)的支持都有哪些?有一個X-CUBE-MATTER,可是這個沒有集成在STM32CubeMX中
    發(fā)表于 04-24 07:22

    入行嵌入式難度大不大?

    ,學習嵌入式會相對容易一些。但需要注意的是,嵌入式開發(fā)不僅需要技術(shù)能力,還需要具備良好的溝通能力和解決問題的能力。 (三)技能提升 對于已經(jīng)在嵌入式領(lǐng)域工作的人來說,技能提升是保持競爭
    發(fā)表于 04-17 10:14