关于嵌入式学习过程

swji   2008-5-21 22:36 楼主
大家好,我刚买了arm9开发板,我主要是想在硬件方面学习,但是苦于无从下手.我以前认真学过51,linux系统基本的命令和编程也会,数字电路模拟电路都学了(不是混学分的那种),c,c++也学了,并且写几年程序了.在这里学习的时候不想继续搞软件,硬件的基础知识我都会,但是这里就是感觉无从下手.各位前辈门能否把以前的经验介绍给我,在这一块应该什么学习?  email: caseshadow@163.com
                                          qq:  342006         本人不胜感激!!

回复评论 (26)

没人理我呵,还真希望有人来指点一下方向了.要不然整糊涂的学.效率会打折扣.本人新建了个群51041024,希望广大爱好者加入.
点赞  2008-5-21 23:05
建议:
硬件懂就行。
高端(指32位)嵌入式系统,硬件永远是平台,真正产生利润的都是软件,尤其是应用软件。
想想PC电脑吧,一台电脑多少钱?一套软件多少钱(别考虑盗版)?

ARM9开始的,一般都会跑Linux/Wince之类的OS了,基本和PC开发没什么差别。你做软件,发挥的余地太大了。视频编解码、视频监控、网络、GPRS等等,空间大着呢。

兴趣和工作是两码事,你可以在业余研究研究硬件,反正硬件拿的钱绝对不会比的上软件,而没有哪个大公司让你软硬都做。
点赞  2008-5-22 11:35
  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自身诸 多优势,吸引了许多开发商的目光,成为嵌入式操作系统的新宠。它的出现无疑为国家发展嵌入式操作系统事业提供了一个极有吸引力的机会。
点赞  2008-5-22 12:43
谢谢各位的提醒,我是电子专业的,也写了几年程序,根据我的情况我还是决定先把电路熟悉然后熟悉bootloader 操作系统移植方面,因为应用软件那方面,感觉学习起来很快.再次谢谢各位.
点赞  2008-5-22 14:33
我给你些相关的视频你可以看看对你的学习应该有帮助的
十问嵌入式

  编程语言选择  http://www.uplooking.com/video/play/5803/
  操作系统的选择  http://www.uplooking.com/video/play/5802/
  汇编语言的作用  http://www.uplooking.com/video/play/5801/
  ARM与单片机  http://www.uplooking.com/video/play/5800/
  ARM概述 开发板  http://www.uplooking.com/video/play/5799/
  ARM概述  http://www.uplooking.com/video/play/5798/
  嵌入式学习  http://www.uplooking.com/video/play/5797/
  嵌入式实例iphone  http://www.uplooking.com/video/play/5796/
  什么是嵌入式  http://www.uplooking.com/video/play/5795/
  嵌入式漫谈2  http://www.uplooking.com/video/play/5794/
  嵌入式漫谈1 http://www.uplooking.com/video/play/5793/
  嵌入式前景http://www.uplooking.com/video/play/5624/


嵌入式最佳入门教程

Linux系统移植 仿真器 ICE等1 http://www.uplooking.com/video/play/6071/
Linux系统移植 仿真器 ICE等2 http://www.uplooking.com/video/play/6070/
AC97声卡裸板驱动开发1 http://www.uplooking.com/video/play/6069/
AC97声卡裸板驱动开发2  http://www.uplooking.com/video/play/6068/
计算机原理 处理器及汇编演示1 http://www.uplooking.com/video/play/6067/
计算机原理 处理器及汇编演示2 http://www.uplooking.com/video/play/6066/
计算机原理 处理器及汇编演示3http://www.uplooking.com/video/play/5245/
嵌入式处理器结构总线种类及嵌入式开发板1 http://www.uplooking.com/video/play/6065/
嵌入式处理器结构总线种类及嵌入式开发板2 http://www.uplooking.com/video/play/6064/
汇编语言 C语言演示 交叉编译 及内存管理1 http://www.uplooking.com/video/play/6063/
汇编语言 C语言演示 交叉编译 及内存管理2 http://www.uplooking.com/video/play/6062/
汇编语言 C语言演示 交叉编译 及内存管理3 http://www.uplooking.com/video/play/6061/
走近嵌入式 嵌入式产品开发过程 http://www.uplooking.com/video/play/6060/
嵌入式处理器种类 http://www.uplooking.com/video/play/6059/
嵌入式开发学习基础 http://www.uplooking.com/video/play/6058/
嵌入式开发概念及嵌入式行业职业划分1 http://www.uplooking.com/video/play/6057/
嵌入式开发概念及嵌入式行业职业划分2 http://www.uplooking.com/video/play/6056/
嵌入式开发概念及嵌入式行业职业划分3 http://www.uplooking.com/video/play/6055/
嵌入式处理器DataSheet及开发板结构1 http://www.uplooking.com/video/play/6054/
嵌入式处理器DataSheet及开发板结构2 http://www.uplooking.com/video/play/6053/
点赞  2010-1-19 15:48
呵呵,楼上的不错。
点赞  2010-1-19 16:46

8楼 hdm 

前面说的有点乱啊,最自然的方法是找了教程,找个师傅。
点赞  2010-1-20 18:10
LZ你已经很强的啦
点赞  2010-1-20 19:44
2楼说的不错
点赞  2010-1-28 16:43
说的不错
点赞  2010-2-4 20:25
能推荐一些学习资料么
点赞  2010-2-22 13:32
引用: 引用 2 楼 shuiyan 的回复:
建议:
硬件懂就行。
高端(指32位)嵌入式系统,硬件永远是平台,真正产生利润的都是软件,尤其是应用软件。
想想PC电脑吧,一台电脑多少钱?一套软件多少钱(别考虑盗版)?

ARM9开始的,一般都会跑Linux/Wince之类的OS了,基本和PC开发没什么差别。你做软件,发挥的余地太大了。视频编解码、视频监控、网络、GPRS等等,空间大着呢。

兴趣和工作是两码事,你可以在业余研究研究硬件,反正硬件拿的钱绝对不会比的上软件,而没有哪个大公司让你软硬都做。

有道理的!
点赞  2010-2-27 11:05
有时候有好的朋友给提建议是好的。
点赞  2010-3-29 18:03
lz能报到一下学习情况更好了,
点赞  2010-3-29 18:21
做硬件要记住一点,立足硬件,做足软件。
点赞  2010-3-29 20:27
路过顶起!哥们加油
点赞  2010-3-30 08:59
哎,刚刚开始干这行,感觉还是什么都不会啊
点赞  2010-4-2 10:02
讲得好
点赞  2010-4-6 13:48
我也想学
点赞  2010-4-21 20:55
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复