<nobr id="eeyoh"><big id="eeyoh"></big></nobr>

  • <button id="eeyoh"><acronym id="eeyoh"><cite id="eeyoh"></cite></acronym></button>

    <dd id="eeyoh"></dd>
    1. <dd id="eeyoh"><center id="eeyoh"></center></dd>

      <th id="eeyoh"></th>
      1. <span id="eeyoh"></span>
        更多課程 選擇中心

        嵌入式培訓
        達內IT學院

        400-111-8989

        嵌入式大神是怎么學習嵌入式的?

        • 發布:嵌入式培訓
        • 來源:嵌入式問答
        • 時間:2017-06-13 15:08

        轉眼間,已經從事嵌入式系統開發有好多年了,今天想與大家分享我對于嵌入式開發的一點心得與體會。

        首先大致說一說我的工作經歷。

        97年畢業后做了兩年的電氣與電子設計與開發,這一時期,我做過電路原理圖的設計和PCB板的設計。從99年開始,我進入了軟件行業。2000年開始做嵌入式開發。在隨后的六年多的時間里,我差不多做過整個操作系統的組件。一開始用的是uC/OSRTOS,熟悉它的人知道,它是一個微內核,提供了任務的調度、Mutex、Semaphore等基本的功能,但是像TCP協議棧、文件系統、堆管理(指malloc/和free)這些功能都沒有,當然也包括沒有相應的硬件驅動模塊,如PCI、串口、I2C、IDE硬盤等。第一次做的這個產品是一個DVR(DigitalVideoRecorder),CPU用的是AMD的SC520,是一塊x86的處理器。因為公司小,所以整個DVR的嵌入式軟件就我一個人做,這對于我來說是一個難得的機會和挑戰。我所做的包括:

        1)熟悉CPU。x86中存在實模式和保護模式,CPU一上電后進入的是實模式,要進入保護模式則需要做一定的設置,最后做一個長跳轉,就能進入保護模式。對于這一處理器的熟悉和了解,使得我對于處理器有一個很好的認識。此外,還得明白什么是芯片組、PCI的原理和配置方法、SDRAM如何配置、IDE的PIO模式是如何工作的,等等。

        2)熟悉uC/OSRTOS并對其進行擴展。理解任務是如何實現的、任務是如何被調度的、Mutex和Semaphore是如何實現的、對處理器進行開關中斷的目的是什么且要注意什么,等等。對于RTOS的擴展則包括實現了一個采用malloc/free進行內存分配的堆管理模塊,這一管理模塊是參照XINU操作系統來實現的;對任務調度部分進行修改以方便中斷服務程序的管理。

        3)將MINUX操作系統的文件系統移植到我們的DVR上。MINUX中采用的就是UNIX中的i-node的方式來管理文件的,這種方式在現在的Linux中也能看到。由于MINUX的文件系統是針對小型存儲設備的,所以對其代碼要進行修改,以適應當時所采用的上G的硬盤。

        4)將XINU中的TCP協議棧移植到DVR上。我記得很清楚的是,當時對于TCP的滑動窗口的調試以及校驗和的調試花了不少時間。

        可以說這一時期的工作,使得我對于操作系統的原理和實現非常的熟悉。還有,我在這一公司使用過了邏輯分析儀去分析總線信號以解決問題,這些都是非常好的經歷,都有助于提升對計算機系統的理解。

        2003年我加入了UTStarcom,因為前一個項目的經歷,當時進這一公司時覺得自己很牛。但很快我發現,嵌入式系統中還有很多是我要學的,我還嫩呢。比如:

        1)第一個挑戰是處理器,當時用的是PowerPC8250。對于處理器,我花了不少時間去讀相關的資料。總的加起來,其手冊超過兩千頁,而且還是英文的。為了使得自己更加的熟悉這塊處理器,我前前后后對這些資料完整的讀了三四遍。

        2)當時采用的是RTEMS操作系統,這一系統就是一個類UNIX的操作系統,早期是美國軍方使用的,后來變成了開源項目。在這一操作系統上的工作經歷讓我一下子意識到了自己的一個問題,那就是:以前的工作只是技術性的不具備系統性。比如,如何將一個操作系統作為一個系統將其設計得更好、驅動程序如何方便增加以及擴展,等等。這一切說到底是自己的設計能力還是不足。我花了很長的時間來研究RTEMS操作系統的實現,這對于提升自己的設計能力有很大的幫助。

        3)對于編譯器和C語言的理解不深。比如什么是ABI(ApplicationBinaryInterface)?后來知道StackFrame和程序的調用棧的管理都與ABI有關系。

        在UTStarcom工作的初期,所有與操作系統相關的問題都是由我來解決的。此外,在我的經理的支持下,我還做過了一個更新版本RTEMS操作系統的移植,當時,UTStarcom的RTEMS操作系統的移植是在新澤西完成的,我不知我是不是UTStarcom在中國第一個做這個操作系統移植的。當時,我在做移植時還碰到了一個與編譯器相關的問題,還找過WindRiver做支持。因為我們用的是WindRiver的調試器,當時懷疑是調試器有問題,最后發現是RTEMS的ToolChain有Bug。UTStarcom的中期,我們將我們的應用程序移植到了VxWorks上,所以后來我對于VxWorks也很熟悉。后來還做過了一個ADSL接入的項目,采用的還是VxWorks以及PNE(PlatformforNetworkEquipment),處理器用的是Intel的XScaleIXP425。2006年5月我離開了UTStarcom。

        應當說,前面兩個公司工作經歷是我很寶貴的財富。一方面完成了從小公司到大公司的轉變,說實在的在進UTStarcom時,還是很有壓力的。什么都是新的,新的行業、新的產品,當然對于我來說是直接工作內容的變化,新的處理器、新的操作系統、等。前兩個公司有一個工作情景我一直很懷念,那就是:我是一手拿示波器,一手拿電路原理圖進行軟件調試的。

        好了說了這么多,現在我想說說我對于嵌入式系統開發的感受和看法。在此,我想先說說什么是嵌入式開發,這一點我看過不少對其的定義。先拋開別人的定義,我想說說我的觀點。有不少工程師的工作是寫運行在RTOS之上的應用程序的,但他(她)其實根本不用接觸硬件相關的知識、不用接觸什么是中斷、也不用考慮任務的優先級,對于這些工作我不認為是嵌入式開發,其實,說到底只是采用了新的一套API(即RTOS的相關函數)進行編程。嵌入式開發我認為至少要與硬件和RTOS打交道,對一操作系統的原理和實現很清楚。從我的角度來看,如果一個寫驅動的人只知道驅動相關的內容,而對于操作系統的機理并不是很清楚,那也不能算是嵌入式系統開發,就是驅動開發。下面是我對于嵌入式系統開發的一些看法。

        1)嵌入式開發對于提升我們的系統知識有很大的幫助,尤其是操作系統的知識。嵌入式系統開發對于我們的知識面要求非常的廣,且要有一定的深度。在做嵌入式開發之前,我是做VisualC++開發的,當我做過嵌入式開發后,我就能明白在Windows桌面上雙擊鼠標時,后臺有什么事情發生了。比如,我能想到后面有一個Loader將文件加載到內存,并最終運行程序。雖然,沒有做過嵌入式開發也能想到這一點,但能看到的深度是不同的。

        2)當我們對于操作系統的原理和實現非常熟悉后,嵌入式系統開發的工作相對簡單。因為,操作系統的概念已經很成熟了,而現在的嵌入式系統就是將現代操作系統的技術運用到嵌入式系統。這里說的簡單,主要是強調其需求相對的穩定、功能相對的單一。軟件設計真正復雜是做應用,應用開發是我們真正能發揮設計能力的地方。

        3)嵌入式系統開發經驗對于提升我們解決問題的能力有及大的幫助。因為我們系統性的知道了軟件是如何被組織在CPU上運行的,這對于我們分析和解決問題很有意義,對于自己解決復雜問題的信心也很有幫助。

        4)具備一定的硬件知識對于嵌入式開發大有裨益。比如,我們要明白什么是片選,什么是3態,什么是I/O,如何看時序圖等等。最好還得會使用相關儀器,比如示波器、邏輯分析儀。

        最后,我想說的是嵌入式系統開發一旦我們達到了一定的水平后,其實很簡單,就是如何去看CPU和相關芯片的Datasheet!

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:嵌入式開發需要學習什么?
        下一篇:嵌入式自學與培訓的優勢有哪些?

        嵌入式學習哪些內容?

        如何才能成為一名嵌入式大咖呢?

        4點實用的嵌入式學習方法介紹

        嵌入式學習路線指導手冊

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        黑龍江省

        吉林省

        河北省

        湖南省

        貴州省

        云南省

        廣西省

        海南省

        中文第一社区天天射干20191024香蕉视频1024香蕉视频操逼逼网 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>