在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何才能學習好嵌入式

Q4MP_gh_c472c21 ? 來源:硬件十萬個為什么 ? 作者:許雪松 ? 2021-10-21 14:35 ? 次閱讀

身邊朋友問我如何學習嵌入式,在這個行業健康的發展。我一直未能做一個系統的回答。這里我想寫篇文章,徹底的回答這個問題。嵌入式,這是個術語。在我看來,嵌入式系統是:為了應用高度定制軟件和硬件的計算機系統,滿足一系列的特定應用需求。國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。IEEE(國際電氣電子工程師協會)對嵌入式系統的定義:“用于控制、監視或者輔助操作機器和設備的裝置”。

原文為:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants。(此段來自百度)

從我個人的理解,到普遍的定義,再到IEEE的權威。可以看到,嵌入式系統首先是計算機系統。我們不能忽略這個問題。既然是計算機系統,那么學習嵌入式,計算機的基本理論知識我們要不要學習呢?比如說,編譯原理、數據結構、操作系統、離散數學、計算機系統體系結構。個人認為,沒學走,就學跑是非常要不得的。

很多人意識不到這點。加之國內很多學校沒有培養嵌入式的專業,沒有相應的人才輸出。很多學習嵌入式的人都是從電子類的專業,自動控制類的專業等等轉過來的。這個轉型也意味著理論上的巨大缺憾。如果要問,排序算法有幾種,恐怕只知道冒泡和希爾,不知道堆排序,快速排序,基數鏈式排序這些算法,更不知道還有內部排序和外部排序之分。查找算法只知道個基本的2分查找。對于樹的查找算法一無所知。怎么說呢?

也許很多從業的程序員,不乏專業水平相當優秀的,認為這些并不重要。我只能說,你命好,做這種具體的工程大于理論的東西。實際上,如果從一個嵌入式的程序員成長為系統設計者,或者更高的技術職位,要從更深的層次看問題。理論起到了非常大的支撐作用。

比如說,設計一個普通的微波控制系統。說實話,這個代碼應該是非常簡單的。但是,作為精細的設計者,不僅僅要考慮需求是否完成。還用從整個程序的空間雜度、時間雜度上去分析,并降低整個代碼的復雜度。從而進一步降低軟件結構、算法實現對處理器的要求,達到對成本的節約。一般來說,成本不光光是BOM成本,還包括人力成本,運營成本,開發成本,維護成本等等。任何軟件系統都要測試,然而一份代碼要怎么才能比較好測試呢?

這個問題并不好回答。我這里先賣個關子,回頭我在另外一篇文章里詳述。尤其是嵌入式代碼,測試方法雖然沿用了PC機的一些做法,但是仍然有許多工程限制。做起來難度頗高。馬克思說過,一切的節約可歸結為時間的節約。代碼結構簡單,空間雜度小。那么也意味著更小的工程量,更短的測試時間,更穩定的產品質量。

如果是個理論性稍微強點的產品,汽車導航系統。地圖的路徑搜索算法。定位位置的搜索,以及地圖的分類加載優化等等,都不是太容易就能做好的。更需要堅實的理論基礎。許多剛出學校的大學生朋友們,沒出校門就把相關的知識還給老師了。其實,我經常問公司新來的同事,設計算法的思路是什么?

這個是從計算機的角度去考慮一個問題的解決辦法。很多新人是計算機畢業的都無法完整的回答我的問題,失望之余,更想說的是:經驗很重要!但是比經驗更重要的是知識,比知識更重要的是方法。在理論的指導下去積累經驗。減少從經驗下獲取知識,減少體驗式學習這種狀態,養成系統的認識分析問題的方法,理論聯系實踐的方法,實踐檢驗真理的方法,經驗必須能被理論解釋的方法。

所以,這第一點建議,就是希望從事嵌入式的朋友能把計算機基礎課程全部系統的學習一遍。

我們還是來看嵌入式的定義,這個定義是相對的概念。什么計算機系統不是“高度定制的軟硬件計算機系統”呢?PC機。不嚴謹的說是這樣。嵌入式在工程上有非常多的特點,相對于PC系統說,如果把PC系統看成一個完全的標準的“大嵌入式系統”,我們用大鵬鳥來形容它。那么,像“蜂鳥”這樣的最小的小鳥,像“麻雀”這樣的常見系統。也就不難理解了。從技術上講,PC系統的知識量,難度都要比一般的嵌入式高出N個數量級。但由于PC系統在計算機歷史上發展得比較早。

因而,其智力投入、完善性、應用的廣泛性重要性是別的系統平臺無法比擬的。然而,正因為發展了這么久,其平臺的封裝性穩定性是非常高的。操作系統級,支撐軟件級,應用軟件級。特別是應用軟件級,一些與平臺無關的軟件,基本上很少涉及操作系統的知識,以及一些內部的原理。如瀏覽器里的Javascript開發,基本上不涉及操作系統的知識,只是受不同的瀏覽器的影響;又如Java,只涉及較少的系統平臺的知識;就算是C/C++語言,開發應用程序,也就是一套API的應用。涉及的操作系統的東西也只是冰山一角。

由此可見,PC平臺的優良封裝,極大的簡化了問題的復雜度,使開發者和應用者能把主要精力放在自己的業務上,提高開發效率。嵌入式領域就沒有這么幸運了。其為應用的高度定制,造成了以效率,應用為優先的特點。封裝層次太多必然對效率有所傷害。同時規模變大,測試變得復雜。開發周期變長。所以嵌入式的層次結構相對于PC系統,邊界沒那么清晰,封裝考慮的問題沒有那么全面。完成同樣的一個工作,需要了解的內容更多,才能做得更好。

如果一定要拿嵌入式和PC系統比,個人覺得,PC系統的開發有時候比嵌入式系統還要難。由于封裝的比較完善,PC開發的門檻比較低,但是做好,做精通,做全面,比嵌入式難多了。嵌入式因為一開始就要了解相當規模的東西,所以入門的門檻變得比較高??v觀這些東西,其實PC系統和嵌入式系統很大一部分都是重疊的。

所以,第二點,我推薦大家讀(俞甲子 / 石凡 / 潘愛民)寫得《程序員的自我修養》。這里多說兩句,首先,嵌入式只是比PC開發要多了解些東西,本質上來講并無區別,這些知識當中有一半是與具體工程相關的東西。也就是說,照著流程做,并無太多的為什么,如果硬要問為什么,其實也就是一些工程上的需求。一些嵌入式應用之間可能略有一些區別,可能有些區別還很大,但大致的流程還是相似的。有個比較好的PC開發功底,了解了這些流程,開發嵌入式應該是沒什么特別的障礙的。

其次,《程序員的自我修養》這本書是針對PC平臺的,書中的許多東西是PC平臺特有的,比如說動態加載等。但理解動態加載也會對Bootloader加載應用程序和操作系統有一個直觀的比較。由于并不是針對嵌入式平臺的(我沒發現有專門講嵌入式的書),所以,很多東西需要自己在嵌入式中去體會。另外書中對一些嵌入式中比較在意的問題描述的并不夠詳細,比如說鏈接腳本還有ABI。PC平臺這些問題被很好的封裝起來了。所以,有些問題在嵌入式領域,還需要進一步深挖。這本書作為嵌入式入門的理解是非常合適的。

嵌入式在工程領域最大的問題是軟硬件同時成熟,出了問題容易踢皮球。這里就很容想到調試。嵌入式的問題定位較為復雜,尤其是牽涉到軟硬件的復雜問題。首先嵌入式的調試手段較為單一。相對于PC平臺,穩定性和可靠性都要打折扣。這里不僅包括調試平臺的問題,也包括一些調試手段對代碼的影響,諸如改變代碼的運行時間,改變了代碼的動態行為(頻度,觸發時差等)。做嵌入式對系統更加要有個全面的認識。這里包括從設計方法思路,設計目標要求,硬件的詳細設計和軟件的詳細設計。了解的越深刻對問題的定位越有幫助。

這里就涉及到一個最大的問題,也就是剛出校門很多學生對自己的憧憬:要軟件硬件都通。這個目標向大家坦白,我也憧憬過。當我現在招聘學生的時候,甚至有些工作經驗的人都說出這個目標。這個目標不是錯,只是計算機軟件和硬件這兩大塊都是非常廣袤的領域,說通,目標的確有點點高了。

所以在這里,我常常給同事的建議是:如果你的專業是電子類的,可以把精力主要的放在硬件上,軟件只作為兼顧,學習一些C語言的基本知識,寫一些小型代碼,不宜把目標放在全職編程上。如果是計算機專業的,我建議把主要精力放在軟件上,學會看懂原理圖,了解一些電路的大致功能就可以了。兩方面往深里面去都是無底洞。全通的話,的確要些大本事的。這里只是我的建議。理由也很簡單,人都是經營自己的長處,規避自己的短處。

曾經有一個朋友問我嵌入式問題,想成為軟硬都通的人。想給自己的職業規劃一下,我大致的問他幾個軟件問題,比如說,算法的設計思路,排序算法的種類,搜索算法的種類,操作系統的本質,互斥多線程等等基本問題,回答毫無頭緒。然而問起電路的知識,KCL,KVL,競爭冒險,運放的分析方法,信號與系統的基本知識,對答如流。

這種人去主攻軟件,是資源的極大的浪費。等你軟件入門了,硬件方面的設計知識也忘得差不多了。然后面臨事業更上一層樓的壓力,軟件需要學習的東西比較多,基礎理論差,學什么都吃力。硬件方面缺乏調試和經驗/的積累,也很難有所作為。若干年后只能做配角,精力的下降,事業上的失意,只能讓自己淪為屌絲。

這里又提到項目經理,技術總監這樣的技術管理職位,不是說你技術好就可以做這個職位了。首先各個公司這兩種職位都是有所區別的,但一般來講都是偏向管理的。既然是管理,不能用別人管你的時候,你得到的體驗再去管別人,要學習管理理論。諸如PMBOK,CMMI,好好看看行業內優秀的工程實踐,好好看看項目目標如何對齊。這些理論知識都是指導我們實踐的最有效的手段。不要寄希望自己是牛人中的牛人,可以發明新的理論。

請大家看看歷史,每個行業都有個開山鼻祖,那時候水平還比較低,然后發展一段時間后有一個將這個行業壯大的牛人。這個并不僅僅是因為那個牛人牛,也有因為這個行業積累到一定的時間,可以出這樣的一個牛人將這個行業進一步壯大。這是事物發展的客觀規律,我們必須要尊重。但在中國,技術人是一類特殊的人群,他們因為技術而傲,對于不懂技術的領導,私下缺乏應有的尊重和誠服。容易造成政令不通。項目經理,總監更應有好的技術,以便得到下屬最大的認同。

所以這第三點,要綜合自己的專業情況,知識背景,合理的選擇自己的職業目標。在嵌入式領域找到自己的發展空間。

最后是一些雜項,我也不分類了。學習嵌入式的方法多種多樣。但最好的辦法,還是求助于計算機,計算機是自己的第一老師,人都是第二位的。不要指望通過牛人,你就可以變成牛人。學習知識,實際上是自己對知識建立理解的過程,不要第一時間去聽大牛的講解。

首先要有自己的理解,即使是錯的,我認錯。再通過大牛的講解進一步的學習,糾正調整自己,可以事半功倍。如果沒有自己的思考,自己也只是個鸚鵡學舌的人,缺乏創造力和獨立面對問題的能力。久而久之是非??膳碌?。

不要想通過幾個月培訓機構的學習,就能像屌絲吃了全能丸,拿到高薪。如果真是這樣,這世界里有時間有錢的人多了,他們為什么不能通過這種辦法變得更有能力,拿到更高的收入?高薪背后意味著很多內涵和外延,這些內涵和外延不僅僅包括點點知識和技術,還有做事的態度方法,面對問題的堅韌……太多了。一句話,在自己想把自己變得更強,首先尋求的是能力的全方面的提升,不光光是點點技術。

所以,面對這種問題一定要踏實。

你要求的薪水高,公司對你的期望也高;每個公司都有特殊的東西,那不是一兩天就能學會的,也不是技術能替代的。自己把調子提得那么高,要么慘淡收場,要么勉強完成任務;要么驚艷四座。自己看著辦。想反,薪水提得不高不低,給自己一點點時間,企業對你的期望低,能做出點成績,反倒容易讓別人刮目相看,利于自己的長期發展。這里還是有許多學問的。自己的人生,一定要謹慎經營。

學習嵌入式一定要勤奮,編程是一種體力+腦力的活。熟能生巧,這是常識。十萬行的編程量是基礎。寫一些復雜的算法,如A*,樹等等算法;再寫一些計算機圖形學方面的算法,以應用軟件為目標,把自己的編程量撐到十萬行。這樣的強度能保證自己對所用的語言有一個非常的熟練程度,也能對計算機的算法設計和數據結構有個深刻的認識,同時對操作系統的API也能略微熟悉。若能堅持這種訓練到達三十萬行。那么就會更加的優秀。可為進一步的行業發展,打下堅實的基礎。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    113

    文章

    16508

    瀏覽量

    179974
  • 嵌入式
    +關注

    關注

    5096

    文章

    19227

    瀏覽量

    308700
  • 計算機
    +關注

    關注

    19

    文章

    7565

    瀏覽量

    88867

原文標題:該如何學習嵌入式?看大佬的職業規劃

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【入門必看】從菜鳥到大牛,嵌入式系統完整學習路線!看這篇就夠了!

    嵌入式系統是許多現代電子設備和智能系統的核心,掌握嵌入式系統,意味著能夠設計和開發更加智能化的產品。本文為所有想進入嵌入式領域的初學者提供一個完整系統學習的路線圖,按照“STM32單片
    的頭像 發表于 02-20 10:53 ?257次閱讀
    【入門必看】從菜鳥到大牛,<b class='flag-5'>嵌入式</b>系統完整<b class='flag-5'>學習</b>路線!看這篇就夠了!

    嵌入式機器學習的應用特性與軟件開發環境

    作者:DigiKey Editor 在許多嵌入式系統中,必須采用嵌入式機器學習(Embedded Machine Learning)技術,這是指將機器學習模型部署在資源受限的設備(如微
    的頭像 發表于 01-25 17:05 ?228次閱讀
    <b class='flag-5'>嵌入式</b>機器<b class='flag-5'>學習</b>的應用特性與軟件開發環境

    哪些專業適合學習嵌入式開發?

    哪些專業適合學習嵌入式開發? 在傳統行業不斷被取代的當下,對于大學生、從業者而言,選擇一個熱門主流的職業方向,是未來發展的關鍵因素之一。 嵌入式作為當下高薪崗位之一,轉行、轉專業的人群已經占據求職
    發表于 01-03 13:44

    新手怎么學嵌入式?

    。但面對這個復雜的領域,很多人可能會感到迷茫,不知從何處入手。別擔心,本文將為你提供一些入門學習嵌入式技術的建議。 新手入門學習嵌入式技術的途徑 1. 了解基礎知識 首先,要對
    發表于 12-12 10:51

    什么是嵌入式人工智能

    。嵌入式人工智能的目標是使嵌入式系統具備智能化的感知、分析和響應能力,從而實現自主決策、自適應學習和智能交互等功能,以提高系統的性能、效率和用戶體驗.
    的頭像 發表于 12-11 09:23 ?474次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    掌握調試技巧是攻克嵌入式學習難點的關鍵

    就來說說嵌入式開發常見問題解決方法。 一、問題復現 穩定復現問題才能正確的對問題進行定位、解決以及驗證。一般來說,越容易復現的問題越容易解決。 1.1 模擬復現條件 有的問題存在于特定的條件下,只需要模擬出現問題的條件即
    的頭像 發表于 11-18 11:10 ?532次閱讀
    掌握調試技巧是攻克<b class='flag-5'>嵌入式</b><b class='flag-5'>學習</b>難點的關鍵

    嵌入式學習建議

    對廣大渴望學習嵌入式系統的學子提出幾點基礎階段的學習建議: ①嵌入式系統軟件硬件密切相關,一定要打好軟硬件基礎。其實,只要找到正確的方法,加上努力,任何理工科學生,甚至非理工科學生,
    發表于 10-22 11:41

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得

    應用,這本書為我構建了一個完整的知識體系,讓我對嵌入式Hypervisor有了全新的認識和把握。 一、基礎架構與原理 在書籍的前幾章,我詳細學習嵌入式Hypervisor的基礎架構和原理。我了解到,
    發表于 10-09 19:11

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備中執行專門任務。嵌入式主板如同是設備的“大腦”,主要功能是根據需要管理和控制設備
    的頭像 發表于 09-30 10:05 ?1106次閱讀

    學習hypervisor嵌入式產品安全設計

    第一部分(第1~2章)介紹Hypervisor基礎,涵蓋虛擬化技術與實現、主流的嵌入式Hypervisor產品,以及基于分離內核的嵌入式Hypervisor等內容。第二部分(第3~12章)介紹嵌入式
    發表于 08-25 09:11

    從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

    ?嵌入式系統是許多現代電子設備和智能系統的核心,掌握嵌入式系統,意味著能夠設計和開發更加智能化的產品。本文為所有想進入嵌入式領域的初學者提供一個完整系統學習的路線圖,按照“STM32單
    的頭像 發表于 07-23 16:11 ?4707次閱讀
    從菜鳥到大牛!<b class='flag-5'>嵌入式</b>完整<b class='flag-5'>學習</b>路線:STM32單片機-RTOS-Linux

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任務。本文將從嵌入式平臺的特點、深度
    的頭像 發表于 07-15 10:03 ?1862次閱讀

    嵌入式開發學習

    我在學校專注于學這一門,感覺特別受用,所以想深入學習一些關于嵌入式的一些知識
    發表于 07-09 08:24

    嵌入式系統怎么學?

    嵌入式系統怎么學? 隨著物聯網、智能制造等新技術的興起,嵌入式系統的應用范圍更加廣泛。包括但不限于工業控制、汽車電子、醫療設備、智能家居、智慧城市、消費電子、通信設備等。學習嵌入式
    發表于 07-02 10:10

    如何提升嵌入式編程能力?

    如何提升嵌入式編程能力? 要提升嵌入式編程的能力,可以從以下幾點學習: 1. 理解硬件:熟悉你正在編程的硬件平臺,包括微控制器、處理器、內存、輸入/輸出設備等基礎理論與應用。 2. 學習
    發表于 06-21 10:01
    主站蜘蛛池模板: 性生大片免费观看无遮挡 | 欧美经典三级春潮烂漫海棠红 | 5x性区m免费毛片视频看看 | 婷婷色爱区综合五月激情韩国 | 午夜剧j | 欧美xxx另类| 欧美一级黄视频 | 久久香蕉精品视频 | 欧美午夜性刺激在线观看免费 | 99免费观看视频 | 夜夜骑日日射 | 91三级在线观看 | www.激情.com | 爱看精品福利视频观看 | 男女激情做爰叫床声视频偷拍 | 亚洲a网站 | 免费黄色三级网站 | 97久久精品国产精品青草 | 黄视频免费在线看 | 国产黄色三级网站 | 国产毛片一区二区三区精品 | 国产亚洲人成a在线v网站 | 国内真实下药迷j在线观看 国内自拍 亚洲系列 欧美系列 | 欧美猛操| 欧美一欧美一区二三区性 | 国产破苞合集 magnet | 中文久草| 色女人天堂 | 69中国xxxxxxxx18 | 黄色三级视频网站 | 一级毛片视屏 | 日韩一级欧美一级一级国产 | 九九51精品国产免费看 | 色日本在线 | 久久青草国产手机看片福利盒子 | 成人亚洲网站 | 亚洲韩国在线一卡二卡 | 午夜影视剧场 | 国产精品午夜自在在线精品 | 2021年最热新版天堂资源中文 | 欧美色图色就是色 |