认识SOC

1. 概念

SOC全称System on Chip,意为片上系统(或称为芯片级系统)

1.1CPU和SOC的区别

1.2 版本号之分

CPU核架构(ARM公司设计)  CPU核版本号(ARM公司定义)SOC版本号(SOC厂商定义)
ARMv7Cortex-AS5pv210(三星的)
ARMv7Cortex-AIMX6dl(恩智浦的)
 
 Cortex-AA的意思是application应用级处理器,就是手机、平板、电脑的CPU
 Cortex-MM的意思是microcontroller微控制器,就是单片机,比如最近火的stm32
 Cortex-R

R的意思是realtime实时控制器,响应速度快,主要用于工业、航空领域

 

2. 寄存器

寄存器存在于SOC内部,众所周知,我们编写程序控制硬件是通过寄存器来编程操控的,寄存器就好像是硬件提供的API供编程人员使用。

SOC中有两类寄存器:通用寄存器和特殊功能寄存器SFR(special function register)

通用寄存器(arm中有37个)是CPU的组成部分,CPU的很多活动都需要通用寄存器的支持与参与。

SFR不在CPU中,而存在于CPU的外设中,程序员通过访问外设的SFR来编程操控这个外设。

汇编可以用到通用寄存器,例如向特殊功能寄存器(地址为0x30008000,这里的地址是随便写的,方便理解)写入16,用汇编写是:


   
   
  1. ldr r0, = 16
  2. ldr r1, = 0x30008000
  3. str r0, [r1}

用C语言写是:


   
   
  1. int *p = ( int *) 0x30008000;
  2. *p = 16;

相比可知,用汇编写用到了通用寄存器r0,r1, 而C语言写却没有,其实是C语言屏蔽了这个过程(这个过程依然存在,只是编译器在生成.s文件时帮程序员做了,不懂的可以看我的另一篇博客《编译原理》)

 

后续补充·····

(这是另一篇博客)

•程序员用汇编指令编程 --经汇编器汇编成二进制可执行程序文件-->二进制文件被CPU读取进去-->CPU内部电路对二进制文件解码-->解码通过则CPU执行指令、完成指令动作。

•如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值