ARM基础扫盲

一:ARM号:... 2

二:CPU和SoC的关系... 2

三:本课程的平台... 3

四:嵌入式与单片机的区别... 4

1、芯片平台:... 4

2、资源、价格、应用领域... 4

3、开发模式... 4

4、技术特征... 4

五:嵌入式系统的组成和分层... 5

1、嵌入式系统的组成... 5

2、嵌入式系统的分层... 5

3、嵌入式系统的发展过程... 6

4、多核处理器分为两种:... 6

六、交叉编译... 6

1、两种开发模式:... 6

2、为何使用交叉编译... 7

3、交叉编译的特点... 7

七、CPU的设计原理、地址总线和数据总线... 7

1、CPU和总线示意图... 7

2、数据总线和地址总线... 8

八、为何需要Jlink、SD卡等辅助设备... 8

1、嵌入式开发特点... 8

2、Jlink的作用:... 8

3、SD卡的作用:... 8

4、USB转串口线的作用:... 8


 

一:ARM型号:

注意:

1、ARM内核版本号和SoC版本号是由ARM确定的,而SoC型号是由半导体公司确定的。

2、Cortex系列后ARM产品线分割成3个系列,这个是市场细分的需要和选择。

ARM已经发布了一些64位架构如A53等,主要面向高性能服务器类应用。

3、ARM下一步重点发展方向是Cortex-M7,特点是低功耗,主要面向物联网终端。


二:CPU和SoC的关系

CPU分为运算器和控制器:运算器进行计算,控制器进行判断

SoC:System on Chip(在一个芯片中做一个系统)

1、芯片的发展方向:从CPU到SoC

2、现在已经没有纯粹的CPU了,都是SoC

3、ARM出卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的。

 

上图中:

1、在PCB版中,除了CPU外,UART、Nand控制器、LCD控制器都叫外设。

2、在芯片中,SoC包括CPU和其他的外设。

外设

1、SoC中外设大部分都跑进去了

2、网卡、音频编解码等个别还经常在外面

3、芯片设计的趋势是更大集成度,近年甚至将音视频编解码、DDR都集成进SoC内做成所谓单芯片解决方案。如海思Hi3518E

4、裸机学习其实就是学习SoC的内核(CPU,表现为汇编指令集)和各种外设(如串口)

Flash内存叫闪存,也叫做硬盘,而ddr内存就是我们通常所说的内存条。在手机中,我们一直说的内存相当于PC中的硬盘,而运存说的是PC中的内存条。


三:本课程的平台

SoC:三星S5PV210

开发板:九鼎科技X210

裸机实验方法:USB启动下载+SD卡启动

bootloader支持:uboot、xboot

操作系统支持:linux2.6.35、linux3.0.8、android2.3、android4.0.4

 

半导体厂商:三星

其他半导体厂商:

  • Freescale i.MX5系列(主要用于工业,比如工控机等)
  • TI Omap系列(一般都是双核,内置ARM和DSP双核)
  • Qualcomm 骁龙系列(手机,高通骁龙)
  • 全志科技A10 A20 A31 A33等(底层)
  • 行业专用型SoC如华为海思HI3518系列

     

四:嵌入式与单片机的区别

1、芯片平台:

主流的单片机平台:51、PIC、STM32、AVR、MSP430等

主流的嵌入式平台:ARM、PPC、MIPS(一般用于路由器)

2、资源、价格、应用领域

单片机片上资源有限、价格低、应用领域多为小家电、终端设备等。

嵌入式系统片上资源丰富、价格较高、应用领域宽广,譬如智能手机、平板电脑、游戏机、路由器、摄像机、智能电视机、广告机、智能手表、收银机等。

3、开发模式

单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂的产品也会使用高端单片机如STM32之类,并使用RTOS(Ucos、freeRTOS等)。

嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是Linux和Android。行业共识:如果产品为纯后台运行,比如路由器,一般用Linux,如果和客户需要进行界面交流,使用Android。

4、技术特征

编程语言方面:

单片机主要使用C语言(少量使用汇编语言),和标准C略有不同,很少使用结构体、函数指针等C语言高级特征。

嵌入式开发比较复杂,一般分为底层和应用层。底层语言使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、数据结构、算法、函数指针(用来面向对象)等高级特性使用比较多。

软硬件组件方面:

单片机多涉及到一些简单外设,比如串口、I2C、ADC、LCD(小屏幕和分辨率);

嵌入式系统则涉及到更多的复杂外设,比如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。

职业发展:

单片机学习路线短,职业平缓,薪资发展很早达到瓶颈,一般瓶颈薪资6~8k;

嵌入式学习路线长,职业生涯久,薪资发展多年才会达到瓶颈,一般瓶颈薪资12~15k。


五:嵌入式系统的组成和分层

1、嵌入式系统的组成

硬件

    • 微处理器
    • 存储器
    • I/O接口、输入输出设备等等

软件:

    • 嵌入式操作系统:中层
    • BSP  (board support package板级支持包):底层,关于硬件的一些驱动等。
    • 应用软件:上层(如暴风等)

工作过程:

比如:暴风需要用到屏幕、喇叭等硬件,是通过BSP中的驱动来控制的。应用软件通过给操作系统发命令,操作系统控制BSP中的驱动来控制硬件工作的。

2、嵌入式系统的分层

硬件由硬件工程师来做。

0—1—2—4—5—3—6,驱动程序最后再学习。

3、嵌入式系统的发展过程

  • 以单芯片为核心、可编程控制器存在形式(老式单片机)
    • 没有操作系统支持
    • 软件以汇编为主
    • 功能单一、处理效率低、存储容器小、没有对外接口
    • 使用简单、价格低
  • 以嵌入式CPU为基础、简单操作系统为核心(单片机,如RTOS,STM32)
    • CPU种类多,通用性弱
    • 系统开销小,效率高
    • 达到一定兼容性,拓展性
    • 用户体验度不高,交互界面不够友好
  • 以嵌入式操作系统为标志(软件Linux、安卓,硬件A8、A9)
    • 兼容性好,适用于不同平台
    • 系统开销小,效率高,具有高度模块化及拓展性
    • 图形化界面,用户界面友好(安卓)
    • 丰富的外部接口
  • 以物联网为标志
    • 将传感器技术、互联网技术及传统嵌入式技术综合联系
    • 小型化、智能化、网络化及可视化
    • 低功耗、绿色环保
    • 多核技术SWP、云计算技术及虚拟化技术

4、多核处理器分为两种:

1:对称多核处理器(多个核心型号一样,不分主次)

2:非对称多核处理器(DSP+ARM,DSP主运算,ARM主控制)


六、交叉编译

1、两种开发模式:

  • 非嵌入式开发(桌面电脑上运行的程序,比如QQ、),A(类)机编写(源代码)、编译得到可执行程序,发布给A(类)机运行。
  • 嵌入式开发(交叉编译),A(类)机编写(源代码)、编译得到可执行程序,发布给B(类)机运行。

2、为何使用交叉编译

  • 嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
  • 交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)

3、交叉编译的特点

  • 必须使用专用的交叉编译工具链(我们一般称之为编译器)。

交叉链文件在toolchain文件夹中,其中有:

gcc                  C语言编译器

g++                 C++语言编译器

ar                    打包工具

gdb                 调试工具

ld                    链接器

objcopy           制作烧录文件

objdump         反编译

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

     

七、CPU的设计原理、地址总线和数据总线

1、CPU和总线示意图

图中总线接口就是硬盘、内存和CPU的连线,在SoC外部,而内部总线是集成在CPU中的。

运算器:进行数学运算,+、-、*、/、取与、左移等

控制器:用来控制CPU运行,比如读取代码,解码,运行等

寄存器:CPU内部的临时内存

过程:程序(数据)在Flash中(硬盘)存储,运行时在内存DDR中。当需要运行程序(数据)时,Flash中的程序(数据)通过Flash数据总线读取到CPU中的寄存器中,然后将程序(数据)通过数据总线放入到内存DDR中。

2、数据总线和地址总线

总线接口包含两部分:地址总线和数据总线。

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

注意:

  • CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但是一般都相同。
  • CPU的位数指的是数据总线的位数。
  • 32位CPU寻址的范围是4G,所以最多支持4G内存;
  • 数据总线是32位的,所以内存是32位的好,所以编程最好用int···

大小计算:2exp10=K,2exp20=M,2exp30=G。2exp32=4G。


八、为何需要Jlink、SD卡等辅助设备

1、嵌入式开发特点

  • 交叉编译,不便于本机运行调试程序。
  • 嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具。
  • 嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。

基于上述特点,嵌入式调试时需要用到调试器,如Jlink。

2、Jlink的作用:

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

3、SD卡的作用:

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

4、USB转串口线的作用:

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

其他开发辅助工具:

  • USB OTG线
  • DB9串口线
  • 交叉网线
  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值