嵌入式学习路线

上传人:kms****20 文档编号:41011414 上传时间:2018-05-28 格式:DOC 页数:9 大小:36KB
返回 下载 相关 举报
嵌入式学习路线_第1页
第1页 / 共9页
嵌入式学习路线_第2页
第2页 / 共9页
嵌入式学习路线_第3页
第3页 / 共9页
嵌入式学习路线_第4页
第4页 / 共9页
嵌入式学习路线_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《嵌入式学习路线》由会员分享,可在线阅读,更多相关《嵌入式学习路线(9页珍藏版)》请在金锄头文库上搜索。

1、嵌入式学习路线嵌入式学习路线嵌入式学习步骤嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。具体步骤如下:1、 C 语言第二版 谭浩强 ; C 程序设计语言第二版 徐宝文译 机械工业出版社你能区分开指针数组和数组指针吗?你知道函数指针吗?你能区分开定义一个变量时系统给它分配的空间与用 malloc()函数给一个变量分配的空间有什么不一样吗?2、 数据结构C 语言版 黄国愉、叶乃青编 清华大学出版社你能合上书本,用 C 语言实现书中的单链表、双链表数据结构吗?3、 实用 C+程序设计第二板 中国电力出版社 Steve_Oualline著此阶段

2、主要是学习其面向对象的编程思想,加深对 C 语言和数据结构的理解。4、学习单片机,最好能找个前辈带一带。你能用 51 单片机做出一样实际的东西吗?即使它再简单!要注意加深对中断的理解。5、学习 ARM 单片机。(1)、细读ARM 微控制器基础与实战周立工编写(注:即使你不用书中的开发板)(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf6、学习 uCOS!操作系统。(1)、细读嵌入式实时操作系统 uCOS!第二版 召贝贝译你能把 uCOS!移植到自己的平台上吗?(2)、能编写在 uCOS!操作系统环境下运行的针对具体硬件的驱动程序7、熟悉inux

3、环境,学习inux 环境编程,学习交叉编程(1)、细读linux 命令大全.pdf(2)、细读GNU Make 使用手册(中译版).pdf(3)、学习创建交叉编程环境8、学习 Linux 操作系统。 (1)、 UNIX 环境高级编程(2)、细读“joyfire 笔记” ,可在“”网站的好书下载栏目获取(3)、细读linux 内核完全注释(4)、细读understanding the linux kernel 2(5)、利用源代码阅读利器工具Source Insight进行真正的linux 内核原码刨析(6)、最后进行内核移植,并能编写在 linux 操作系统环境下运行的针对具体硬件的驱动程序9

4、、学习 Linux 设备驱动编写。可参考inux 设备驱动程序10、复习 C+,学习用 QT 进行图形界面编程(1)、细读QT 编程宝典(2)、学会通过查看 QT 电子文档进行 QT GUI 实地编程(3)、学习交叉编程 (其实就是把命令 qmake 变为 tmake)11、当然,你也可学习一下 PCB 的制作和设计一个自己的 CPU(即软壳)在嵌入式软件方面最重要的课程包括: (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对 ARM 处理器工作原理和接口技术有充分了解,包括 ARM 的汇编指令系统。若不了解处理器原理,怎么

5、能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率) ,怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM 处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),你必须能看懂其中的内存分布和端口使用等最基本的说明(就像 x86 汇编一样) ,否则怎么设计软件。有些同学觉得嵌入式处理 器课程较枯燥,这主要是硬件课程都较抽象的原因。还有同学对 ARM 汇编不感兴趣,以为嵌入式开发用 C 语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇

6、编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的 C 语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader 等(可能还包括 BSP) 。特别是在对速度有极高要求的场合(如 DSP 处理器的高速图像采集和图像解压缩) ,目前还会用到汇编写程序的,尽管用到的机会相对 C 要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。 小知识 目前嵌入式处理器常见的有ARM

7、、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 内核,指令一级是相同的) 。而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华

8、恒等国内很多著名嵌入式公司都生产基于 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 两类处

9、理器。 ARM 7 较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式 Linux 系统统) 、Vxworks、uc/os II 等实时操作系统,但因处理器不带内存管理单元 MMU(无内存分页和地址映射机制,所以不能使用虚拟内存) ,所以不能跑 Windows CE,另外通用 Linux 中的某些内存管理功能也不能用在 ARM 7 上。ARM 9 大都是一个带 MMU 功能的高端处理器,可跑 WinCE 或通用 Linux 的大多数功能。ARM7 和 ARM9 的区别是在与体系结构上,前者是冯?诺伊曼结 构,后者是哈佛结构指令和数据总线是分开的。以上是我的一点了解,可能有不对的地

10、方。我们学院有十几套 ARM 7 开发系统(采用 Samsung S3C44b0x 开发板,主要用于嵌入式处理器结构、实时操作系统等课程实验用) ,ARM 9的系统好象也已经到了(采用的芯片我不知道也没去问) ,还有以前的十几套 MPC860 开发板(听说价格都很贵,很容易损坏) ,同学应爱护使用和珍惜这样 的实验机会。 (2) 嵌入式操作系统类课程 除了 WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统 Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统,这在嵌入式的所有技术中是最为关键的了。目前最重要的

11、RTOS 主要包括: 第一类、传统的经典 RTOS:最主要的便是 Vxworks 操作系统,以及其 Tornado 开发平台。Vxworks 因出现稍早,实时性很强(据说可在 1ms 内响应外部事件请求) ,并且内核可极微(据说最小可 8K) ,可靠性较高等,所以在北美,Vxworks 占据了嵌入式系统的多半 疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks 莫属。Vxworks 的很多概念和技术都和 Linux 很类似,主要是 C 语言开发。像 Bell- alcatel、Lucent、华为等通信企业在开发产品时,Vxworks 用得很多。但 Vxworks 因价格很高,

12、所以一些小公司或小产品中往往用不 起。目前很多公司都在往嵌入式 Linux转(听说华为目前正在这样转) 。但无论如何,Vxworks 在一段长时间内仍是不可动摇的。与 Vxworks 类似 的稍有名的实时操作系统还有 pSOS、QNX、Nucleus 等 RTOS。 第二类、嵌入式 Linux 操作系统:Linux 的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的 Linux 系统主要有两种: 一种是专为嵌入式设计

13、的已被裁减过的 Linux 系统,最常用的是uClinux(不带 MMU 功能) ,目前占较大应用份额,可在 ARM7 上跑;另一种是跑在 ARM 9 上的,一般是将 Linux2.4.18 内核移植在其上,可使用更多的 Linux 功能(当然 uClinux 更可跑在 ARM 9 上) 。很多人预测,嵌入式 Linux 预计将占嵌入式操作系统的 50%以上份额,非常重要。缺点是熟悉 Linux 的人太少,开发难度稍大。另外,目前我们 能发现很多教材和很多大学都以 ucOS/II 为教学用实时操作系统,这主要是由于 ucOS/II 较简单,且开源,非常适合入门者学习实时操作系统原理,但 由于

14、ucOS/II 功能有限,实用用得较少。况且熟悉了 Linux 开发,不仅在嵌入式领域有用,对开发 Linux 应用软件,对加深操作系统的认识也有帮 助,可谓一举多得。据我所知,目前 Intel、Philip 都在大搞 ARM+LINUX 的嵌入式开发,Fujitum 则是在自己的处理器上大搞 Linux 开发。目前在嵌入式Linux 领域,以下几个方面的人特别难找,一是能将 Linux 移植到某个新型号的开发版上;二是能写 Linux 驱动程序的人;三是熟悉Linux 内核裁减和优化的人。不过 LINUX 有一个硬伤,就是没有WINDOWS 那样的友好方便美观的交互界面,不然微软帝国早就守不

15、住了。 第三类、 Windows CE 嵌入式操作系统:Microsoft 也看准了嵌入式的巨大市场,MS 永远是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在 PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE 目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减 WinCE) 。WinCE 目前主要为 4.2 版(.NET),开发平台主要为 WinCE Platform Builder,有时也用 EVC 环境开发一些较上层的应用,由于 WinCE 开发都是大家熟悉的 VC+环境,所以我院学过 Windows 程序设计课程

16、的同 学都不会有多大难度,这也是 WinCE 容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE 开发难度远低于嵌入式 Linux。对于急于完成,不想拿嵌入式 Linux 冒险的开发场合,WinCE 是最合适了(找嵌入式 Linux 的人可没那么好找的) ,毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点,WinCE 还有两个特殊版本,一个是 MS PocketPC 操作系统专用于 PDA 上(掌上电脑) ,另一个是 MS SmartPhone 操作系统用于智能手机上(带 PDA 功能的手机) ,两者也都属于 WinCE 平台。在 PDA 和手机市场上,除 WinCE 外,著名的 PDA 嵌入式操作系统还有 Palm OS(因出现很早,很有名) 、Symbian 等,但在 WinCE 的强劲冲击下,Palm 和 Symbian 来日还能有多长?同学学过 VC+后再学 WinCE,非常方便自然,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号