认识SOC
Posted 四季帆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识SOC相关的知识,希望对你有一定的参考价值。
1. 概念
SOC全称System on Chip,意为片上系统(或称为芯片级系统)
1.1CPU和SOC的区别
1.2 版本号之分
CPU核架构(ARM公司设计) | CPU核版本号(ARM公司定义) | SOC版本号(SOC厂商定义) |
ARMv7 | Cortex-A | S5pv210(三星的) |
ARMv7 | Cortex-A | IMX6dl(恩智浦的) |
Cortex-A | A的意思是application应用级处理器,就是手机、平板、电脑的CPU | |
Cortex-M | M的意思是microcontroller微控制器,就是单片机,比如最近火的stm32 | |
Cortex-R | R的意思是realtime实时控制器,响应速度快,主要用于工业、航空领域 |
2. 寄存器
寄存器存在于SOC内部,众所周知,我们编写程序控制硬件是通过寄存器来编程操控的,寄存器就好像是硬件提供的API供编程人员使用。
SOC中有两类寄存器:通用寄存器和特殊功能寄存器SFR(special function register)
通用寄存器(arm中有37个)是CPU的组成部分,CPU的很多活动都需要通用寄存器的支持与参与。
SFR不在CPU中,而存在于CPU的外设中,程序员通过访问外设的SFR来编程操控这个外设。
汇编可以用到通用寄存器,例如向特殊功能寄存器(地址为0x30008000,这里的地址是随便写的,方便理解)写入16,用汇编写是:
ldr r0, =16
ldr r1, =0x30008000
str r0, [r1}
用C语言写是:
int *p = (int *)0x30008000;
*p = 16;
相比可知,用汇编写用到了通用寄存器r0,r1, 而C语言写却没有,其实是C语言屏蔽了这个过程(这个过程依然存在,只是编译器在生成.s文件时帮程序员做了,不懂的可以看我的另一篇博客《编译原理》)
后续补充·····
以上是关于认识SOC的主要内容,如果未能解决你的问题,请参考以下文章