第一篇:嵌入式研发需要学习什么 (转贴)
嵌入式研发需要学习什么(转贴)
来源: 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和协议软件自己写。当然不可能做全,做个子集就可以了。如果能到这个地步,打住吧,该改行去做市场了。做个一、二年市场,你不自己去创个业就太浪费了