嵌入式开发都需要学习什么

原创 2007年09月16日 21:09:00

刚刚开始学习嵌入式,感觉完全是不着边际,连最基本的概念都没有。涉及到什么知识,该往哪个方向学习。但是在看了这篇文章以后感觉收获不小。

 这是一个初学者常问的问题,也是初学者问嵌入式该如何入门的根源。我感觉有两个方面,偏硬和偏软.我不认为嵌入式开发软件占绝对比重,相反,软硬件都懂,才是嵌入式高手所应该追求的,也是高手的必由之路。

 

  硬件道路:

 

  第一步: 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差很多,所以肯定会遇见不少问题,因此实践的勇气更加重要.有问题就解决问题,无数次的实验,也许是解决问题的必由之路。

 

硬件道路方面,是一个技术提升,整体层次的提升,致力于硬件开发的朋友可以关注下。

 

软件道路方面,作者的三步基本是按照一个嵌入式产品的开发过程来写的,也就是说,一个产品的成型基本是(在产品可行性分析通过后)先编写好bootloader,然后完成操作系统的移植,接着把嵌入式产品需要的驱动程序开发出来,最后进行顶层的应用程序开发。开发过程中遇到问题可能需要回过头来做某些修改,这就另当别论了。

 

但产品的开发过程是开发过程,初学者学习还是应该由易到难的,所以我们推荐按应用-系统-驱动这样的步骤来学习。应用、系统、驱动可以说是嵌入式开发的三个方向,有的朋友工作中可能只接触其中的某一个方向(比如只做应用开发或者只做驱动开发...),这样可以选择某一方向针对性地学习一下,而有的朋友工作中可能需要负责多个方向的开发,那他需要多个方向全部掌握才行。但人都是往高处走的,即便你工作只针对某一方向,但你处于这个行业中,你对其他方向的知识就需要有基本的了解,这种了解对个人职业生涯的发展也会有很大帮助的。

 

嗯,有这样的牛人,他会负责一个嵌入式产品的整个开发过程,软件硬件方面都一个人包办,而且软硬方面的技术实力都很强。关于专才好还是通才好,这里不做讨论哈,但有能力,多学总是不吃亏的。根据自己的学习能力选择自己的发展方向:)

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

嵌入式开发都需要学习什么

http://blog.csdn.net/huoyanxueren/archive/2007/09/16/1787462.aspx 刚刚开始学习嵌入式,感觉完全是不着边际,连最基本的概念都没有。涉及到...

嵌入式开发需要具备的

1、Linux 基础  安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

3G嵌入式开发需要哪些技术

转自:http://wenda.so.com/q/1368700728062696 3G嵌入式开发需要哪些技术 C语言是嵌入式最重要的基础知识,但是掌握了它并不代表你的基础已经很好了,嵌入式学...

嵌入式开发需要的不仅仅是处理器

摘要:嵌入式系统工程师们在花大量时间试图找到最适合应用的完美器件。然而令他们失望的是,现有器件总是缺少其他器件所具备的一项或多项重要功能,因而在设计时总是要权衡利弊而无法实现完美。绝大多数情况下,完美...

[经验分享]我需要参加嵌入式开发培训班么?

如题:Do I need to take an embedded dev training course?(我需要参加嵌入式开发培训班么?) 我的回答是:No.你想知道为什么的话,就请接着向下看.我...

arm嵌入式开发关于寻址、内存重映射和启动之间的关系(ARM学习1)

1、存储器的分类,ARM分为片内和片外存储器,分布于4G的内存地址空间内。片外存储器可通过4个band进行扩展,当片外存储器扩展的是Flash(NOR)时,不能通过STR进行写操作,需要专门的代码进行...

QT学习笔记----搭建Qt4.7.3嵌入式开发环境

QT学习笔记----搭建Qt4.7.3嵌入式开发环境 分类:OMAP-L138(实习笔记)QT学习2011-08-20 09:271192人阅读评论(1)收藏举报 转载注明出处:袁方的技术博客...

嵌入式开发学习笔记(1)认识与规划

"Embedded System","嵌入式系统",几天之前这对我来说还是个模糊的概念,比如,何谓嵌入式,如何嵌入,嵌入怎样的系统,有什么作用? 拿以前的知识储备很难解释清楚这么一个概念,我必须...

如何学习嵌入式开发

一、嵌入式系统的概念 着重理解“嵌入”的概念,主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)