怎样学习嵌入式系统?

上传人:kms****20 文档编号:40898203 上传时间:2018-05-27 格式:DOC 页数:10 大小:33.50KB
返回 下载 相关 举报
怎样学习嵌入式系统?_第1页
第1页 / 共10页
怎样学习嵌入式系统?_第2页
第2页 / 共10页
怎样学习嵌入式系统?_第3页
第3页 / 共10页
怎样学习嵌入式系统?_第4页
第4页 / 共10页
怎样学习嵌入式系统?_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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

1、怎样学习嵌入式系统?怎样学习嵌入式系统?我大四的,目前也是学嵌入式的,走的是 ARM+LINUX 方向要看你选的方向的,嵌入式处理器可以选 ARM,也可以是 MIPS,PPC等等嵌入的系统(不嵌入系统,可以当纯硬件玩)可以是Linux,Vxworks,winCE 等等所以说方向很多,我的就是 ARM+LINUX 的不管什么方向,C 很重要,C+也很需要,汇编必不可少若只做上层开发,不需要对硬件太了解,但是想当“牛人” ,必须把硬件学好这样可以从底层到上层都有感性理性的认识,以后工作的话,不吃亏总而言之:软的方面-C/C+ 汇编硬的方面-一种嵌入式处理器(如 ARM),外加基本模电数电之类的辅助

2、方面-就是各种开发工具了,用了就知道了,不同处理器对应不同回答完毕,望可以帮助到你 你也可以参考一下“深圳 ITjob”网站的课程大纲,还是很贴近企业需求的。从事嵌入式开发有些年头,将自己理解的一些嵌入式,把自己的感受写出来,另外谢谢自己的感受,给后来者一点经验了!1、什么是嵌入式嵌入式根据字面的意思就会知道个大概,嵌入式就是将一个东西,嵌入到另一个中间,这就会有两层意思,一个是硬件的嵌入式:将一个硬件嵌入到另一个中间,使得原本没有智能的产品变得智能;一个是软件的嵌入式:将一个软件嵌入带另外一个软件里面,一般这个软件是一个应用软件,而对象是操作系统。因此,很多东西都会被称为嵌入式,而不仅仅是

3、ARM 等 32 位平台,还包括 DSP,FPGA,51,甚至 4 位机都是可以的。2、操作系统操作系统有很多,大家天天用的 windows,认为很高深的linux,微小的 uCos,可裁减的 eCos,世界是多彩的,操作系统也一样。有人就会说了,好用,不好,对好不好!这个问题对于真正的行家来说,你就像一个孩童问大人电视剧里面的这个人是好人还是坏人。只有合适的没有什么是最好的!曾经看过 ubuntu 的 wiki 里面说过一句话:不要因为它和你的习惯不一样就说它不好。3、硬件平台目前世界上的芯片公司有很多,因此硬件平台可以选择的有很多,但是近些年来,国人将嵌入式=ARM,这是狭隘的,不利于学生

4、的发展,应该告诉学生,除了 ARM 还有很多很多。不然会发现,学生的眼光会被限制。通过对比学习,他们将会有更多的是以一种批判的精神,吸收各家所长! 平台现在来说比较有前途的是作消费电子类的,因为国家强调扩大内需,内需如何扩大,现在大家基本都是衣食无忧了,剩下的那就是娱乐了。4、学习芯片的选择很多人问我,我们现在学习的是 ARM11,你们的是多少,我会告诉他我们是 ARM9,还有一些 ARM7。其实这已经是足够的了,无论我们学习的哪个平台,学习的关键不是学会这个芯片怎么用,而是学习他的精髓:这类芯片的设计构架,开发流程,然后就是查字典一样的学习它数据手册了。无论在哪里,学习不一定要学习最先进的,

5、因为你没有把握住它的发展历史,和内部原理,一个先进的庞杂的系统对于你来说是很难理解的。如果想成为一个全面的嵌入式开发人员,我的建议是可以遵循这个步骤:基础:嵌入式 C这里的 C 不是大家学习的那个谭浩强的 C,而是嵌入式 C,谭的 C 只是一些肤浅的应用,没有讲到根本,C 的根本就是要把握住指针和一些将来编译的过程!作为一个嵌入式比较底层的工程师,需要了解更多的关于你的程序是如何运行的,你的程序是如何加载的,以及各种资源的调度和使用,而这一切很多时候都要拜托你的C 完成,因为毕竟汇编的难度还是比较大,而且完成的功能有限。第一步:熟悉硬件首先学习单片机,关键是学习总线结构,扩展的一些问题,还有建

6、立起来一些汇编的知识第二步:熟悉高级芯片架构8086(很古老的芯片)但是很有必要了解,可以说他是一切X86(电脑)和 ARM 体系的根本,当将这个根本拿捏住了,你就像武侠小说里面讲的,你掌握了一门功夫的总纲,万变不离其宗!第三步:如果时间容许,可以使用(上面是学习)一个 16 位单片机凌阳的 SPCE061A,这是一个很有意思的芯片,他既有一些单片机的东西在里面,还有一些嵌入式 32 位的东西在里面,真正的使用它不是很难,因为资料还是比较多的,但是从中可以学习到一些基本的嵌入式理念。第四步:嵌入式平台选择开始使用嵌入式平台,目前平台很多,有的还很便宜,作为学生,也许会选择一些价格便宜的,不过建

7、议大家要更注意一个问题:支持的问题。目前基本来说平台的已经都是很多了,有些抄来的板子目前也是满天飞,由于没有研发成本和后期支持,造成成本比较低,同样的原因,让我们遇到问题,只能四处的提问,而往往得不到系统的答案。所以选择平台很重要,有人说,网上全是资料了,但是说句实话,由于嵌入式是一个结合多学科的庞大系统,因此从网上找到很多资料,你会发现我们找到的是一张张拼图的小块,在拼这个大图的时候,很多人在这个过程中失去了信心,离开了嵌入式开发者的行列,那是很可惜的。最好找一个比较资料全面系统的开发平台。当前我认为比较好的适合个人学习的有两个,(也许会有更多,但是我没有接触过,因此只能从这个方面推荐一下)

8、一个是 ARM9 的 2410 平台 QQ 的平台,这个的价格大约在 1200 元左右(包括屏) ,包括了比较全面的资料,这些资料比较详细的描述了一个下载程序,简单开发的过程。另外一个是凌阳的 S+core 内核的嵌入式开发板 SPCE3200,这个最近推出了一个比较适合学生的开发板,价格比 QQ 的贵一点,但是资料比较好,从他们推单片机开始我就比较关注,他们做的资料有一个特点就是比较规范,从注释到程序架构写的比较好,而且他们由于是做大学计划,主要支持高校,因此资料比较细,而且比较系统,唯一可能让大家感觉比较难以跨过的一个坎,就是他们不是 ARM 架构。不过学过这个学习其他的都是比较好接受的,

9、10 年前流行的是MIPS,现在是 ARM,10 年后会不会是 S+Core,谁也说不上。关键是方法。第五步:看完基础,然后实实在在的开发一个或大或小的项目,在这个项目中不仅仅是写出程序,要学会项目的规划,还有程序编写的重构性等软件编写的问题。总之:无论学习什么,都要比较系统的慢慢的做,相信坚持了总是会成功的。 “深圳 ITjob”网站的课程大纲嵌入式 Linux 课程大纲 课程目标 循序渐进地对嵌入式 Linux 系统全面学习,最终达到能够独立完成嵌入式 Linux 应用开发、系统开发、驱动开发等多方面工作。1. 精通 Linux 操作系统使用;精通 Linux 下 C 语言高级编程;2.

10、精通嵌入式 Linux 高级应用开发;内核裁减移植及内核调试技巧; Bootloader 的编写方法;3. 掌握 ARM 处理器平台及其接口硬件开发;4. 精通嵌入式 Linux 下常用接口的驱动开发;5. 了解 WinCE 系统的应用开发及底层开发6. 掌握嵌入式 linux 实际项目案例开发流程第一部分:嵌入式 Linux 软件工程师 C 语言在嵌入式领域起着至关重要的作用。精通 C 语言程序设计可以较容易地进入Linux、WinCE、Sybian、Android、Vxworks 等嵌入式操作系统下的软件开发工作。本部分旨在掌握 C 语言基本知识、语法基础,熟悉Linux 操作系统的使用,

11、并熟练掌握嵌入式 Linux 的开发环境,为将来的编程工作打基础。序号 课程名称课程内容掌握要求1Linux 操作系统使用Linux 操作系统的概念和安装方法,详细介绍 Linux 下的基本命令、管理配置和编辑器(VI,GCC,GDB, Make)精通2嵌入式 Linux C 语言高级编程C 语言的高级编程知识,包括函数与程序结构、数组、 、指针常用算法、库函数的使用等知识;数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等。精通3C+面向对象编程掌握面向对象编程的基本思想,以及 C+语言的基础内容,为涉及C+的应用准备。掌握4嵌入式 Linux 项目开发流程嵌入式 Linux 开发环境

12、搭建和项目开发流程,包括嵌入式产品需求分析和选型、硬件平台、移植、启动代码、驱动开发、系统部署等整个过程。掌握第二部分:嵌入式 Linux 系统工程师 嵌入式 Linux 应用开发和系统开发是嵌入式 Linux 中最重要的一部分,也是企业人才需求最大的一部分。学习的主要目标是精通嵌入式 Linux 下的程序设计,熟悉嵌入式 Linux 开发流程,强化学员对 Linux 应用开发的理解和编码调试的能力,同时掌握bootloader 和 kernel 的移植技能,了解 ARM 体系结构和编程,具备 ARM 硬件接口的基础知识,并了解 Linux 内核开发相关内容,初步掌握 Linux 下的驱动程序

13、开发方法。序号 课程名称课程内容掌握要求5嵌入式 Linux 高级应用编程嵌入式 Linux 下的程序设计,嵌入式 Linux 开发环境,包括系统编程、文件 I/O、多进程和多线程、网络编程、GUI 图形界面编程、数据库。精通6ARM 处理器编程ARM 处理器的基础知识,包括 ARM 处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程等。掌握7ARM 硬件接口开发ARM 的常用接口开发及硬件电路设计基础(包括 IO、串口、看门狗、实时时钟、SPI、IIC、扫描键盘、FLASH 操作等) ,为设备驱动打好基础。了解8嵌入式 Linux 系统开发嵌入式 Linux 底层开发基础内容,

14、在裸设备上如何从零开始搭建嵌入式 Linux 运行环境,内容包括内核裁减、内核移植、交叉编译、内核调试、启动程序 Bootloader 编写、根文件系统制作和集成部署Linux 系统等整个流程。精通9嵌入式 Linux 内核开发驱动开发的基础课程,内核细节, Linux 相关运行机理,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通信、文件系统和 I/O 设备管理等方面的内容。了解10嵌入式 Linux 驱动开发基础Linux 驱动开发相关概念及开发流程,重点学习字符设备驱动开发,包括串口、I/O、看门狗、实时时钟、SPI、IIC、

15、扫描键盘、A/D 转换、定时器等接口的驱动开发。掌握第三部分:嵌入式 Linux 驱动工程师 驱动开发是嵌入式 Linux 开发难度最高的内容,也是目前嵌入式行业最紧缺的人才之一。有了前面课程知识的铺垫,本课程将重点讲解嵌入式 Linux 下常用接口驱动的编写方法。一个合格的嵌入式工程师需要深入掌握 Linux 驱动程序开发技巧,能够熟练的移植或编写设备驱动。本部分重点在各类驱动的移植和编写技术训练,还介绍了一个比较重要的嵌入式操作系统:Windows CE。 最后,从零开始完成一个真实项目的设计,使学员在巩固所学内容的同时,迅速积累项目设计经验,达到并超过企业用人需求,同时也发现并弥补自己的

16、不足。目前提供的真实项目包括:远程视频监控系统、汽车导航 GPS、个人娱乐系统 PMP、无线移动电视,学员可完成其中一个项目。序号课程名称课程内容掌握要求11嵌入式 Linux 驱动高级开发1、Flash 驱动:掌握在 Linux 环境下驱动常见 flash 存储器(nor flash、nand flash) ;2、块设备驱动:掌握块设备驱动的原理、学会 ramdisk 的编写;3、网卡驱动:掌握网卡设备的编写原理、能够熟练移植各种网卡驱动。在对网卡硬件寄存器熟悉的基础上,有能力为其编写出完善的网卡驱动;4、sd 卡驱动:掌握 sdio 接口操作,熟悉 sd 卡驱动驱动的原理;5、液晶驱动:掌握 frambuffer 驱动的原理。有能力在有控制器的嵌入式平台上参考液晶手册实现各种常见液晶驱动;6、usb 设备驱动:了解 usb 主机设备驱动的结构及编程方式。精通12WinCE 操作系统开发基础Windows CE 是目前另外一个最主流的嵌入式操作系统,嵌入式学院利用自身在 Windows CE 系统方面的教学优势,使学员了解Windows CE 应用开发

展开阅读全文
相关资源
相关搜索

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

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