arm概念区分
来源:互联网 发布:阿里云ip段 编辑:程序博客网 时间:2024/06/06 07:07
最近项目需要,重新回到了单片机行列,对于arm架构一些概念区分不清,参考别人总结,如下:
arm7:ARMv4架构。arm9:ARMv5架构。arm11:ARMv6架构。ARM-Cortex:ARMv7架构。
ARM7没有MMU内存管理单元,称为MCU,不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配独立的地址空间,ucCos、ucLinux这些精简实时的RTOS不需要MMU,可以在ARM7上运行。
ARM9、ARM11是嵌入式CPU,带有MMU,可以运行Linux等多进程的操作系统。
ARMv7架构以Cortex来命名,并分为Cortex-A、Cortex-R、Cortex-M三个系列,A主要是面向尖端的基于虚拟内存的操作系统和用户应用(移动领域),R针对于实时系统,M系列对于微控制器(MCU)。
Cortex-M(哈佛架构)与ARM7(冯诺依曼架构)主要是不同架构的MCU,M还分为M0、M3、M4和超级低功耗M0+。
ARMv4、ARMv5、ARMv6等架构主要是因为指令集不一样,原则上是可以向下兼容。
指令集:就是一整套底层指令的简称,分为RISC(精简指令)与CISC(复杂指令),相比而言RISC指令集的指令格式统一,种类比较少,寻址方式也比复杂指令集少,而CISC指令集的效率比较高。
CISC:设计目的要用最少的机器语言指令来完成所需的计算任务,比如乘法运算,在CISC架构的CPU上,这样一条指令:MUL ADDRA,ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果存储到ADDRA中。将ADDRA、ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现,这种架构将会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。现在Intel及其兼容CPU还在使用这种架构。
RISC:执行上述操作,将ADDRA、ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A、ADDRA;MOV B,ADDRB;MUL A,B,STR ADDEA,B。这种结构可以降低CPU复杂性及允许在同样的工艺水平下生产出功能更强大的CPU。
- arm概念区分
- 概念区分
- 概念区分
- arm概念
- 协议的概念区分
- Excel VBA概念区分
- 区分几个概念
- 几个概念的区分
- arm交叉编译器的区分
- JAVA的几个概念区分!
- TCP,HTTP,SOCKET概念区分
- SD/MMC/SDIO概念区分
- CVS和CSV概念区分
- 内存rank概念和区分
- KEIL相关概念的区分
- SD/MMC/SDIO概念区分
- ZigBee网络通信概念区分
- TCP,HTTP,SOCKET概念区分
- Erlang App. Management with Rebar
- erlang 进制转换
- erlang获取一个5900——65535之间不重复的一个数据
- 标准I/O的三种缓冲
- iOS——代码自动布局
- arm概念区分
- 实现quartz定时器及quartz定时器原理介绍
- linux下mysql的操作
- 互斥与同步
- 关于c++的迭代器
- linux /dev/console、/dev/tty和/dev/null的区别
- 从7个方面简单学习shell的正则表达式
- 第七周算法分析与设计:ZigZag Conversion
- vue中改变选中当前项的显示隐藏或者状态的方法