吴忠躺衫网络科技有限公司

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

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

3天內不再提示

想學嵌入式開發必須要學哪些知識點

h1654155282.3538 ? 來源:網絡整理 ? 2018-04-04 10:07 ? 次閱讀

嵌入式開發簡介

嵌入式開發就是指在嵌入式操作系統下進行開發,一般常用的系統有WinCE,ucosvxworkslinuxandroid等。另外,用c,c++匯編開發;用高級處理器arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系統也屬于嵌入式的開發。

嵌入式操作系統簡介

嵌入式操作系統(EmbeddedSystem)是指以應用為中心、以計算機技術為基礎,軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。舉例來說,大到油田的集散控制系統和工廠流水線,小到家用VCD機或手機,甚至組成普通PC終端設備的鍵盤、鼠標、硬盤、Modem等均是由嵌入式處理器控制的。

嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set TopBox)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。

從事嵌入式軟件開發的好處

(1)目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。

(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一個客戶要換成一個完全不同的軟件開發平臺,那就苦了。

(3)哪天若想創業,搞自已的產品,那么嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。土木學院有一個叫啟明星的公司開發出一個好象叫“工程e”的掌上PDA(南校區門口有廣告),施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當年有一組同學在學Windows程序設計課程時用VC++設計了一個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。

學嵌入式開發必須要學的知識點

1、C語言

嵌入式Linux工程師的學習需要具備一定的C語言基礎,C語言是嵌入式領域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。

2、Linux基礎

Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI ,編譯器GCC,調試器GDB和 Make 項目管理工具, Shell Makefile腳本編寫等知識,嵌入式開發環境的搭建。

3、Linux系統編程

重點學習標準I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。

4、Linux網絡編程

計算機網絡在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網絡發展、TCP/IP協議、socket編程、TCP網絡編程、UDP網絡編程、Web編程開發等方面入手,全面了解Linux網絡應用程序開發。重點學習網絡編程相關API,熟練掌握TCP協議服務器的編程方法和并發服務器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網絡通信系統的設計,熟悉HTML,Javascript等Web編程技術及實現方法。

5、數據結構與算法

數據結構及算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。此階段的學習要重點理解數據結構與算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序算法等應用及其C語言實現過程。

6、C++ 、QT

C++是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C++的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由于QT具有跨平臺、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基于QT圖形庫的學習使學員可以熟練編寫GUI程序,并移植QT應用程序到Cortex-A8平臺。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、鼠標、鍵盤及繪圖事件處理及文件處理的應用。

7、Cortex A8 、Linux 平臺開發

通過基于ARM Cortex-A8處理s5pv210了解芯片手冊的基本閱讀技巧,掌握s5pv210系統資源、時鐘控制器電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平臺搭建做好準備。Linux平臺包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、制作與原理分析、根文件系統制作以及向內核中添加自己的模塊,并在s5pv210實驗平臺上運行自己制作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基于Linux平臺的開源操作系統,該平臺由操作系統、中間件、用戶界面和應用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件,目前它的應用不再局限于移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品

8、驅動開發

驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的接口,掌握系統對設備的并發操作。熟悉所開發硬件的工作原理,具備ARM硬件接口的基礎知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字符設備、塊設備、網絡設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。

學習嵌入式開發必知的十大知識點

1、離開舒適圈

雖然當了多年的工程師、但自認是系統與軟件技術“通才”的DSP與嵌入式軟件開發顧問公司Jetperch創辦人MattLiberty建議,不斷更新并提升原本擅長的技術雖然很重要,但嵌入式工程師若能擴展自己的知識領域會更有益。走出舒適圈,挑戰自我、去學習原本不熟悉的東西,包括工程以外的知識,例如與客戶、同事之間的互動,將會收獲良多。

2、學習利用搜索引

當了多年工程師、自認是“看得懂系統架構的軟件人”的PTRGroup首席科學家MichaelAnderson認為,不要閉門造車,要善用開放源碼世界的信息,很多常見的設計問題其實透過因特網就能找到同領域菁英貢獻的程序代碼;嵌入式工程師們要走出自己的小世界擁抱社群,與同領域的其他工程師們相互交流、互相幫助,而這也是開放源碼世界的精神。

3、學習那些讓因特網實現的技術

具備多年嵌入式工程師經驗的獨立產品設計與顧問公司AuriumTechnologies總經理KenWada認為,多數嵌入式領域工程師都知道如何撰寫C或C++語言程序,但有時候這樣的技能是不夠的;他建議嵌入式工程師學習因特網有關的技術,對職業生涯發展會有加分效果,例如他目前負責的幾個開發案,都是在嵌入式系統中嵌入虛擬(virtual)的XML,好讓一些小型連網設備能具備“即插即用”的運作模式。

4、熟悉實時操作系統(RTOS)

在工程人才招募機構RandstadTechnologies負責嵌入式產業領域的解決方案經理HenryWintz表示,目前產業界對于熟悉RTOS的工程師需求很高,也愿意提供更高的薪資水平;因此他鼓勵沒有接觸過RTOS的嵌入式工程師從一些較小型的系統著手,累積相關技術經驗。此外他也發現產業界對嵌入式Linux人才有不少需求,主要是因為這種操作系統具備較大的設計彈性。

5、了解最新的處理器

有超過多年嵌入式軟件工程師經驗的Embedded.fm工程師EleciaWhite表示,除了要深入了解C或C++等基本程序語言,有時也要認識一些熱門的新程序語言以因應特殊設計需求,但更重要的是了解最新的處理器技術;處理器才是嵌入式系統的本質。因為我們的系統資源有限,我們需要了解可用的資源有哪些。

6、培養多元化技能與系統觀

擔任近多年工程師、具備許多不同領域技術經驗的技術顧問公司Rebelbot顧問JenCostillo建議,原本從事較小型系統架構(例如MCU)開發的工程師,可以開始去熟悉更大的系統(例如Linux驅動程序),反之亦然。嘗試著去開發手機應用程序、或者是學習后端服務器的相關技術,能讓你開啟完全不同的觀點;他并建議工程師去熟悉開放性硬件,現在市面上有不少現成的開發板,能讓工程師專注于學習獨特算法的開發。

7、要能熟悉開放源碼軟件

擁有多年工程師經驗的FreescaleSemiconductor數字網絡全球軟件開發部門總監RobOshana表示,客戶往往會要求在系統中整合一大堆軟件,因此所有的嵌入式工程師需要熟悉各種軟件;他建議工程師避免只專長單一領域,因為那可能會阻礙你的成長。對嵌入式工程師來說,確保自己對軟硬件技術都很了解,是非常寶貴的價值。

8、建立系統級的工程思維

自詡為高信賴度嵌入式系統專家、擔任了多年工程師的E2V電子系統總工程師AdamTaylor認為,嵌入式工程師擁有系統導向的思維是很重要的,有不少開發案遇到問題,就是因為沒有在開發初期充分考慮基準、驗證策略以及兼容性驗證計劃等項目;此外每個嵌入式工程師都應該具備優良的項目管理技巧,力求準時完成負責的項目。具備能明智因應技術與項目風險的能力,對職業生涯發展會很有幫助。

9、學習無線連結技術

自認是低階嵌入式工程師、有多年工作經驗的iRobot資深首席軟件工程師ChrisSvec建議,嵌入式工程師需要在接下來1~3年學習無線連結技術,特別是Wi-Fi藍牙低功耗(BLE);因為現在的嵌入式設備(至少各種消費性電子都是)與使用者智能手機連結的主要(或唯一)方式,就是透過這些無線技術,雖然Wi-Fi與BLE不一定會是嵌入式系統的標準配備,但熟悉這些技術對嵌入式工程師來說會很實用。

10、要能明確表達自己的想法與意見透過文字或繪圖

Micrum總裁JeanLaBrosse認為,無論是哪一種工程師,都需要能有效表達自己的想法與意見;往往有些菜鳥工程師無法清晰表達自己的想法,因為抓不到重點,而最好的解決方法是練習將之圖形化,例如畫出流程圖。這聽起來好像有點過時,但有時利用各種圖框組合來整理自己的思緒、表達想法會是很有用的,例如iPad的iThoughts應用程序。

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

    關注

    18

    文章

    1035

    瀏覽量

    47716
收藏 人收藏

    評論

    相關推薦

    嵌入式C語言知識點總結

    怎么才能做好嵌入式開發?學好C語言吧!今天就來推薦一篇大佬寫的嵌入式C語言知識點總結。
    發表于 09-27 09:53 ?1203次閱讀

    嵌入式軟件開發需要些什么知識??

    嵌入式軟件開發需要些什么知識??嵌入式很難,不容易學習。以為他需要學習的東西非常多,而且難,所以如果我們知道
    發表于 09-30 09:32

    嵌入式開發教程之程序設計與開發維護

      干貨來了,本文創客學院嵌入式linux培訓講師和學員分享嵌入式程序設計和系統開發與維護的相關知識點。希望對學習嵌入式開發的學員有所幫助。
    發表于 05-26 14:59

    嵌入式開發學習路線 零基礎入門嵌入式技術知識點

    熟悉下列相關的知識點。  嵌入式開發學習路線 零基礎入門嵌入式技術知識點:  1、嵌入式系統的定義和組成:定義、發展概述、組成、實時系統。 
    發表于 06-30 13:45

    嵌入式開發什么

    嵌入式開發哪些,嵌入式可以簡單分為硬件與軟件,然而其中的知識體系卻是異常的龐大,這也是眾多新手望而卻步的一個原因,那究竟要如何才能成為一名嵌入
    發表于 01-18 06:36

    嵌入式開發

    想學嵌入式開發,是不是必須要C語言?
    發表于 07-28 15:00

    嵌入式開發需要掌握哪些知識點

    嵌入式開發需要掌握哪些知識點
    發表于 09-26 08:16

    嵌入式軟件開發需要學習哪些知識點

    本來對于嵌入式開發的要求就比較高,學員選擇嵌入式軟件開發應該也是深思熟慮的結果,那么在這里如果你在掌握了嵌入式軟件開發
    發表于 11-08 08:40

    嵌入式開發入門知識點大合集

    嵌入式開發八大入門知識點
    發表于 11-16 06:33

    嵌入式開發過程中遇到的知識點記錄

    前言本篇主要是對嵌入式開發過程中遇到的一些很小的知識點進行記錄,就像閱讀一篇英語文章,碰見一些不認識的,不熟悉的單詞,語法,查閱資料搞懂記錄下來,這些零碎的東西聚少成多,也是一筆客觀的知識財富。以后
    發表于 12-14 07:37

    嵌入式開發入門_嵌入式開發需要看哪些書籍

    現在嵌入式開發越來越吃香,很多人都想要學習卻不知道要從何下手。本文分析了學習嵌入式軟件開發需要具備哪些基本知識和技能,開發學習的基本步驟,并
    的頭像 發表于 04-04 10:25 ?2.7w次閱讀

    嵌入式知識點總結

    嵌入式知識點總結(arm嵌入式開發led過程)-嵌入式知識點總結? ? ? ? ? ? ? ? ? ??
    發表于 07-30 14:20 ?23次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>知識點</b>總結

    嵌入式】基于ARM的嵌入式Linux開發總結

    前言嵌入式知識點復習一嵌入式知識點復習二 --體系結構嵌入式知識點復習三 --ARM-LINUX
    發表于 10-19 18:32 ?26次下載
    【<b class='flag-5'>嵌入式</b>】基于ARM的<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>開發</b>總結

    嵌入式Linux初學者必須要知道的知識點

    有去了解過嵌入式的學員應該都會知道現在嵌入式是在什么位置上,就發展來說,嵌入式還有很大的發展空間的,所以想要去學習嵌入式的人也會越來越多,下面可以先來了解下
    發表于 11-01 16:58 ?9次下載
    <b class='flag-5'>嵌入式</b>Linux初學者<b class='flag-5'>必須要</b>知道的<b class='flag-5'>知識點</b>

    想學嵌入式開發,沒有基礎能學會嗎?

    嵌入式開發在近年來的IT行業中非常火熱,迎來了很多初學者的學習。生活中的智能硬件流行廣泛,嵌入式開發的前景無疑是非常好的,目前市面上嵌入式開發工程師需求量大,薪資待遇也是水漲船高。那么問題來了,對于初學者來說,
    發表于 11-02 20:21 ?10次下載
    <b class='flag-5'>想學</b><b class='flag-5'>嵌入式開發</b>,沒有基礎能學會嗎?
    威尼斯人娱乐城地址lm0| 百家乐官网平六亿财富网| 龙口市| 饶河县| 最新百家乐官网游戏机| 百家乐官网网站开户| 百家乐官网开户送18元| 玩百家乐官网去哪个平台好 | 状元百家乐官网的玩法技巧和规则 | 网络百家乐官网娱乐| 百家乐官网赢钱秘密| 百家乐官网庄闲比率| 百家乐官网平台开户哪里优惠多| 百家乐官网投注法| 金博士百家乐官网娱乐城| 澳门档百家乐官网的玩法技巧和规则| 真人百家乐官网怎么玩| 金百家乐博彩公司| 百家乐食杂店| 威尼斯人娱乐网赌| 网上大发扑克| 湾仔区| 带有百家乐官网的棋牌游戏有哪些| 百家乐官网筹码价格| 路冲铺面能做生意吗| 百家乐在线娱乐场| 大发888真钱游戏平台| bet365娱乐城| 娱乐城注册送18元| 百家乐官网网址多少| 百家乐官网赌场走势图| 百家乐庄闲机率| 缅甸百家乐的玩法技巧和规则| 台州星空棋牌下载| 百家乐官网关键词| 谁会玩百家乐官网的玩法技巧和规则| 百家乐视频台球游戏| 百家乐庄牌闲牌| 网络足球| 百家乐官网在线娱乐可信吗 | 真人百家乐ea平台|