第一篇:嵌入式研發需要學習什么 (轉貼)
嵌入式研發需要學習什么(轉貼)
來源: ChinaUnix博客作者: ChinaUnix博客發布時間:2007-01-02
嵌入式研發需要學習什么(轉貼)
這是個初學者常問的問題,也是初學者問嵌入式該如何入門的根源。我感覺有兩個方面,偏硬和偏軟.我不認為嵌入式研發
軟件占絕對比重,相反,軟件和硬件都懂,才是嵌入式高手所應該追求的,也是高手的必由之路。硬件道路:
第一步: pcb設計,一般為研發板的電路裁減和擴充,由研發板原理圖為基礎,畫出PCB和封裝庫,設計自己的電路。
第二步: SOPC技術,一般為FPGA,CPLD研發,利用VHDL等硬件描述語言做專用芯片研發,寫出自己的邏輯電路,基于ALTER或XILINUX的FPGA做研發。
第三步: SOC設計,分前端,后端實現,這是硬件設計的核心技術:芯片設計.能做到這步,已不屬于平凡的技術人員。
軟件道路:
第一步:bootloader的編寫,修改, 通過這步熟悉ARM硬件結構,學習ARM匯編語言,閱讀ARM的芯片手冊,感覺就是像操作
51單片機相同操作ARM芯片.這一步最好的兩個參考資料就是:芯片手冊和bootloader源代碼。
第二步:系統移植, 驅動研發, 我只做過linux方向,所以也推薦學習嵌入式linux系統,作為標準體系,他開源而且能夠
獲得大量學習資料.操作系統是整個電腦科學的核心,熟悉 kernel實屬不易,kernel, 驅動研發的學習,沒有什么捷徑,只有多讀代碼,多寫代碼,熟悉系統API..understanding linux kernel , linux device driver 都是不可多得的好書,值得一看。
第三步:應用程式的編寫,各種GUI的移植,qt , minigui都被大量采用,兩種思想都類似,熟悉一種就能夠。
軟件道路中,驅動,系統應該是最深入的部分,不是短時間能夠掌控的,需要有勇氣和耐心。嵌入式研發,軟硬結合,因為硬件條件比PC差很多,所以肯定會遇見不少問題,因此實踐的勇氣更加重要.有問題就解決問題,無數次的實驗,也許是解決問題的必由之路。
大家有什么意見,能夠討論一下!!!!
第二篇:嵌入式研發工程師崗位職責
1.領導本部門實施產品開發、研制工作,制訂開發計劃。
2.執行方案,并進行產品鑒定,生產轉化,技術規范制定工作。
3.積極關注行業發展動態,積累研發素材。
4.總結產品研發經驗,持續改進產品性能。
5.主持產品技術轉化和制造技術交底工作。
6.為產品的投標提供技術支持。
7.為代理商與合作伙伴的產品提供技術支持。
8.根據用戶或公司其他部門的要求進行設計修改和設計改進。
第三篇:學習嵌入式Linux需要具備哪些基礎知識
隨著嵌入式LINUX越來越火,很多同學都打算加入到嵌入式LINUX的學習隊伍中來.給很多人的印象,嵌入式linux很難,技術要求很高,那么,學習嵌入式LINUX開發需要具備哪些基礎知識呢?
下面我就結合我的經驗給大家分析一下,希望能對大家有所幫助.1,C語言.整個嵌入式系統核心部分,除了底層有一小段是匯編程序外,其它基本都是C語言實現的.因此,C語言的重要性就可想可而知了.掌握好C語言是學習嵌入式開發的第一步,也是最重要的一步.2,計算機組成原理,接口技術和操作系統原理.對這些知識理解得越深,你就能越容易理解與掌握嵌入式LINUX系統開發的相關知識和理論.需要說明的是,在學習這些知識時,有一點要注意,不要陷入到太深的理論里面去了出不來.在這一點上,我覺得成都亞嵌的做法非常好,他們建議學員把這些東西當小說來看,從而使枯燥的知識變得有趣, 同時盡力把這些理論轉換成自己的理解和闡述,能做到這一點,就夠了.3,具備一定的硬件知識.這些知識是做底層軟件開發所需要的.在涉及到底層硬件相關的軟件開發(比如驅動開發,bootloader開發等)的時候,我們需要看得懂電路原理圖和時序圖,此外,最好還要會使用示波器和萬用表之類的儀器.很多非電子專業的同學可能不會使用這些儀器, 沒關系,有條件的話可以到成都亞嵌來,成都亞嵌不但有,而且還都是工程級的,值得一提的是,成都亞嵌還可以教你焊接,很過癮的說!很多嵌入式培訓好像都沒有示波器和萬用表, 在這方面,成都亞嵌非常專業,他們不但有,而且還都是工程級的,很爽很專業的那種!基本而言,學習嵌入式LINUX技術開發需要這些基礎知識,說著簡單做著難,大家在嵌入式LINUX學習準備過程中如果有什么問題,也可以加我(QQ:228456590),我可以給大家一些資料,從而少走一些彎路。
第四篇:嵌入式學習路線
語言基礎 1.C 與 C++ A.《c reference》 B.《c++ 編程思想》 C.《effective c++》 D.《more effective c++》 E.《effective c++ stl》 2.軟件設計 A.《UML 2.0 Reference》 B.《設計模式-可復用的面向對象軟件的基礎》 C.《重構》 D.《修改代碼的藝術》 E.《面向模式的軟件體系結構》卷 1,卷 2,卷 3,卷 4,卷 5 3.Linux 開發基礎 A.《鳥哥的 linux 私房菜》 B.《GNU make reference》 C.《Shell 編程》 D.《unix 高級環境編程》 E.《linux kernel development》 F.《深入理解 Linux 內核》 G.《Linux 驅動程序開發》 H.《Unix 網絡編程》 I.《Linux 進程間通信》 4.嵌入式開發基礎 A.《ARM 體系結構》 B.《ARM 程序分析與設計》 C.《ARM 嵌入式系統基礎教材》周立功 D.《嵌入式操作系統μC/OS》 E.《嵌入式 Linux 基礎教材》 F.《嵌入式系統設計》 G.《嵌入式硬件設計》 H.《Qt4 圖形設計與嵌入式系統開發》 I.《嵌入式系統中的實時概念》 J.《實時設計模式》 5.專業選看 A.FPGA 設計 B.《高性能嵌入式計算》 C.數字圖像處理,視頻編解碼基礎 MPEG4,H.264,AVS D.Android,iphone,symbian 開發。
第五篇:嵌入式學習之路
1、必須認真學習一個操作系統
(例如從UC/OSII 到 Linux)
2、必須熟悉TCP/IP網絡協議
(現在的嵌入式產品與網絡的聯系越來越緊密,融入網絡是必然趨勢)
3、必須認真的學習一款CPU的工作原理
(例如現在地球人都知道的ARM)
4、必須親自設計一款嵌入式產品
從方案的選擇到原理圖的繪制,從PCB的繪制到硬件的調試。
學習內容
1.主流嵌入式微處理器的結構與原理 如:ARM PowerPC MIPS Motorola68k 2.
必須掌握一個嵌入式操作系統
如:VxWork uc/os II
uLinux Linux WinCE XPE 3.
必須熟悉嵌入式軟件開發流程 4.
至少做過一個嵌入式軟件項目
如:數字圖象壓縮技術----MEPG編解碼算法和技術 通信協議及編程技術----TC
TCP/IP和無線通信協議、無線局域網通信協議802.11 移動通信CD 網
網絡信息安全技術
書目開列 基礎
〈〈LINUX命令行、編輯器與SHELL編程〉〉 《linux命令大全.pdf》
編程
《C語言》第二版 譚浩強
《GNU Make 使用手冊(中譯版).pdf》 〈〈精通UNIX SHELL 編程〉〉 《LINUX編程24學時教程》 〈〈LINUX應用程序開發〉〉 〈〈LINUX程序設計〉〉 〈〈LINUX C函數庫參考手冊〉〉 <
原理
《數據結構》 〈〈算法導論〉〉 〈〈計算機組成原理〉〉 〈〈操作系統原理〉〉 〈〈離散數學結構〉〉
系統
《嵌入式實時操作系統uC/OS-!》 《linux內核完全注釋》
《understanding the linux kernel 2》 <
<
《Linux設備驅動程序》 〈〈ARM嵌入式LINUX系統構建與驅動開發〉〉
硬件
微機原理、數字電路原理、模擬電路原理、單片微機原理、常見的硬件接口技術 PROTEL,KEIL,AUTOCAD ARM嵌入式系統系列教程—北航 《ARM嵌入式系統基礎教程》 《ARM嵌入式實驗教程
(一)》 《ARM嵌入式實驗教程
(二)》 《ARM嵌入式實驗教程
(三)》 《ARM嵌入式系統學習指導》
《ARM嵌入式系統軟件開發實例
(一)》 《ARM嵌入式系統軟件開發實例
(二)》
網絡
〈〈TCP/IP詳解〉〉 〈〈UNIX網絡編程(第一卷)套接口API〉〉 〈〈UNIX網絡編程(第二卷)進程間通信〉〉 ///////////////////////////////////////////////////// 學習階段
第一階段
1.精通單片機,包括A51匯編語言與C51語言,常用的外圍電路,硬件接口 2.
精通電路分析,模電,數電 3.
精通PROTEL的使用
4.掌握LINUX基礎,包括LINUX命令,SHELL編程,C編程,GNU MAKE的使用 5.
分析UC/OS II的源代碼
用書
《單片機原理與接口技術》 〈〈MCS-51系列單片機實用接口技術〉〉 〈〈電路分析〉〉 〈〈模電〉〉 〈〈數電〉〉 〈〈信號與系統〉〉 〈〈PROTEL〉〉 〈〈LINUX命令行、編輯器與SHELL編程〉〉 《linux命令大全.pdf》
《GNU Make 使用手冊(中譯版).pdf》 〈〈精通UNIX SHELL 編程〉〉 《LINUX編程24學時教程》 〈〈LINUX應用程序開發〉〉 〈〈LINUX程序設計〉〉 〈〈LINUX C函數庫參考手冊〉〉
《嵌入式實時操作系統uC/OS-!》
第二階段
1.精通原理,包括計算機組成原理,操作系統原理,數據結構與算法
2.精通LINUX編程,包括串口通信編程,多進程程序,多線程,任務管理,步,網絡編程,QT GUI編程字符和塊設備驅動程序 建立文件系統等等 3.
再次分析UC/OS II的源代碼
用書
《數據結構》 〈〈算法導論〉〉 〈〈計算機組成原理〉〉 〈〈操作系統原理〉〉 〈〈離散數學結構〉〉 <
第三階段
1.再次深入分析操作系統 2.
分析LINUX內核
用書
〈〈operating system concepts>> 《操作系統設計與實現》
<
通信同 《linux內核完全注釋》
<
1.熟悉網絡 2.
ARM學習
用書
〈〈TCP/IP詳解〉〉 〈〈UNIX網絡編程(第一卷)套接口API〉〉 〈〈UNIX網絡編程(第二卷)進程間通信〉〉 ARM嵌入式系統系列教程—北航
第五階段
1.驅動開發
《Linux設備驅動程序》〈〈ARM嵌入式LINUX系統構建與驅動開發〉〉
軟件
精通51匯編及C51編程,具有獨立大型工程項目硬件底層編程經驗
熟悉Linux操作系統,能進行相關操作熟練使用Linux下的開發環境(如:vi,emacs,gcc,cvs,gdb,kDevelop等)進行網絡,數據庫、多媒體等開發精通嵌入式Linux下的C/C++及匯編語言開發,會使用軟件版本控制軟件,如CVS、VSS等熟悉MicroWindows,QT,MiniGUI等一種Linux圖形界面程序編程機制與技巧有Linux設備驅動編程、嵌入式操作系統的移植、Linux應用程序編寫
系統
熟悉Linux,Vxworks,WinCE,uCOS等至少一種嵌入式操作系統 熟悉嵌入式開發的基本流程
處理器
熟悉ARM7/ARM9處理器,要求在該處理器上編寫過代碼 熟悉SAMSUNG、PHILIPS、ATMEL等主流ARM應用設計 精通ARM ADS調試開發環境等工具
網絡通信
熟悉紅外、無線、以太網、GPRS/CDMA及RS485等多種接口的通訊 了解計算機通訊協議,有TCP/IP等協議編程能力
硬件
熟悉微機原理、數字電路原理、模擬電路原理、單片微機原理 精通常見的硬件接口技術
熟悉Protel,AutoCad等設計工具的使用 補充
要想成為高手中的高手,最好從鉆研如下領域修煉: 1,分析一種RTOS的源代碼--UCOS最容易;2,分析一種通訊協議棧的實現方式--TCP/IP最實用;3,精通一種DSP的開發集成環境--TI CCS2.1最優秀,精華在其內帶的RTOS;4,精通一種單片機的開發集成環境--keil C最經典;5,精通一種MCU的開發集成環境--ADS 1.2最流行;要想成為大師級人物再從如下領域開始修煉: 1,精通一種系統建模語言和工具--Telelogic tau SDL/UML suit最經典;2,精通一種算法仿真工具--Matlab simulink 最便宜;要想檢驗一下自己是否到達了至尊級人物,可以做如下的事:
動手搭建一套紅外或者藍牙通訊原型系統,模擬前端可以用現成的,基帶用DSP,主控用個32BMCU,DSP和協議軟件自己寫。當然不可能做全,做個子集就可以了。如果能到這個地步,打住吧,該改行去做市場了。做個一、二年市場,你不自己去創個業就太浪費了