Chinaunix首页 | 论坛 | 博客
  • 博客访问: 354938
  • 博文数量: 73
  • 博客积分: 4096
  • 博客等级: 上校
  • 技术积分: 1102
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-21 14:53
文章分类
文章存档

2009年(3)

2008年(70)

我的朋友

分类: LINUX

2008-09-20 11:13:48

学习嵌入式系统的经验【转载】
实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生也未必有条件。所以我想学习嵌入式要从个人的知识背景和现实条件出发,订立合适的阶段目标,在允许的条件下多动手多思考。

    一般情况下硬件设备是比较短缺的,所以可以在软件方面和嵌入式系统开发模式上下功夫。提醒大家一点,嵌入式系统开发设计的内容很多,所以大家不要乱,在了 解嵌入式系统开发的体系结构后,一步一步的下手,最容易上手的是Linux下的C,比如uC/OS II(有开放源代码),虽然可能无法在硬件上仿真,但也不必着急。无论对初学者还是自以为是高手的人来说,编程水平(这可不受硬件条件限制)绝对是没有止 境的。而锻炼编程水平需要的条件只是一台PC而已,条件比较容易具备。有了较高的编程水平(嵌入式主要是C,当然OO的几种语言c++,java是发展趋 势),等到有机会的时候及时补充硬件知识,会很快成为高手的。

    还有,一定记住,学习嵌入式,"要想办法,不要找理由"。当年在dos下用tc编程时的条件,现在回想起来简直就是奇迹。

    我推荐一条发展道路吧,仅供参考,

1、C开发经验
条件:Linux
方法:随便,主要是掌握ANSI C编程(不包括gtk,qt等图形可视化开发)

2、网络、操作系统、体系结构
条件:Linux,各种书,算法、例程。
方法:通过C编程实现简单的网络等知识的算法和过程。

3、嵌入式系统概念
条件:各个嵌入式网站,讨论组,书籍
方法:少提问(尤其是等着天上掉馅饼,这主要是防止增长惰性,也解决不了实际问题),多思考。

4、嵌入式开发实践
条件:各种嵌入式系统开发工具的demo版,包括编译器,仿真器。可以找高手们要,也可以下载。
方 法:这里有两个分支,一个是基于MCU/MDSP的嵌入式系统开发,一个是象Palm OS,WinCE,uC/OS II等RTOS下的应用软件开发。对硬件感兴趣,想成为真正高手的由第一个分支入手,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可 以只由第二个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份不错的工作应该没问题,可以不用进行下面的步骤了,感兴趣可以参考第6条。

5、硬件开发
条件:各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。
方法:这时候该有开发条件了,最起码是51系列,这个比较方便。电路的设计内容较多,不过看起来吓人,实际上比软件要简单的多。只要下功夫,实践会告诉你一切。

6、硬件工程/软件工程/项目管理
条件: 各个芯片详细资料和使用经验,软件工程知识,项目管理知识,培训,大型项目
参与经验方法:已经是高手了,但是学无止境,沾沾自喜于已有的知识是致命的。那个下一步。你该是管理者了。

    抛砖引玉,以上出自我的经验,欢迎各路高手们补充,初学者提问。

    【后记】嵌入式系统,从小的方面来说,大家都做过。一个单片机为核心的小的电子系统,包括了软件和硬件。但是,在很多人的心目中,单片机就是51,软件就 是自己从头用汇编写的监控程序,然后实现自己的功能。事实是这样的吗?单片机==51吗?市场上的单片机何止上千种,从4位到8位到16、32、64位, 功能差的只有控制功能,功能强的运算能力超过一般台式机,我们所作的,是根据自己的需求,熟练程度,资源以及性价比来选择所需。拿我比较熟悉的ARM来 说,移动通讯市场的控制器至少85%采用ARM作为其内核,手持设备以及嵌入式装置的市场份额其至少占60%,但我估计大部分的同学可能还不知道ARM是 个什么,更别说去搞基于ARM的开发了。同样从软件的角度来讲,嵌入式系统的规模越来越大,对可靠性和实时性的要求越来越高,再也不是自己从头做一个监控 程序,利用键盘驱动的时代了,大多数的嵌入式系统都采用了操作系统。这就对开发人员提出了更高的要求,需要对操作系统的原理比较了解。大家也许学过操作系 统,但有几个人去接触过操作系统的源代码呢(当然,也许大家读过Linux的源代码,不过规模较大)。

阅读(1325) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~