嵌入式軟件開發(fā)需要學什么(嵌入式軟件開發(fā)需要學什么課程)
今天給各位分享嵌入式軟件開發(fā)需要學什么的知識,其中也會對嵌入式軟件開發(fā)需要學什么課程進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
本文目錄一覽:
- 1、我是軟件工程專業(yè) 我想搞嵌入式Linux驅動開發(fā) 對于學習路線 要掌握哪些是重點學習知識很困惑 請高人點 謝
- 2、嵌入式軟件工程師需要學什么
- 3、什么叫嵌入式軟件工程師?需要哪些專業(yè)知識?認證?
- 4、嵌入式系統(tǒng)開發(fā)需要學習什么?
- 5、嵌入式軟件開發(fā)要學什么?要學哪些東西
我是軟件工程專業(yè) 我想搞嵌入式Linux驅動開發(fā) 對于學習路線 要掌握哪些是重點學習知識很困惑 請高人點 謝
首先,你需要掌握好C語言,因為嵌入式linux驅動99.9%的代碼都是用C語言來編寫,其次,你需要學習linux基本命令,linux編程,最后linux驅動編程,還有你需要學習關于ARM的處理器知識,對于各個不同的驅動,你也需要看懂一些簡單的硬件原理,比如串口驅動,那你需要學習串口的一些知識,比如lcd驅動,你就得學習LCD的告春碼手冊等等。
關于如何學習嵌入式,我剛才看到一篇很不錯的文章,是一個??粕榻B自己如何自學嵌入式,并找到嵌入式的工作,里面介紹了他的學習方法和學習過程,希望對你有幫助。
??粕鷮W嵌入式到找到工作的前前后后--學習的榜樣
先做個自我介紹,我07年考上一所很爛??泼褶k的學校,學的是生物專業(yè),具體的學校名稱我就不說出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不到希望,我就退學了。
退學后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結著我能做什么。所以輟學后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業(yè)務。我想應聘做技術的,可是處處碰壁。
一次偶然的機會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機分類那邊想找本書學習。后來有個女孩子走過來,問我是不是襪哪讀計算機的,有沒有興趣學習嵌入式,然后給我介紹了一下嵌入式現在的火熱情況,告訴我學嵌入式多么的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家后,我就上網查了下嵌入式,確實是當今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學嵌入式了。于是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章《如何學習嵌入式》,是一個嵌入式高手介紹沒有基礎的朋友怎么自學入門學嵌入式,文章寫的很好,包含了如何學習,該怎么學習。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會我再去培訓。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。
后來我又找到一份很好的視頻,是在嵌入式學習網推出的一份視頻《嵌入式視頻教程--零基礎手把手教你學嵌入式》,里面的教程還不錯,很完整,可以讓我從基礎的開始學起。視頻不便宜啊,但是我也忍了,畢竟買幾本書都要幾百了,何況他們還有半年的技術咨詢和服務,算值了。
==============這里我就不給出他們的網址,如果你也想要嵌入式視頻的話,那就自己去百度搜索:零基礎手把手教你學嵌入式。
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學習了,由于我沒有什么基礎,我就從最簡單的C語言視頻教程學起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學了一個禮拜,接下來我就學了linux的基本命令,我在他們提供linux虛擬機上都有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來我就去學習了人家的視頻的培訓教程,是整套的,和去參加培訓沒有多大的區(qū)別,這一看就是兩個月,學習了ARM的基本原理,學習嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應用到底是怎么做的,但是驅動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。
這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W習。因為我知道幾乎沒有基礎,比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學好這門技術,同時我不懂的就問,這里真森敗的很感謝他們的技術客服對我的任何問題都是耐心的解答,每天都我?guī)缀醵加泻脦讉€問題問他們,然后我就把不懂的問題總結記下來,這樣慢慢積累了一段時間,我發(fā)現自己真的有點入門了。
最后的一個月,我就去看關于實踐部分的內容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準備這方面的知識,也就是學習這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
后來陸續(xù)面試了幾家公司,終于功夫不負有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務是嵌入式linux應用開發(fā),做安防產品的應用的。我想我也比較幸運,經理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
最后祝愿所有想學嵌入式的朋友更早的入門?。?/p>
==========================================
人家可以學好,關鍵是會堅持,我希望你也能和他一樣,好好學習他的方法,加油吧。
嵌入式軟件工程師需要學什么
嵌入式軟件工程師需要學什么?
對嵌入式LINUX操作系統(tǒng)及其上應用軟件開發(fā)目標:
1、 掌握主流嵌入式微處理器的結構與原理(ARM9相對比較容易)。
2、 必須掌握一個嵌入式操作系統(tǒng),如LINUX系統(tǒng),這是一個開源的系統(tǒng)。
3、 必須熟悉嵌入式軟件開發(fā)流程并做一些嵌入式軟件項目。
學習路線:
1、硬件知識
對于硬件部分要求并不高,只要能看懂原理圖,看懂通信協(xié)議,看懂芯片手冊就可以。不求能設計原理圖,更不求能設計電路板。如果能有一些悶襪攜《數字電路》的基礎就更好,沒有也沒關系螞伏。我們主要掌握硬件工作原理。要掌握常見硬件,如ADC,PWM,UART、I2C、SPI等。
2、編程語言學習
學習C語言,推薦C語言的設計者Dennis M. Ritchie和著名計算機科學家Brian W. Kernighan編寫的一部介紹標準C語言及其程序設計方法的著作,《C程序設計語言》。
3、學習LINUX系統(tǒng)編程
首先學會使用了解LINUX,學習LINUX命令,軟件安裝,工具使用。
學習文件IO,多進程多線程,進程間通信,套接字等。推薦《UNIX環(huán)境高級編程》,《TCP/IP詳解 卷一》
4、學習LINUX設備驅動
首先需要學習LINUX內核基礎部分,包括內核配置編譯,內核模塊,并發(fā)控制,字符設備好檔,設備模型,平臺設備等。
在學習常用驅動框架,如INPUT系統(tǒng),幀緩沖驅動,網絡設備驅動,塊設備驅動,音頻設備驅動等,掌握這些驅動框架,了解原理,總結哪些部分需要我們實現?;A部分可以參考《Linux設備驅動 第三版》,該書雖然老,但是原理講的比較透徹,還可以參考。驅動框架可以到網上搜素資料,網上有很多關于驅動框架的介紹,這里就不推薦具體的文章,大家可以自己找一下。
什么叫嵌入式軟件工程師?需要哪些專業(yè)知識?認證?
嵌入式系統(tǒng)設計師考試大綱
一、考試說明
1、考試要求:
(1)掌握科學基礎知識;
(2)掌握嵌入式系統(tǒng)的硬件、軟件知識;
(3)掌握嵌入式系統(tǒng)分析的方法;
(4)掌握嵌入式系統(tǒng)設計與開發(fā)的方法及步驟;
(5)掌握嵌入式系統(tǒng)實施的方法
(6)掌握嵌入式系統(tǒng)運行維護知識;
(7)了解信息化基礎知識、信息技術引用的基礎知識;
(8)了解信息技術標準、安全,以及有關法律的基本知識;
(9)了解嵌入式技術發(fā)展趨勢;
(10)正確閱讀和理解計算機及嵌入式領域的英文資料。
2、通過本考試的合格人員能根據項目管理和工程技術的實際要求,按照系統(tǒng)總體設計規(guī)格進行軟、硬件實際,編寫系統(tǒng)開發(fā)規(guī)格說明書等相應的文檔;組織和指導嵌入式系統(tǒng)靠法實施人員實施硬件電路、編寫和調試程序,并對嵌入式系統(tǒng)硬件設備和程序進行優(yōu)化和集成測試,開發(fā)出符合系統(tǒng)總體設計要求的高質量嵌入式系統(tǒng);具有工程師的實際工作能力和業(yè)務水平。
二、考試范圍
考試科目1:嵌入式系統(tǒng)基礎知識
1.計算機科學基礎
1.1數制及轉換
o 二進制、八進制、十進制和十六進制等常用數制及其相互轉換
1.2數據的表示
o 數的機內表示(原碼、反碼、補碼、移碼,定點和浮點,精度和溢出)
o 字符、漢字、聲音、圖像的編碼方式
o 校驗方法和校驗碼(奇偶驗碼、海明校驗碼、循環(huán)校驗碼)
1.3算術和邏輯運算
o 計算機中的二進制數運算方法
o 邏輯代數的基本運算和邏輯表達式的化簡
1.4計算機系統(tǒng)結構和重要部件的基本工作原理
o CPU和存儲器的組成、性能、基本工作原理
o 常用I/O設備、通信設備的性能,以及基本工作原理
o I/O接口的功能、類型和特點
o 虛擬存儲存儲基本工作原理,多級存儲體系
1.5安全性、可靠性與系統(tǒng)性能評測基礎知識
o 診斷與容錯
o 系統(tǒng)可靠性分析評價
o 計算機系統(tǒng)性能評測方法
2.嵌入式系統(tǒng)硬件知識
2.1數字電路和邏輯電路基礎
2.1.1組合電路和時序電路
2.1.2總線電路與電平轉換電路
2.1.3可編程邏輯器件
2.2嵌入式微處理器基礎
2.2.1嵌入式微處理器體系結構
o 馮.諾伊曼結構與哈佛結構
o CISC與RISC
o 流水線技術
o 信息存儲的字節(jié)順序(大端存儲法和小端存儲法)
2.2.2嵌入式系統(tǒng)處理器的結構和類型
o 常用8位處理器的體系結構和類型
o 常用16位處理器的體系結構特點
o 常用32位處理器的體系結構特點
o 常用DSP處理器的體系結構特點
o 多核處理器的體系結構特點
2.2.3異常
o 同步銀激異常(陷阱、故障、終止)
o 異步異常(中斷)
o 可屏蔽中斷、不可屏蔽中斷
o 中斷優(yōu)先級、中斷嵌套
2.3 嵌入式系統(tǒng)的存儲體系
2.3.1存儲器系統(tǒng)
o 存儲器系統(tǒng)的層次結構
o 高速緩存(Cache)
o 內存管理單元(MMU)
2.3.2 ROM的種類與選型
o 常見ROM的種類
o PROM、EPROM、E2PROM型ROM的鋒肢襪典型特征和不同點
2.3.3 Flash Memory的種類與選型
o Flash Memory的種類
o NOR和NAND型Flash Memory的典型特征和不同點
2.3.4 RAM的種類與選型
o 常見RAM的種類
o SRAM、DRAM、DDRAM、NVRAM的典型特征和不同點
2.3.5 外存
o 常見外存的種類
o 磁盤、光盤、CF、SD等的典型特征和不同點
2.4 嵌入式系統(tǒng)I/O接口
2.4.1 定時器和計數器基本原理與結構
2.4.2 GPIO、PWM接口基本原理與結構
2.4.3 A/饑嫌D、D/A接口基本原理與結構
2.4.4鍵盤、顯示、觸摸屏接口基本與結構
2.4.5嵌入式系統(tǒng)音頻接口
2.5嵌入系統(tǒng)通信及網絡接口
o PCI、USB、串口、紅外、并口、SPI、IIC、PCMCIA的基本原理與結構
o 以太網、CAN、WLAN、藍牙、1394的基本原理與結構
2.6嵌入式系統(tǒng)電源分類及電源原理
2.7電子電路設計
2.7.1電子電路設計基礎知識
o 電子電路設計原理
o 電子電路設計方法及步驟
o 電子電路設計中的可靠知識
2.7.2 PCB設計基礎知識
o PCB設計原理
o PCB設計方法及步驟
o 多層PCB設計的注意事項及布線原則
o PCB設計中的可靠性知識
2.7.3電子電路測試基礎知識
o 電子電路測試原理與方法
o 硬件抗干擾測試
3. 嵌入式系統(tǒng)軟件知識
3.1嵌入式軟件基礎知識
3.1.1嵌入式軟件的分類(系統(tǒng)軟件、支撐軟件、應用軟件)
3.1.2無操作系統(tǒng)支持的嵌入式軟件體系結構(輪詢、中斷、前后臺)
3.1.3有操作系統(tǒng)支持的嵌入式軟件體系結構
3.1.4板極支持包基礎知識(系統(tǒng)初始化、設備驅動程序)
3.1.5嵌入式中間件(GUI、數據庫)
3.2 嵌入式操作系統(tǒng)基礎知識
3.2.1嵌入式操作系統(tǒng)體系結構
o 單體結構、分層結構和微內核結構
3.2.2任務管理
o 多道程序技術
o 進程、線程、任務的概念
o 任務的實現(任務的層次結構、任務控制塊、任務的狀態(tài)及狀態(tài)轉換、任務隊列)
o 任務調度(調度算法的性能指標、可搶占調度、不可搶占調度、先來先服務、短作業(yè)優(yōu)先算法、時間片輪轉算法、優(yōu)先級算法)
o 實時系統(tǒng)及任務調度(RMS、EDF算法)
o 任務間通信(共享內存、消息、管道、信號)
o 同步與互斥(競爭條件、臨界區(qū)、互斥、信號量、死鎖)
3.2.3存儲管理
o Flat存儲管理方式
o 分區(qū)存儲管理(固定分區(qū)、可變分區(qū))
o 地址重定位(邏輯地址、物理地址、地址映射)
o 頁式存儲管理
o 虛擬存儲技術(程序局部性原理、虛擬頁式存儲管理、頁面置換算法、工作集模型)
3.2.4設備管理
o 設備無關性、I/O地址、I/O控制、中斷處理、緩沖技術、假脫機技術)
3.2.5文件系統(tǒng)基礎知識
o 文件和目錄
o 文件的結構和組織
o 存取方法、存取控制
o 常見嵌入式文件系統(tǒng)(FAT、JFFS、YAFFS)
3.2.6操作系統(tǒng)移植基礎知識
3.3 嵌入式系統(tǒng)程序設計
3.3.1嵌入式軟件開發(fā)基礎知識
3.3.2嵌入式程序設計語言
o 匯編、編譯、解釋系統(tǒng)的基礎知識和基本工作原理
o 匯編語言
o 基于過程的語言(過程/函數、參數傳遞、全局變量、遞歸、動態(tài)內存分配、數據類型)
o 面向對象的語言(對象、數據抽象、繼承、多態(tài)、自動內存管理)
o 各類程序設計語言的主要特點和適用情況
3.3.3嵌入式軟件開發(fā)環(huán)境
o 宿主機、目標機
o 編輯器、編譯器、鏈接器、調試器、模擬器
o 常用嵌入式開發(fā)工具(編程器、硬件仿真器、邏輯分析儀、示波器)
o 集成開發(fā)環(huán)境
o 開發(fā)輔助工具
3.3.4嵌入式軟件開發(fā)
o 軟件設計(模塊結構設計、數據結構設計、內存布局、面向對象的分析與設計)
o 嵌入式引導程序的設計、設備驅動程序設計、內核設計、網絡程序設計、應用軟件設計)
o 編碼(編程規(guī)范、代碼審查)
o 測試(測試環(huán)境、測試用例、測試方法、測試工具)
o 下載和運行
3.3.5嵌入式應用軟件移植
4.嵌入式系統(tǒng)的開發(fā)與維護知識
4.1系統(tǒng)開發(fā)過程及其項目管理
o 系統(tǒng)開發(fā)生命周期各階段的目標和任務的劃分方法
o 系統(tǒng)開發(fā)項目掛你基礎知識及其常用管理工具使用方法
o 主要的系統(tǒng)開發(fā)方法
o 系統(tǒng)開發(fā)工具與環(huán)境知識
4.2 系統(tǒng)分析基礎知識
o 系統(tǒng)分析的目的和任務
o 系統(tǒng)分析方法
o 系統(tǒng)規(guī)格說明書的編寫方法
4.3 系統(tǒng)設計知識
o 傳統(tǒng)系統(tǒng)設計方法
o 軟硬件協(xié)同設計方法
4.4 系統(tǒng)實施知識
o 系統(tǒng)架構設計
o 系統(tǒng)詳細設計
o 系統(tǒng)調試技術
o 系統(tǒng)測試
4.5 系統(tǒng)維護知識
o 系統(tǒng)運行管理知識
o 系統(tǒng)維護知識
o 系統(tǒng)評價知識
5.安全性知識
o 安全性基本概念
o 加密與解密機制
6.標準化知識
o 標準化的概念
o 國際標準、國家標準、行業(yè)標準、企業(yè)標準基本知識
o 代碼標準、文件格式標準、安全標準、軟件開發(fā)規(guī)范和文檔標準知識
o 標準化機構
o 嵌入式系統(tǒng)相關標準
7.信息化基礎知識
o 信息化和信息系統(tǒng)基本概念
o 有關的法律、法規(guī)
8.嵌入式技術發(fā)展趨勢
9.計算機專業(yè)英語
o 正確閱讀和理解相關領域的英文資料
考試科目2:嵌入式系統(tǒng)設計應用技術
1.嵌入式系統(tǒng)開發(fā)過程
1.1系統(tǒng)需求分析方法與步驟
1.2系統(tǒng)設計
o 系統(tǒng)硬件配置
o 系統(tǒng)功能組成分配
o 軟硬件功能的分配
o 可行性驗證及設計審查
o 系統(tǒng)規(guī)格
o 周期,成本及工作量估計
o 開發(fā)計劃
1.3軟硬件協(xié)同設計
1.4硬件設計
1.5軟件設計
o 軟件結構
o 設計評審
o 軟件詳細設計
1.6系統(tǒng)測試
o 測試環(huán)境
o 測試計劃(內容、方法、標準、過程、檢驗)
o 硬件測試
o 軟件測試(單元測試、集成測試)
o 軟硬件聯合測試
o 實施測試
1.7系統(tǒng)評估
1.8 軟件維護
2.嵌入式系統(tǒng)硬件設計
2.1嵌入式系統(tǒng)硬件基本結構
2.1.1嵌入式微處理結構與應用
2.1.2 異常及中斷處理技術
2.1.3 DMA技術
2.1.4 多處理系統(tǒng)
o 多處理器系統(tǒng)特點
o 多處理器系統(tǒng)構建技術
2.1.5 總線架構
o 應用系統(tǒng)中的總線配置
2.1.6 內存種類及架構
o 存儲器系統(tǒng)接口設計
2.1.7數字電路和邏輯電路
o 專用集成電路
o 可編程邏輯控制器件
2.2輸入/輸出接口設計
2.2.1 輸入/輸出接口
o 接口信號電平轉換
o 接口驅動電路設計
2.2.2輸入/輸出接口應用技術
o 外圍設備
o 串口通信
o 并口通信
o 模擬接口
o 通信接口設備
o 通信標準和協(xié)議
o 數據傳輸方式
2.3外圍設備接口應用技術
2.3.1 外圍存儲設備
o 存儲卡,記憶棒,IC卡,MMC卡,SD卡
o DVD 、CD-R 、CD-RW
2.3.2外圍輸入/輸出設備
o 鍵盤,鼠標,觸摸屏
o 液晶板、LED、7段數碼管、蜂鳴器
2.3.3電源設計技術
2.4可靠性與安全性設計技術
2.4.1 錯誤檢測與隔離技術
2.4.2 冗余設計
2.4.3 系統(tǒng)恢復設計
2.4.4 診斷技術
2.4.5常用安全標準
2.4.6 抗干擾設計
2.4.7電磁兼容設計
2.4.8系統(tǒng)加密
3.嵌入式系統(tǒng)軟件設計
3.1嵌入式系統(tǒng)軟件結構設計
3.2嵌入式操作系統(tǒng)應用技術
3.2.1 時間管理
o 系統(tǒng)時間
o 時鐘中斷
3.2.2內存管理
o 靜態(tài)內存管理
o 動態(tài)內存管理
3.2.3任務管理和任務間的通信
o 任務間的通信機制
o 信號量
o 郵箱
o 消息隊列
3.2.4異常處理
o 異常處理方法
o 中斷優(yōu)先級處理方法
o 系統(tǒng)調用
3.2.5嵌入式文件系統(tǒng)應用技術
3.2.6嵌入式系統(tǒng)圖形用戶接口(GUI)應用技術
3.2.7嵌入式系統(tǒng)數據庫應用技術
3.3嵌入式軟件設計技術
3.3.1匯編語言設計
o 數據類型
o 匯編語言程序結構
o 匯編語言程序設計及優(yōu)化
o 子程序調用
3.3.2嵌入式C語言設計
o ANSI-C的數據類型
o C程序結構
o C語言程序設計及優(yōu)化
o 程序的編譯與鏈接
3.3.3面向對象程序設計與開發(fā)
o 面向對象的分析與設計方法UML
o 面向對象的編程語言
o 使用C++進行嵌入式系統(tǒng)開發(fā)
o 使用Java進行嵌入式系統(tǒng)開發(fā)
3.4 系統(tǒng)級軟件設計技術
o 嵌入式系統(tǒng)固件與系統(tǒng)初始化設計
o 設備驅動程序設計
o 硬件抽象層、板級支持包設計
o 嵌入式軟件的移植技術
4.嵌入式系統(tǒng)開發(fā)技術
4.1系統(tǒng)開發(fā)環(huán)境
4.1.1開發(fā)工具
o 文本編輯器
o 匯編、編譯和連接程序
o ICE和ICE監(jiān)控器
o 配置管理工具
o 逆工程工具
4.1.2平臺
o 操作系統(tǒng)
o 分布式開發(fā)環(huán)境
4.1.3開發(fā)環(huán)境創(chuàng)建方法及評估
o 開發(fā)工作分析
o 開發(fā)環(huán)境的建立
o 維護、管理、使用開發(fā)環(huán)境的方法
o 開發(fā)環(huán)境的評測
4.2實時系統(tǒng)的分析技術
4.2.1實時系統(tǒng)的分析技術
o 結構化分析方法
o 面向對象分析方法
4.2.2實時系統(tǒng)的設計技術
o 結構化分析方法
o 面向對象分析方法
4.3硬件設計環(huán)境
4.3.1硬件描述語言
o 硬件開發(fā)設計過程
o 硬件描述語言的種類與特點
4.3.2仿真技術
o 邏輯仿真方法
o 邏輯仿真工具
4.3.3大規(guī)模集成電路系統(tǒng)的開發(fā)方法
o ASIC開發(fā)方法
o FPGA設計方法
o IP(intellectual property)
4.4協(xié)同設計
o 軟硬件任務工和切調
o 設計評審
4.5嵌入式系統(tǒng)低功耗設計技術
o 低功耗系統(tǒng)工作機制
o 低功耗系統(tǒng)模型結構
o 低功耗的硬件設計技術
o 低功耗的軟件設計技術
4.6分布式嵌入系統(tǒng)設計
o 分布式系統(tǒng)設計原理
o 分布式系統(tǒng)的通信技術
o 分布式系統(tǒng)設計應用
5.嵌入式系統(tǒng)應用
5.1嵌入式系統(tǒng)在控制領域中的應用
5.2嵌入式系統(tǒng)在手持設備中的應用
5.3嵌入式系統(tǒng)在模式識別中的應用
三、題型舉例
1、選擇題
若嵌入式系統(tǒng)中采用I/O地址統(tǒng)一編址模式,訪問內存單元和I/O設備是通過 (1) 來區(qū)分的。
(1) A.數據總線上輸出的數據
B.不同的地址代碼
C.不同的地址總路線
D.不同的指令
2、問答題
在某個嵌入式操作系統(tǒng)中,任務的狀態(tài)轉換圖(不完整)如下,請閱讀該圖以及下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。
〔說明〕
任務總共有五個狀態(tài):休眠狀態(tài)、就緒狀態(tài)、運行狀態(tài)、中斷服務狀態(tài)和等待狀態(tài),在任何時候,一個任務只會處于其中的某一個狀態(tài)。
〔問題1〕(3分)
在單個CPU的系統(tǒng)中,處于運行狀態(tài)的任務最多有多少個?
〔問題2〕(3分)
對于運行狀態(tài)、就緒狀態(tài)和等待狀態(tài)這間的相互轉換,圖中并沒有畫出來,請補充。用文字處理的形式來進行描述,格式形如"運行狀態(tài)→中斷服務狀態(tài)"。
〔問題3〕6分)
從運行狀態(tài)可以直接變?yōu)榈却隣顟B(tài)嗎?如果不能為什么?如果能什么時候會發(fā)生這種轉換?舉例說明。
〔問題4〕(3分)
從就緒狀態(tài)可以直接變?yōu)榈却隣顟B(tài)嗎?如果不能,為什么?如果能,什么時候會發(fā)生這種轉換?舉例說明。
嵌入式系統(tǒng)開發(fā)需要學習什么?
嵌入式系統(tǒng)開發(fā)就是對于除了電腦之外的所有電子設備上操作系統(tǒng)的開發(fā),開發(fā)對象有手機,掌上電腦,機電系統(tǒng)等。
嵌入式系統(tǒng)開發(fā)流程:
第一步:建立開發(fā)環(huán)境
操作系統(tǒng)一般使用RedhatLinux,選擇定制安裝或全部安裝,通過網絡下載相應的GCC交叉編譯器進行安裝(比如,arm-linux-g、arm-uclibc-g),或者安裝產品廠家提供的相關交叉編譯器;
第二步:配置開發(fā)主機
配置MINICOM,一般的參數為波特率115200Baud/s,數據位8位,停止位為1,9,無奇偶校驗,軟件硬件流控設為無。在Windows下的超級終端的配置也是這樣。MINICOM軟件的作用是作為調試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網絡主要是配置NFS網絡文件系統(tǒng),需要關閉防火墻,簡化嵌入式網絡調試環(huán)境設置過程。
第三步:建立引導裝載程序BOOTLOADER
從網絡上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據具體芯片進行移植修改。有些芯片沒有內置引導裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發(fā)板上FLASH的燒寫程序,可以在網上下載相應的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。如果不能燒寫自己的開發(fā)板,就需要根據自己的具體電路進行源代碼修改。這是讓系統(tǒng)可以正常運行的第一步。如果用戶購買了廠家的仿真器比較容易燒寫FLASH,雖迅穗然無法了解其中的核心技術,但對于需要迅速開發(fā)自己的應用的人來說可以極大提高開發(fā)速度。
第四步:下載已經移植好的Linux操作系統(tǒng)
如MCLiunx、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過,下載后再添加特定硬件的驅動程序,然后進行調試修改,對于帶MMU的CPU可以使用模塊方式調試驅動,而對于MCLiunx這樣的系統(tǒng)只能編譯內核進行調試。
第五步:建立根文件系統(tǒng)
下載使用BUSYBOX軟件進行功能裁減,產生一個最基本的根文件系統(tǒng),再根據自己的應用需要添加其他的程序。由于默認的啟動腳本一般都不會符合應用的需要,所以就要修改根文件系統(tǒng)中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設為只讀,需要使用mkcramfsgenromfs等工具產生燒寫映像文件。
第六步:建立應用程序的FLASH磁盤分區(qū)
一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內核中提供這些文件系統(tǒng)的驅動,有的系統(tǒng)使用一個線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線賣液性FLASH(NAND型)8MB~512MB,有的兩個同時使用,需要根據應用規(guī)劃FLASH的分區(qū)方案。
第七步:開發(fā)應用程序
可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應用不使用根文件系統(tǒng),直接將應用畝配卜程序和內核設計在一起,這有點類似于μC/OS-II的方式。
第八步:燒寫內核
根文件系統(tǒng)和應用程序,發(fā)布產品。
....................................................................................................................................................
................................................................
還有怎么學習嵌入式呢,我剛才看到一篇很不錯的文章,是一個??粕榻B自己如何自學嵌入式,并找到嵌入式的工作,里面介紹了他的學習方法和學習過程,希望對你有幫助。
先做個自我介紹,我07年考上一所很爛??泼褶k的學校,學的是生物專業(yè),具體的學校名稱我就不說出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不到希望,我就退學了。
退學后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結著我能做什么。所以輟學后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業(yè)務。我想應聘做技術的,可是處處碰壁。
一次偶然的機會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機分類那邊想找本書學習。后來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習嵌入式,然后給我介紹了一下嵌入式現在的火熱情況,告訴我學嵌入式多么的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家后,我就上網查了下嵌入式,確實是當今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學嵌入式了。于是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章,是一個嵌入式高手介紹沒有基礎的朋友怎么自學入門學嵌入式,文章寫的很好,包含了如何學習,該怎么學習。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會我再去培訓。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。
后來我又找到一份很好的視頻,是在IT學習聯盟網站推出的一份視頻《零基礎嵌入式就業(yè)班》(喜歡《零基礎嵌入式就業(yè)班》的可以復制sina.lt/qKh粘貼瀏覽器地址欄按回車鍵即打開)。里面的教程還不錯,很完整,可以讓我從基礎的開始學起。視頻比較便宜。
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學習了,由于我沒有什么基礎,我就從最簡單的C語言視頻教程學起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學了一個禮拜,接下來我就學了linux的基本命令,我在他們提供linux虛擬機上都有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來我就去學習了人家的視頻的培訓教程,是整套的,和去參加培訓沒有多大的區(qū)別,這一看就是兩個月,學習了ARM的基本原理,學習嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應用到底是怎么做的,但是驅動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。
這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W習。因為我知道幾乎沒有基礎,比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學好這門技術,然后我就把不懂的問題總結記下來,這樣慢慢積累了一段時間,我發(fā)現自己真的有點入門了。
最后的一個月,我就去看關于實踐部分的內容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準備這方面的知識,也就是學習這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
后來陸續(xù)面試了幾家公司,終于功夫不負有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務是嵌入式linux應用開發(fā),做安防產品的應用的。我想我也比較幸運,經理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
假如你喜歡嵌入式的話就努力學習吧。
嵌入式軟件開發(fā)要學什么?要學哪些東西
嵌入式軟件開發(fā),主要學習Linux驅動開發(fā)和Linux應用開發(fā),C加加qt應用開發(fā)
關于嵌入式軟件開發(fā)需要學什么和嵌入式軟件開發(fā)需要學什么課程的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。