Chinaunix首页 | 论坛 | 博客
  • 博客访问: 829070
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:45
个人简介

邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛

文章分类
文章存档

2020年(1)

2018年(1)

2017年(56)

2016年(72)

2015年(151)

分类: 嵌入式

2017-01-03 15:44:21

1. ARM成长史
    ARM的前身为艾康电脑(Acorn),于1978年,于英国剑桥创立。
    在1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心。
    1985年开发出全球第一款商用RISC处理器,即ARM1.
    1990年艾康电脑财务危机,受苹果和VLSI的投资,分割出独立子公司Advanced RISC Machines (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  (注意:Cortex-M0 比 Cortex-M3 后面推出)
    2010年,推出Cortex-M4、成立Linaro,推出Cortex-A15 MPcore高性能处理器
    2011年,推出Cortex-A7,ARMv8发布
    2012年,开始64位处理器进程
    ·······

    资料来源于网络和维基百科,感谢原作者!
    
    

2. ARM的商业模式和生态系统
ARM之前的半导体圈子:
    Intel、AMD、Motorola、Zilog、VIA等
    自己设计IC、自己生产芯片、自己销售。
    
ARM的商业模式:
    ARM只负责设计IC,并且出卖自己的设计IP(版权)。
    ARM自己不生产芯片,而是把设计IP授权给其他半导体厂商来生产芯片。
    严格地说,ARM并不是一家半导体厂商。

ARM的合作伙伴:
    国际大厂商:
    SAMSUNG、TI、ST、
    NXP、VLSI、Digital Semiconductor、 Sony、Qualcomm、HP、IBM······

    中国授权厂商:
    华为海思、全志、瑞芯微、MTK(中国台湾)

3. 选择三星平台学习
为什么选择三星?
    本身使用广泛、有很好的企业应用基础
    资料多、积累好,便于学习
    开发板和方案商多,软硬件平台好找
    体系很典型,适合用来学习
三星主要的CPU:
    ARM7         44B0
    ARM9        2440  2410   2416
    ARM11        6410
    A8            S5PV210     S5PC100
    A9            4412        4418
    
4. 各种版本号
ARM的型号命名问题:
    ARM7和ARMv7不是一回事
    Cortex-A9比Cortex-A7更先出来
    型号很乱,初学者分不清哪个是哪个,比较迷茫。

ARM的几种版本号
    ARM内核版本号        ARMv7
    ARM SoC版本号        Cortex-A8
    芯片型号            S5PV210

ARM型号的发展历程:
    内核版本号            SoC版本号            芯片型号(三星)
    ARMv1
    ......
    ARMv4                ARM7                S3C44B0
    ARMv4                ARM9                S3C2440  S3C2410
    ARMv5                ARM9+xScale
    ARMv6                ARM11                S3C6410
                        Cortex-M
    ARMv7                Cortex-A
                        Cortex-R
    --------------------------------------------------------
    Cortex-A8              S5PV210/S5PC100
    Cortex-A9            Exynos4412          四核处理器
    Cortex-A7            全志A10 A20 A31
    Cortex-A15            exynos5250  5450
    --------------------------------------------------------
    Cortex-A53 A57 (64位处理器)        高通骁龙815和410, 苹果iPhone5S   

注意事项:
    ARM内核版本号和SoC版本号是由ARM确定的,而SoC型号是由半导体公司确定的。
    Cortex系列后ARM产品线分割成3个系列,这个是市场细分的需要和选择。
    ARM已经发布了一些64位架构如A53等,主要面向高性能服务器类应用。
    ARM下一步重点发展方向是Cortex-M7,特点是低功耗,主要面向物联网终端。

                
5. SoC和CPU的区别&外设概念的引入
SoC和CPU
    SoC = System on Chip
    芯片的发展方向:从CPU到SoC
    现在已经没有纯粹的CPU了,都是SoC
    ARM出卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的。
        
外设(Peripheral)                    
    外设就是外部设备
    SoC中外设大部分都跑进去了
    网卡、音频编解码等个别还经常在外面
    芯片设计的趋势是更大集成度,近年甚至将音视频编解码、DDR都集成进SoC内做成所谓单芯片解决方案。如海思Hi3518E
    裸机学习其实就是学习SoC的内核(CPU,表现为汇编指令集)和各种外设(如串口)

6. 主流学习型主芯片介绍
三星芯片:
    S3C44B0
    S3C2440、S3C2410
    S3C6410
    S5PV210
    Exynos4412 S5P4418
    
其他半导体厂商:
    Freescale i.MX5系列
    TI Omap系列
    Qualcomm 骁龙系列
    全志科技A10 A20 A31 A33等
    行业专用型SoC如华为海思HI3518系列
    
学习平台的要求:
    资料多、好找
    应用多、有市场需求和底蕴
    底层代码无过度封装
    难易适中

本次平台介绍:
    SoC:三星S5PV210
    开发板:九鼎科技X210
    裸机实验方法:USB启动下载+SD卡启动
    bootloader支持:uboot、xboot
    操作系统支持:linux2.6.35、linux3.0.8、android2.3、android4.0.4

7. 开发板介绍
8. 单片机和嵌入式区别
芯片平台:
    主流的单片机平台:51、PIC、STM32、AVR、MSP430等
    主流的嵌入式平台:ARM、PPC、MIPS
    
资源、价格、应用领域
    单片机片上资源有限、价格低、应用领域多为小家电、终端设备等。
    嵌入式系统片上资源丰富、价格较高、应用领域宽广,譬如智能手机、平板电脑、
        游戏机、路由器、摄像机、智能电视机、广告机、智能手表、收银机等。

开发模式:
    单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。
    嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是linux和Android。

技术特征1:
    编程语言方面:单片机主要使用C语言(少量用汇编),和标准C略有不同,很少使用结构体、函数指针等C语言高级特性。
    而嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。
    嵌入式C语言对结构体、数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多。
    
技术特征2:
    软硬件组件方面:单片机多涉及一些简单外设,譬如串口、I2C、ADC、LCD(小屏幕和分辨率);
    而嵌入式系统则涉及更多复杂外设,譬如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。

10. 嵌入式系统的构成特点和演进方向
嵌入式系统的特点:
    专用、软硬件可裁剪可配置
    低功耗、高可靠性、高稳定性
    软件代码短小精悍
    代码可固化
    实时性
    弱交互性
    专用开发工具及开发环境
    专业开发人员
    
嵌入式系统的组成:
    硬件
    微处理器
    存储器
    I/O接口、输入输出设备等等
    软件:
     嵌入式操作系统
    BSP  board support package板级支持包
    应用软件

嵌入式系统的发展演进1:
    以单芯片为核心、可编程控制器存在形式
    没有操作系统支持
    软件以汇编为主
    功能单一、处理效率低、存储容器小、没有对外接口
    使用简单、价格低
    以嵌入式CPU为基础、简单操作系统为核心
    CPU种类多,通用性弱
    系统开销小,效率高
    达到一定兼容性,拓展性
    用户体验度不高,交互界面不够友好

嵌入式系统的发展演进2:
    以嵌入式操作系统为标志
    兼容性好,适用于不同平台
    系统开销小,效率高,具有高度模块化及拓展性
    图形化界面,用户界面友好
    丰富的外部接口
    以物联网为标志
    将传感器技术、互联网技术及传统嵌入式技术综合联系
    小型化、智能化、网络化及可视化
    低功耗、绿色环保
    多核技术SWP、云计算技术及虚拟化技术

11. 交叉编译
两种开发模式:
    非嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给A(类)机运行。
    嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给B(类)机运行。
    
为何要用交叉编译:
    嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
    交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)

交叉编译的特点:
    必须使用专用的交叉编译工具链。
    由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)
    将可执行程序加载到目标嵌入式设备上运行及调试。

12. CPU的设计原理、数据总线和地址总线
地址总线和数据总线:
    CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
    地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量;
    总线的速度决定CPU和外设互换信息的速度。

注意:
    CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但是一般都相同。
    CPU的位数指的是数据总线的位数。
    32位CPU寻址的范围是4G,所以最多支持4G内存;
    数据总线是32位的,所以内存是32位的好,所以编程最好用int···
    
    
13. 为何需要Jlink、SD卡等辅助设备
嵌入式开发的特点:
    交叉编译,不便于本机运行调试程序。
    嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具。
    嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。

Jlink作用:
    下载可执行程序到目标机。
    在目标机上实现单步调试,便于开发bootloader。

SD卡的作用:
    作为启动介质。工作方式是:事先用读卡器将SD卡连接到开发机(一般是Windows电脑),通过写卡软件将交叉编译得到
    的可执行程序镜像烧录到SD卡,然后将SD卡插入 嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧
    录的镜像处启动。

USB转串口线的作用:
    串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。
    因为现在大部分个人电脑(大部分台式机和几乎全部的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口
    线来连接PC和开发板。
    
其他辅助开发工具:
    USB OTG线
    DB9串口线
    交叉网线

阅读(987) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~