一、SoC和CPU区别
1、 SOC = System on chip (硅片上有一个系统,也就是片上系统)
CPU = 运算器 + 控制器
SOC =运算器 + 控制器 + 集成到CPU内部的外设;就是在CPU内部把许多外设通过CPU内部总线集成到CPU内部。
芯片发展方向;从CPU到SOC
现在已经没有纯粹的CPU了,都是SOC
ARM出卖内核其实就是CPU(当然还有总线,为了让半导体厂商根据产品需求添加功能)的设计方案
各种外设是半导体厂商自己添加的。
2、外设(peripheral)
就是外部设备(这里的外部就是CPU的外部,当然这是以前的说法,现在的SOC就是高集成的CPU)
Soc中外设大部分都跑进了CPU和CPU做在一个硅片上(高度集成)
网卡、音视频编解码等个别还经常在外面。
芯片的设计趋势是更大集成度,近几年甚至将音视频编解码、DDR都集成进了 CPU内做。
裸机的学习其实就是学习CPU内核(CPU表现为汇编指令集)和各种外设如串口等控制器。
二、交叉编译工具链
1、两种开发模式
非嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发部给A(类)机运行。
嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发部给B(类)机运行。
A 类:笔计本电脑
B类:嵌入式开发板
2、为何使用交叉编译
嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
交叉编译可以用高性能机器为低性能机器开发软件(包括裸机、系统和应用级软件)。
3、交叉编译的特点
必须使用专用(对应平台的)的交叉编译工具链。
由于执行程序不能在本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)
将可执行程序加载到目标嵌入式设备上运行及调试。
三、地址总线和数据总线
CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量;
总线的速度决定CPU和外设互换信息的速度。
注意:
CPU的地址总线位数和数据总线位数可以不相同(典型代表就是51单片机),但一般都是相同的。
CPU的位数指的是数据总线的位数。
32位CPU的寻址范围是2的32次方4G,所以最多支持4G内存。
数据总线是32位的,内存也是32位的,所以编程最好用int。
内存的计算方法:4G = 2exp32 相当于32根地址线。
2exp10 =k;
k exp 10 = m
m exp 10 = g
例如计算32位空间: 2exp30=1G 再左移两位相相当于乖4,2exp30 乘4 =4G;
四、ARM版本号区分:
年深日久造就了一系列的ARM架构,要说明的是,架构版本号后的数字和发布日期的次序没有关系。
ARM的三种版本号
(架构)内核版本号、SoC版本号、芯片型号
ARMv7 内核版本号,v 是指 version
Cortex-A8 SoC版本号
S5PV210 芯片型号
ARMv7和ARM7不是一回事,前一个是内核版本号,后一个是SOC版本号,而且这两个没有对应关系。ARMv7内核版本号对就的是Cortex
系列的SOC版本号。
知道架构版本号就是(内核版本号)ARM内核版本号和Soc版本号是由ARM确定的,而芯片型号是由半导体公司(三星、华为)确定的;
ARMv7—Cortex三个产品对应了Cortex-A、Cortex-R、Cortex-M。后缀字母就是ARM的拆分。
m microcontroller 微控制器 就是单片机 STM32
a Application 应用级处理器 就是手机,平板电脑
r realtime 实时处理器 响应速度快,主要应用于工业,航天领域。
m: m0 m0+ m3 m4 m7
m0低功耗
m4填加了浮点运算
m7低功耗物联网应用
分成三种:是因为一个内核版本对应三部分SOC版本号。
————————————————
本文为CSDN博主「qq_41680432」的原创文章