5901|11

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

进入嵌入式开发行业需要什么知识和技能? [复制链接]

我是本科学习机械的,研究生学习电子,学得都不是很好。感觉对硬件掌握较多一点,目前具备的技能有:比较熟练的掌握C语言(能看懂汇编,没编过较大的程序),vhdl语言,用单片机和cpld开发过产品,当然protel还算比较熟练,熟悉vb,了解vc。对arm,linux之类的东西比较陌生,好想挺流行的。不知道我还需要补充什么知识,大家给点建议啊!

最新回复

真正的嵌入式精英是如何修炼成的?        怎样做才能快速的成为嵌入式高手呢? 其实,做工程是没有捷径可走的.听听下面一个大牛人写的!看看有何真经?        先说做硬件:        把你的数字电路教材和模拟电路的教材读熟,暂时先把重点放在数字电路上面,接着把微机原理和接口技术读熟悉了,最好能用汇编写几个简单的程序上机调试一下,这是很重要的。        完成上面的工作大概需要半年,不管你有多么的聪明,除非你以前这个基础就打的不错,否则,还是老老实实花上至少半年的时间!还是那句话,没有捷径可走,如果你相信那些什么“21天学通xx”什么的,那么我告诉你,放弃做工程吧!再说,你这么容易就学会了,别人也能的,你确定能拿到高薪吗? 下一步,就是选择一个DSP(或其它的嵌入式CPU)平台作为你的目标平台,先熟悉它的架构和与外围电路的接口,然后学习她的指令集,也要写一些小程序去跑一下。这个时候,你应该去买一个开发板了,一般的厂家附带会给你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。        完成上面两步,说明你已经入了这个行业的门了,下一步,想成为高手的话,就是自己去设计一些项目了,这个阶段所花的时间每个人都是不同的,要看你的造化(主要是前面的基础是否牢固)了。        再说说软件:        在嵌入式行业,你想做软件开发的话,没别的,那就深入理解C语言,尤其是C的指针,如果你以前学过C,但是没有意识到C相比其它的高级语言的优点的话(不是听别人说的,你自己的体会),你可以按下面步骤来理解C:        1、重新翻一遍C的教材,记住一些常用的C语法,但不要死抠语法;        2、从编译器的角度来理解C;         从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处:         第一个好处是避免一大堆低水平重复出现的编译错误。一名优秀的Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求一次编译通过;        第二个好处是可以提高源码的可读性和效率。规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响程序执行的效率,反过来,控制好递归调用和循环内的if语句才是提高程序效率的关键,要全力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归程序转换成非递归程序,要求还是较高的哦!        3、从硬件的角度来理解C。        完成上面3步,你就是C的高手了,接下来应该去看看软件工程方面的书了,这个我还不太懂,不敢妄言。        另外说说教材的选择:学一门东西,选好你的教材,只要一本就可以了。坚决防止这种情况的出现:去图书馆借很多本书,像抢劫似的,而只是每一本都翻翻,就又还给图书馆了的!注意上面我把汇编语言放在硬件学习的板块里面,是由于汇编跟硬件的关系太紧密了,以至于是先学汇编还是先学习硬件电路和CPU架构成了要分清到底是“先有鸡还是先有蛋”的千年哲学难题了。        嵌入式操作系统一览        其实,嵌入式系统并不是一个新生的事物,从八十年代起,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。这其中涌现了一些著名的嵌入式系统:        Windows CE        Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。        VxWorks        VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API是专有的。采用GNU的编译和调试器。        pSOS        ISI公司已经被WinRiver公司兼并,现在pSOS属于WindRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。        QNX        QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如:POSIX.1b实时扩展。它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。        Palm OS        3Com公司的Palm OS在PDA市场上占有很大的市场份额,它有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。        OS-9        Microwave的OS-9是为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通讯产品、医疗仪器、数字电视/多媒体设备。它提供了很好的安全性和容错性。与其他的嵌入式系统相比,它的灵活性和可升级性非常突出。        LynxOS        Lynx Real-time Systems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。 LynxOS支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征;包括基于调用需求的虚拟内存,一个基于Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。        目前,世面上有很多商业性嵌入式系统都在努力地为自己争取着嵌入式市场的份额。但是,这些专用操作系统均属于商业化产品,价格昂贵;而且,由于它们各自的源代码不公开,使得每个系统上的应用软件与其它系统都无法兼容。并且,由于这种封闭性还导致了商业嵌入式系统在对各种设备的支持方面存在很大的问题,使得对它们的软件移植变得很困难。在嵌入式这个IT产业的新的关键领域,Linux操作系统适时地出现在了国家和国内各嵌入式厂商面前,由于Linux自身诸多优势,吸引了许多开发商的目光,成为嵌入式操作系统的新宠。它的出现无疑为国家发展嵌入式操作系统事业提供了一个极有吸引力的机会。复制代码   详情 回复 发表于 2008-5-16 09:36
点赞 关注

回复
举报

54

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
    事实上,嵌入式系统是比较大的范畴,飞机,坦克,汽车,电视,机顶盒,MP3,各种消费电子,现在可以说是计算机无处不在.各个系统面对的问题也不相同.飞机自动控制系统,需要的是机械论.MP3之类的消费电子需要的是DSP,各类解码算法.
    目前来说,专业化公司开发都是软硬分离的,做软件开发一般需要
     1.熟悉常用CPU体系结构(如ARM,51),能用汇编写程序,一些常用的,简单的算法都能用汇编实现.熟悉C/C++语言是不用说的了
    2.能写简单的操作系统,起码要实现一个调度器.了解一个实时操作系统和嵌入GUI.目前LINUX的广泛应用,了解它显得非常重要
     3.了解计算机组成(不单单指PC),CPU如何工作,各种接口,如USB,RS232,CAN,网络的协议,物理层特性等等,因为嵌入系统经常跟外界环境的交换是非常频繁的.
     以上是写嵌入软件的基础.因为我们的嵌入系统应用的非常广泛,不可能各个领域的知识都懂,我们应该以一个领域为切入点.如果做机顶盒,就学习MPEG2解码,视频回放方面的算法,做IP PHONE就学习SIP协议.事实上做嵌入系统要求信号和系统的基础要求比较强,DSP算法基础比较重要,各方面都经常用.
     做硬件一般来说是做板级设计和可编程器件设计,IC不在讨论范畴,做硬件一般需要
      1.数字和模拟电路基础,懂得常用的A/D,D/A接口电路设计,如温度传感器啊,常用的传感器都要了解.
     2.各种计算机接口的电气特性USB,RS232,CAN等等
      3.熟悉使用一套ECAD工具,熟悉电路仿真,验证,做电路板设计懂混合信号设计,EMC,高速电路方面的知识
      4.了解各种可编程器件结构,懂得vhdl,verilog之类的硬件描述语言,懂用可编程器件实现算法.
    以上只是简陋说说,很多地方说的不全面.
    就你的基础来说,有电子和机械方面的知识,又有编程基础,应该是不需要问这些问题的,不知道你实际水平怎么样.ARM和LINUX是目前比较流行的技术,不懂基本上是不用做的了.问你个问题,给个项目你,你自己能不能做出来,IP PHONE, 国标数字电视机顶盒,GPS导航.自己选一个,说说你怎么做,需要那方面的技术. 欢迎联系大家加我聊天,QQ52921344,多谢.
     
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
信心和勇气!没有信心什么也学不好。勇气,学习电子是要费钱费时的。要有勇气!什么都是学出来的!你是硕士很不错了。很多人是初中生、高中生。学修家电的。一样也干单片机。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
关键接一个中型的项目来练练,光说不练是不行的,在不段的实践中.....不段的提高...
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
    买块开发版,2410就不错
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

6
 
1、基本的C语言基础;
2、基本的数字电路基础;
3、阅读英文Datasheet的能力;
4、基本的软件思想;
5、耐心,和坚持;
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
楼上说得好
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
UP,你好好学习就对了
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
以上都是最基础的,最直接的你需要具体结合一个实验平台来进行学习,如:
Arm + Linux + S3C44B0
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

10
 
这种开发板多少钱?
引用 8 楼 jiazhen 的回复:
以上都是最基础的,最直接的你需要具体结合一个实验平台来进行学习,如:
Arm + Linux + S3C44B0
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 xiangborong 的回复:
这种开发板多少钱?
引用 8 楼 jiazhen 的回复:
以上都是最基础的,最直接的你需要具体结合一个实验平台来进行学习,如:  
Arm + Linux + S3C44B0
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

12
 
  1. 真正的嵌入式精英是如何修炼成的?

  2.        怎样做才能快速的成为嵌入式高手呢? 其实,做工程是没有捷径可走的.听听下面一个大牛人写的!看看有何真经?

  3.        先说做硬件:

  4.        把你的数字电路教材和模拟电路的教材读熟,暂时先把重点放在数字电路上面,接着把微机原理和接口技术读熟悉了,最好能用汇编写几个简单的程序上机调试一下,这是很重要的。


  5.        完成上面的工作大概需要半年,不管你有多么的聪明,除非你以前这个基础就打的不错,否则,还是老老实实花上至少半年的时间!还是那句话,没有捷径可走,如果你相信那些什么“21天学通xx”什么的,那么我告诉你,放弃做工程吧!再说,你这么容易就学会了,别人也能的,你确定能拿到高薪吗?
  6. 下一步,就是选择一个DSP(或其它的嵌入式CPU)平台作为你的目标平台,先熟悉它的架构和与外围电路的接口,然后学习她的指令集,也要写一些小程序去跑一下。这个时候,你应该去买一个开发板了,一般的厂家附带会给你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。


  7.        完成上面两步,说明你已经入了这个行业的门了,下一步,想成为高手的话,就是自己去设计一些项目了,这个阶段所花的时间每个人都是不同的,要看你的造化(主要是前面的基础是否牢固)了。

  8.        再说说软件:

  9.        在嵌入式行业,你想做软件开发的话,没别的,那就深入理解C语言,尤其是C的指针,如果你以前学过C,但是没有意识到C相比其它的高级语言的优点的话(不是听别人说的,你自己的体会),你可以按下面步骤来理解C:

  10.        1、重新翻一遍C的教材,记住一些常用的C语法,但不要死抠语法;

  11.        2、从编译器的角度来理解C;


  12.         从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处:


  13.         第一个好处是避免一大堆低水平重复出现的编译错误。一名优秀的Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求一次编译通过;


  14.        第二个好处是可以提高源码的可读性和效率。规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响程序执行的效率,反过来,控制好递归调用和循环内的if语句才是提高程序效率的关键,要全力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归程序转换成非递归程序,要求还是较高的哦!

  15.        3、从硬件的角度来理解C。


  16.        完成上面3步,你就是C的高手了,接下来应该去看看软件工程方面的书了,这个我还不太懂,不敢妄言。

  17.        另外说说教材的选择:学一门东西,选好你的教材,只要一本就可以了。坚决防止这种情况的出现:去图书馆借很多本书,像抢劫似的,而只是每一本都翻翻,就又还给图书馆了的!注意上面我把汇编语言放在硬件学习的板块里面,是由于汇编跟硬件的关系太紧密了,以至于是先学汇编还是先学习硬件电路和CPU架构成了要分清到底是“先有鸡还是先有蛋”的千年哲学难题了。

  18.        嵌入式操作系统一览

  19.        其实,嵌入式系统并不是一个新生的事物,从八十年代起,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。这其中涌现了一些著名的嵌入式系统:

  20.        Windows CE


  21.        Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。

  22.        VxWorks


  23.        VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API是专有的。采用GNU的编译和调试器。

  24.        pSOS


  25.        ISI公司已经被WinRiver公司兼并,现在pSOS属于WindRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。

  26.        QNX


  27.        QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如:POSIX.1b实时扩展。它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。

  28.        Palm OS


  29.        3Com公司的Palm OS在PDA市场上占有很大的市场份额,它有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。

  30.        OS-9


  31.        Microwave的OS-9是为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通讯产品、医疗仪器、数字电视/多媒体设备。它提供了很好的安全性和容错性。与其他的嵌入式系统相比,它的灵活性和可升级性非常突出。

  32.        LynxOS


  33.        Lynx Real-time Systems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。 LynxOS支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征;包括基于调用需求的虚拟内存,一个基于Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。

  34.        目前,世面上有很多商业性嵌入式系统都在努力地为自己争取着嵌入式市场的份额。但是,这些专用操作系统均属于商业化产品,价格昂贵;而且,由于它们各自的源代码不公开,使得每个系统上的应用软件与其它系统都无法兼容。并且,由于这种封闭性还导致了商业嵌入式系统在对各种设备的支持方面存在很大的问题,使得对它们的软件移植变得很困难。在嵌入式这个IT产业的新的关键领域,Linux操作系统适时地出现在了国家和国内各嵌入式厂商面前,由于Linux自身诸多优势,吸引了许多开发商的目光,成为嵌入式操作系统的新宠。它的出现无疑为国家发展嵌入式操作系统事业提供了一个极有吸引力的机会。
复制代码


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表