没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式学习步骤及方法.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 190 浏览量
2022-06-12
20:21:07
上传
评论
收藏 73KB DOC 举报
温馨提示
嵌入式学习步骤及方法
资源推荐
资源详情
资源评论
嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬
雪终将化去,春风定会吹来。具体步骤如下:
1、《 C 语言》第二版 谭浩强 ; 《C 程序设计语言》第二版 徐宝文译 机械工业出版社
你能区分开指针数组和数组指针吗?你知道函数指针吗?
你能区分开定义一个变量时系统给它分配的空间与用 malloc()函数给一个变量分配的
空间有什么不一样吗?
2、《数据结构》 C 语言版 黄国愉、叶乃青编 清华大学出版社
你能合上书本,用 C 语言实现书中的单链表、双链表数据结构吗?
3、《实用 C++程序设计》第二板 中国电力出版社 Steve_Oualline 著
此阶段主要是学习其面向对象的编程思想,加深对 C 语言和数据结构的理解。
4、学习单片机,最好能找个前辈带一带。
你能用 51 单片机做出一样实际的东西吗?即使它再简单!
要注意加深对中断的理解。
5、学习 ARM 单片机。
(1)、细读《ARM 微控制器基础与实战》周立工编写(注:即使你不用书中的开发
板)
(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf
6、学习 uCOS!!操作系统。
(1)、细读《嵌入式实时操作系统 uC/OS-!!》第二版 召贝贝译
你能把 uCOS!!移植到自己的平台上吗?
(2)、能编写在 uCOS!!操作系统环境下运行的针对具体硬件的驱动程序
7、熟悉L inux 环境,学习L inux 环境编程,学习交叉编程
(1)、细读《linux 命令大全.pdf》
(2)、细读《GNU Make 使用手册(中译版).pdf》
(3)、学习创建交叉编程环境.
8、学习 Linux 操作系统。
(1)、《 UNIX 环境高级编程》
(2)、细读“joyfire 笔记”,可在“www.qianrushi.com”网站的好书下载栏目获取
(3)、细读《linux 内核完全注释》
(4)、细读《understanding the linux kernel 2》
(5)、利用源代码阅读利器工具"Source Insight"进行真正的 linux 内核原码刨析
(6)、最后进行内核移植,并能编写在 linux 操作系统环境下运行的针对具体硬件的驱
动程序
9、学习 Linux 设备驱动编写。可参考《L inux 设备驱动程序》
10、复习 C++,学习用 QT 进行图形界面编程
(1)、细读《QT 编程宝典》
(2)、学会通过查看 QT 电子文档进行 QT GUI 实地编程
(3)、学习交叉编程.(其实就是把命令 qmake 变为 tmake)
11、当然,你也可学习一下 PCB 的制作和设计一个自己的 CPU(即软壳)
在嵌入式软件方面最重要的课程包括:
(1) 嵌入式微处理器结构与应用:
这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软
件的人应对 ARM 处理器工作原理和接口技术有充分了解,包括 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 开发板(听说价格都很贵,很容易损坏),同学应爱护使用和珍惜这样 的实验机
会。
(2) 嵌入式操作系统类课程
除了 WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时
操作系统 Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统,这在
嵌入式的所有技术中是最为关键的了。目前最重要的 RTOS 主要包括:
第一类
、传统的经典 RTOS:最主要的便是 Vxworks 操作系统,以及其 Tornado 开发平台。
Vxworks 因出现稍早,实时性很强(据说可在 1ms 内响应外部事件请求),并且内核可极
微(据说最小可 8K),可靠性较高等,所以在北美, Vxworks 占据了嵌入式系统的多半
疆山。特别是在通信设备等实时性要求较高的系统中,几乎非 Vxworks 莫属。Vxworks 的
很多概念和技术都和 Linux 很类似,主要是 C 语言开发。像 Bell- alcatel、Lucent、华为等
通信企业在开发产品时,Vxworks 用得很多。但 Vxworks 因价格很高,所以一些小公司或
小产品中往往用不 起。目前很多公司都在往嵌入式 Linux 转(听说华为目前正在这样转)。
但无论如何,Vxworks 在一段长时间内仍是不可动摇的。与 Vxworks 类似 的稍有名的实时
操作系统还有 pSOS、QNX、Nucleus 等 RTOS。
第二类
、嵌入式 Linux 操作系统:Linux 的前途除作为服务器操作系统外,最成功的便是在
嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成
本会低。Linux 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。
目前应用在嵌入式领域的 Linux 系统主要有两种:
一种是专为嵌入式设计的已被裁减过的 Linux 系统,最常用的是 uClinux(不带 MMU 功
能),目前占较大应用份额,可在 ARM7 上跑;另一种是跑在 ARM 9 上的,一般是将
Linux2.4.18 内核移植在其上,可使用更多的 Linux 功能(当然 uClinux 更可跑在 ARM 9
上)。很多人预测,嵌入式 Linux 预计将占嵌入式操作系统的 50%以上份额,非常重要。
缺点是熟悉 Linux 的人太少,开发难度稍大。另外,目前我们 能发现很多教材和很多大学
都以 ucOS/II 为教学用实时操作系统,这主要是由于 ucOS/II 较简单,且开源,非常适合入
门者学习实时操作系统原理,但 由于 ucOS/II 功能有限,实用用得较少。况且熟悉了 Linux
开发,不仅在嵌入式领域有用,对开发 Linux 应用软件,对加深操作系统的认识也有帮 助,
可谓 一 举 多得 。 据 我所 知 , 目前 Intel 、 Philip 都 在大搞 ARM+LINUX 的嵌入 式 开发 ,
Fujitum 则是在自己的处理器上大搞 Linux 开发。目前在嵌入式 Linux 领域,以下几个方面
的人特别难找,一是能将 Linux 移植到某个新型号的开发版上;二是能写 Linux 驱动程序
的 人; 三 是 熟 悉 Linux 内 核 裁 减 和 优 化 的 人 。 不 过 LINUX 有 一 个 硬 伤 , 就 是没 有
WINDOWS 那样的友好方便美观
的交互界面,不然微软帝国早就守不住了。
第三类
、 Windows CE 嵌入式操作系统:Microsoft 也看准了嵌入式的巨大市场,MS 永远
是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在 PDA、
手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE 目前已很流行(据说有
一家卖工控机的公司板子卖得太好,以至来不及为客户裁减 WinCE)。 WinCE 目前主要
为 4.2 版(.NET),开发平台主要为 WinCE Platform Builder,有时也用 EVC 环境开发一些
较上层的应用,由于 WinCE 开发都是大家熟悉的 VC++环境,所以我院学过 Windows 程序
设计课程的同 学都不会有多大难度,这也是 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,非常方便自然,通过学习 WinCE
同样也可了解嵌入式软件的一般开发过程,对 Linux 有惧怕心理的同学也很合适。很显然,
嵌入式 Linux 永远不可能替代 WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意
接受 MS 的平台,就像各国政府都在大力推 LINUX 已好长时间,但你能看到几个 在 PC 机
上真正使用 LINUX 的用户?据我观察,目前在嵌入式平台上,LINUX 是叫得最响,但还是
WinCE 实际用得更多.嵌入式 LINUX 可能更多地是一些有长远产品计划的公司,为降低成本
而进行长远考虑.WinCE 和多媒体(如 MPEG 技术)是微软亚洲工程院目前做得较多的项目领
域之 一, 现 在 社会很 需 要精通 WinCE 的人。 现 在有 WINCE 的 智 能手机 , 金山词 霸 、
WORD、EXCEL、REGEDIT 等居然都有 smartphone 版的,PC 上的 MP3、DOC 等居然在
download 时都可被自动转换成 smartphone 格式,很爽的。完全可用 Windows CE 自己开发
一些需要的程序 download 到自己的手机上。现在市面销售 PDA 智能手机火爆,MS 总是财
源滚滚。
总结关于嵌入式操作系统类课程,若你觉得自己功底较深且能钻研下去,则可去学嵌
入式 Linux;若你觉得自己 VC++功底较好且想短平快地学嵌入式开发,自学 WINCE 是非
常好的选择。
(3) 嵌入式开发的相关领域
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域
包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握 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 数字信号处理的意思,DSP 处理器通过硬件实
现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、
通信等硬件 专业的课程,对于搞软件的人若能了解一下最好。目前 DSP 人才较缺。如果有
信号与系统、数字信号处理等课程基础,对于学习 MPEG 编解码原理会有很大帮助。
(4)嵌入式开发的相关硬件基础
对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌
入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++ 数据结构算法、特别
是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重
点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。我们的研究生里有些是
学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入
式本身就是从单片机发展过来的,只是单片机不带 OS,而现在很多嵌入式应用越来越复杂,
以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度
要求较高场合,有不少公司是将一些 DSP 算法,如 MPEG 压缩解压缩算法等用硬件来实现,
这就涉及到 HDL 数字电路设计技术及其 FPGA/IP 核实现技术,这方面的人目前市场上也
很缺。
剩余16页未读,继续阅读
资源评论
omyligaga
- 粉丝: 88
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Spring Cloud商城项目专栏 049 支付
- sensors-18-03721.pdf
- Facebook.apk
- 推荐一款JTools的call-this-method插件
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功