嵌入式学习步骤

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

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

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.pdf 6、学习 uCOS!操作系统。 (1)、细读嵌入式实时操作系统 uCOS!第二版 召贝贝译 你能把 uCOS!移植到自己的平台上吗? (2)、能编写在 uCOS!操作系统环境下运行的针对具体硬件的驱动程序 7、熟悉i

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

4、具体硬件的驱动程序 9、学习 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 要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。 (2

7、) 嵌入式操作系统类课程 除了 WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统 Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统,这在嵌入式的所有技术中是最为关键的了。目前最重要的 RTOS 主要包括: 第一类、传统的经典 RTOS:最主要的便是 Vxworks 操作系统,以及其 Tornado 开发平台。Vxworks 因出现稍早,实时性很强(据说可在 1ms 内响应外部事件请求) ,并且内核可极微(据说最小可 8K) ,可靠性较高等,所以在北美,Vxworks 占据了嵌入式系统的多半疆山。特别是在通信

8、设备等实时性要求较高的系统中,几乎非Vxworks 莫属。Vxworks 的很多概念和技术都和 Linux 很类似,主要是 C 语言开发。像 Bell- alcatel、Lucent、华为等通信企业在开发产品时,Vxworks 用得很多。但 Vxworks 因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式 Linux转(听说华为目前正在这样转) 。但无论如何,Vxworks 在一段长时间内仍是不可动摇的。与 Vxworks 类似的稍有名的实时操作系统还有 pSOS、QNX、Nucleus 等 RTOS。 第二类、嵌入式 Linux 操作系统:Linux 的前途除作为服务

9、器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。 目前应用在嵌入式领域的 Linux 系统主要有两种: 一种是专为嵌入式设计的已被裁减过的 Linux 系统,最常用的是 uClinux(不带 MMU 功能) ,目前占较大应用份额,可在 ARM7 上跑;另一种是跑在 ARM 9 上的,一般是将 Linux2.4.18 内核移植在其上,可使用更多的 Linux 功能(当然 uClinux 更可跑在 ARM 9 上) 。很多人预测,嵌入式 Linux 预计将

10、占嵌入式操作系统的 50%以上份额,非常重要。缺点是熟悉 Linux 的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以 ucOS/II 为教学用实时操作系统,这主要是由于 ucOS/II 较简单,且开源,非常适合入门者学习实时操作系统原理,但由于 ucOS/II 功能有限,实用用得较少。况且熟悉了 Linux 开发,不仅在嵌入式领域有用,对开发 Linux 应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前 Intel、Philip 都在大搞 ARM+LINUX 的嵌入式开发,Fujitum 则是在自己的处理器上大搞 Linux 开发。目前在嵌入式Linux

11、 领域,以下几个方面的人特别难找,一是能将 Linux 移植到某个新型号的开发版上;二是能写 Linux 驱动程序的人;三是熟悉Linux 内核裁减和优化的人。不过 LINUX 有一个硬伤,就是没有WINDOWS 那样的友好方便美观 的交互界面,不然微软帝国早就守不住了。第三类、Windows CE 嵌入式操作系统:Microsoft 也看准了嵌入式的巨大市场,MS 永远是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在 PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE 目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减

12、WinCE) 。WinCE 目前主要为 4.2 版(.NET),开发平台主要为 WinCE Platform Builder,有时也用 EVC 环境开发一些较上层的应用,由于 WinCE 开发都是大家熟悉的 VC+环境,所以我院学过 Windows 程序设计课程的同学都不会有多大难度,这也是 WinCE 容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE 开发难度远低于嵌入式 Linux。对于急于完成,不想拿嵌入式 Linux 冒险的开发场合,WinCE 是最合适了(找嵌入式 Linux 的人可没那么好找的) ,毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同

13、的侧重点,WinCE 还有两个特殊版本,一个是 MS PocketPC 操作系统专用于 PDA 上(掌上电脑) ,另一个是 MS SmartPhone 操作系统用于智能手机上(带 PDA 功能的手机) ,两者也都属于 WinCE 平台。在 PDA 和手机市场上,除 WinCE 外,著名的 PDA 嵌入式操作系统还有 Palm OS(因出现很早,很有名) 、Symbian 等,但在 WinCE 的强劲冲击下,Palm 和 Symbian 来日还能有多长?同学学过 VC+后再学 WinCE,非常方便自然,通过学习 WinCE 同样也可了解嵌入式软件的一般开发过程,对 Linux 有惧怕心理的同学也

14、很合适。很显然,嵌入式 Linux 永远不可能替代 WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受 MS 的平台,就像各国政府都在大力推 LINUX已好长时间,但你能看到几个在 PC 机上真正使用 LINUX 的用户?据我观察,目前在嵌入式平台上,LINUX 是叫得最响,但还是 WinCE 实际用得更多.嵌入式 LINUX 可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑.WinCE 和多媒体(如 MPEG 技术)是微软亚洲工程院目前做得较多的项目领域之一,现在社会很需要精通WinCE 的人。现在有 WINCE 的智能手机,金山词霸、WORD、EXCEL、REGED

15、IT 等居然都有 smartphone 版的,PC 上的MP3、DOC 等居然在 download 时都可被自动转换成 smartphone 格式,很爽的。完全可用 Windows CE 自己开发一些需要的程序 download到自己的手机上。现在市面销售 PDA 智能手机火爆,MS 总是财源滚滚。 总结关于嵌入式操作系统类课程,若你觉得自己功底较深且能钻研下去,则可去学嵌入式 Linux;若你觉得自己 VC+功底较好且想短平快地学嵌入式开发,自学 WINCE 是非常好的选择。 (3) 嵌入式开发的相关领域 搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:A

16、、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握 MPEG 编解码算法和技术,如 DVD、MP3、PDA、高精电视、机顶盒等都涉及 MPEG 高速解码问题。 B、通信协议及编程技术:这包括传统的 TCP/IP 协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或 Internet,所以首先应掌握 TCP/IP 协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无线通信协议包括无线局域网通信协议 802.11系列,Bluetooth,以及移动通信(如 GPRS、GSM、CDMA 等) 。 C、网络与信息安全技术:如加密技术,数字证书 CA,以及各种网络安全设备,包括硬件防火墙,入侵检测 IDS,还有防毒墙,IPS 等,中国在这方面还是没有自己优势的,我们陈院长好象正在往这方面发展. D、 DSP 技术:DSP 是 Digital Signal Process 数字

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

最新文档


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

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