一、嵌入式介绍
1.什么是嵌入式系统
嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,它为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
2.嵌入式系统的构成
- 嵌入式系统的组成
- 嵌入式系统的分层
3.嵌入式系统的演进方向
- 以单片机为核心、可编程控制器存在形式
1、没有操作系统支持
2、软件以汇编为主
3、功能单一、处理效率低、存储容器小,没有外部接口
4、使用简单、价格低 - 以嵌入式CPU为基础、简单操作系统为核心
1、CPU种类多,通用性弱
2、系统开销小,效率高
3、达到一定的兼容性,拓展性
4、用户体验度不高,交互界面不够友好 - 以嵌入式操作系统为标志
1、兼容性好,适用于不同平台
2、系统开销小,效率高,具有高度模块化及拓展性
3、图形化界面、用户界面友好
4、丰富的外部接口 - 以物联网为标志
1、将传感器技术、互联网技术及传统嵌入式技术综合联系
2、小型化、智能化、网络化、可视化
3、低功耗、绿色环保
4、多核技术、云计算、虚拟化技术
4.嵌入式的开发模式
- 两种开发模式
非嵌入式的开发:A类机编写源代码,编译得到可执行程序,发布给A类机运行。
嵌入式开发:A类机编写源代码,编译得到可执行程序,发布给B类机运行,这种编译模式也叫作交叉编译。 - 为什么使用交叉
1、嵌入式开的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
2、交叉编译器可以用高性能机器为低性能机器开发软件。 - 交叉编译的特点
1、必须使用专用的交叉编译工具。
2、由于可执行程序不能在本地运行调试,因此必须使用特殊的方法将可执行程序加载到目标嵌入式设备上运行及调试。
5.为什么需要SD卡等辅助设备
- 嵌入式开发特点
1、交叉编译,不便于本机运行调试程序。
2、嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具。
3、嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。 - SD卡的作用
作为启动介质,工作方式是:事先用读卡器将SD卡连到PC机上,通过定卡软件将交叉编译得到的可执行程序镜像烧录到SD卡,然后将SD卡插入嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧录的镜像处启动。 - USB转串口线的作用
串口本身用来做嵌入式目标机的调试输出主要目的是用来监视及调试软件。
因为现在大部分个人电脑都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。
二、ARM处理器介绍
1.ARM的发展历史
- ARM的前身是艾康电脑(Acorn),于1978年,在英国剑桥创建
- 在1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心
- 1985年开发出全球第一款商用RISC处理器
- 1990年艾康电脑财务危机,受苹果VLSI的投资,分割出独立子公司,Advanced RISC Machine(ARM),ARM公司正式成立
- 1991年,ARM推出第一款嵌入式RISC处理器,即ARM6
- 1993年,发布ARM7
- 1997年,发布ARM9TDMI
- 1999年,发布ARM9E
- 2001年,发布ARMv6架构
- 2002年,发布ARM11微架构
- 2004年,发布ARMv7架构的Cortex系列处理器,同时推出Cortex-M3
- 2005年,发布Cortex-A8处理器
- 2007年,发布Cortex-M1和Cortex-A9
- 2009年,实现Cortex-A9、发布Cortex-M0
- 2010年,推出Cortex-M4、成立Linaro,推出Cortex-A15 MPcore高性能处理器
- 2011年,推出Cortex-A7,ARMv8发布
- 2012年,开始64位处理器进程
2.ARM的商业模式和生态系统
- ARM之前的半导体行业
Intel、AMD、Motorola、VIA等,自己设计IC、自己设计芯片、自己销售。 - ARM的商业模式
ARM只负责设计IC,并且出卖自己的设计IP。
ARM自己不生产芯片,而是把设计IP授权给其它半导体厂商来生产芯片,收取低廉的授权费用。
严格来说,ARM并不是一家半导体厂商。 - ARM的启示
1、不要抱怨劣势,劣势反而可能是机会
2、想成功,要先学会帮助别人,成全别人,只想着自己的人是没有机会的
3、社会越来越成熟,成熟社会的特征就是不工不断细化
4、成功有时候是不经意的
5、ARM发展的很快,也很慢
6、从设计到产品,需要很长时间努力
3.ARM的版本号
- ARM的型号命名问题
1、ARM7和ARMv7不是一回事
2、Cortex-A9比Cortex-A7更先推出
3、型号很乱,没有规律 - ARM的几种版本号
1、ARM内核版本号
2、ARM SoC版本号
3、芯片型号 - ARM型号的发展历程,以三星为例
- 1、ARM内核版本号和Soc版本号是由ARM确定的,而芯片型号是由半导体公司确定的
2、Cortex系列ARM产品线分割成了3个系列,这个是市场细分的需要和选择
3、ARM已经发布了一些64位架构如A53等,主要面向高性能服务器类的应用
4、ARM下一步重点发展方向是Cortex-M7,特点是低功耗,主要面向物联网终端 - CPU与SoC的区别
1、SoC = System on Chip
2、芯片的发展方向:从CPU到SoC
3、现在已经没有纯粹的CPU了,都是SoC
4、ARM卖的是内核,其实就是CPU+总线,各种外设是半导体厂商自己添加的
5、SoC中外设大部分都融合进去了
6、网卡、音频等个别还经常设计在外面
7、芯片的发展趋势是更高的集成度,近年甚至将音视频编解码、DDR、网卡都集成到SoC内,做成所单芯片解决方案
8、裸机学习其实就是学习SoC的内核和各种外设
4.CPU的设计原理、数据总线、地址总线
- CPU总线示意图
- 地址总线和数据总线
1、CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息
2、地址总线的倍数决定CPU寻址范围,数据总线的位数决定CPU单次通信能交换的信息数量
3、总线的速度决定CPU和外设互换信息的速度
4、CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但一般都相同
5、CPU的位数指的是数据的位数,32位CPU寻址的范围是4G,所以最多支持4G内存
6、数据总线是32位的,所以内存是32位的好,所以编程最好用int……
5.主流学习型主芯片
- 以三星为例,按发行时间排列
1、S3C44B0
2、S3C2440 S3C2410
3、S3C6410
4、S5PV210 S5PC210
5、Exynos4412 S5P4418 - 其它半导体厂商
1、飞思卡尔
2、高通骁龙
3、华为海思
四、Windows开发环境构建
1.安装USB转串口驱动
1、打开驱动程序,单击”下一步“
2、等待安装,单击”完成“并重启
3、打开设备管理器,查看串口信息
4、右击选择”属性“,查看串口设置
2.安装串口通信工具
常用的串口通信工具有:SecureCRT、PuTTY、超级终端等,建议使用PuTTY,免安装
1、打开PuTTY运行
2、选择“串口”,填写端口、波特率
3、单击“打开”,使用串口与开发板进行通信,启动开发板,按任意键停止加载Android系统。
4.安装tftp文件传输工具
1、打开控制面板->选择小图标->防火墙->打开或关闭防火墙->关闭防火墙
2、运行tftp32.ext->点击"Settings"->打开”Browse“,设置根文件目录,默认是当前目录,点击确定
3、在putty中使用print查看开发板的相关设置
4、设置PC端的ip地址,与开发板中的参数设置要一致
5、使用ping命令测试开发板与PC端是否连通,下图为正常连接状态
6、下图为连接失败状态
连接失败后的检查:
- 1、使用print命令检查uboot中的环境变量设置是否正确
- 2、检查PC端ip地址和子网掩码是否正确
- 3、检查PC端防火墙是否关闭
- 4、检查网线的连接或重新插拔网线
- 5、禁用网络连接然后再启用
- 6、更换网线
7、使用tftp命令下载程序到指定地址,并使用go命令执行程序