新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > 嵌入式学习的正确步骤

嵌入式学习的正确步骤

作者:寂寞的裤衩时间:2013-12-03来源:电子产品世界收藏

  门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。

本文引用地址:http://www.eepw.com.cn/article/198141.htm

具体步骤如下:

  1、《》第二版 谭浩强 ; 《C程序设计语言》第二版 徐宝文译 机械工业出版社
  你能区分开指针数组和数组指针吗?你知道函数指针吗?
  你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?

  2、《数据结构》版  黄国愉、叶乃青编 清华大学出版社
  你能合上书本,用实现书中的单链表、双链表数据结构吗?

  3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著
  此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。

  4、学习,最好能找个前辈带一带。
  你能用51做出一样实际的东西吗?即使它再简单!
  要注意加深对中断的理解。

  5、学习
  (1)、细读《微控制器基础与实战》周立工编写(注:即使你不用书中的开发板)
  (2)、细读相关芯片的原版英文文档。如:arm920TE.pdf  S3C2410_1.2.pdf

  6、学习uCOS!!操作系统。
  (1)、细读《实时操作系统uC/OS-!!》第二版 召贝贝译
  你能把uCOS!!移植到自己的平台上吗?
  (2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序

  7、熟悉环境,学习环境编程,学习交叉编程
  (1)、细读《linux命令大全.pdf》
  (2)、细读《GNU Make 使用手册(中译版).pdf》
  (3)、学习创建交叉编程环境.

  8、学习操作系统。
  (1)、《UNIX环境高级编程》
  (2)、可以到一些好的网站下载一些比较好的书籍
  (3)、细读《linux内核完全注释》
  (4)、细读《understanding the linux kernel 2》
  (5)、利用源代码阅读利器工具"Source Insight"进行真正的linux内核原码刨析
  (6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序

  9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》

  10、复习C++,学习用QT进行图形界面编程
  (1)、细读《QT编程宝典》
  (2)、学会通过查看QT电子文档进行QT GUI实地编程
  (3)、学习交叉编程.(其实就是把命令qmake变为tmake)

  11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)

软件方面最重要的课程包括:

  (1) 嵌入式微处理器结构与应用:

  这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),你必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理 器课程较枯燥,这主要是硬件课程都较抽象的原因。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前还会用到汇编写程序的,尽管用到的机会相对C要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

  [小知识] 目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire (冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核,指令一级是相同的)。而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于SamsungS3C2410的开发板,供最终用户使用或供教学实验。在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米,最终用户(我们这些要采购嵌入式开发板的)则是喂虾米的。Intel早期生产的是低端ARM(Strong ARM,相当于ARM 7),现在转向主要生产高端ARM(即Intel Xscale处理器,属于ARMv5家族,主要用在高端PDA上,如HP和DELL生产的PDA都采用Intel Xscale,价格较高)。目前应用最多的是ARM 7和ARM 9两类处理器。 ARM 7较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式Linux系统统)、Vxworks、uc/os II等实时操作系统,但因处理器不带内存管理单元MMU(无内存分页和地址映射机制,所以不能使用虚拟内存),所以不能跑Windows CE,另外通用Linux中的某些内存管理功能也不能用在ARM 7上。ARM 9大都是一个带MMU功能的高端处理器,可跑WinCE或通用Linux的大多数功能。ARM7和ARM9的区别是在与体系结构上,前者是冯?诺伊曼结 构,后者是哈佛结构——指令和数据总线是分开的。以上是我的一点了解,可能有不对的地方。我们学院有十几套ARM 7开发系统(采用Samsung S3C44b0x开发板,主要用于嵌入式处理器结构、实时操作系统等课程实验用),ARM 9的系统好象也已经到了(采用的芯片我不知道也没去问),还有以前的十几套MPC860开发板(听说价格都很贵,很容易损坏),同学应爱护使用和珍惜这样 的实验机会。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

可控硅相关文章:可控硅工作原理


51单片机相关文章:51单片机教程


c语言相关文章:c语言教程


linux相关文章:linux教程


比较器相关文章:比较器工作原理


c++相关文章:c++教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭