关键词:
目录
第1章 ARM概述
1.1 ARM的过去
1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。
80年代中期,Acorn的一个小团队要为他们的下一代计算机挑选合适的处理器,根据他们提供的技术需求,在当时的市场上无法找到合适的处理器,于是 Acorn决定自己设计一个处理器(真有魄力)。一个小团队仅仅用了18个月就完成了从设计到实现的全过程,这是一台RISC指令集的计算机,叫做 Acorn RISC Machine(简称ARM)。后来Acorn计算机公司没落了,而CPU处理器设计部门被分了出来,组成了一家新公司, 即ARM公司。
英国ARM公司是全球领先的半导体知识产权(IP)提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构 [1] 。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。2014年基于ARM技术的全年全球出货量是120亿颗,从诞生到现在为止基于ARM技术的芯片有600亿颗 [2] 。技术具有性能高、成本低和能耗省的特点。在智能机、平板电脑、嵌入控制、多媒体数字等处理器领域拥有主导地位。
1.2 ARM内核架构版本与ARM CPU家族的对应关系
ARM内核架构版本:V4~V7, 反应的指令集
ARM CPU家族:反应的是CPU芯片的型号。
1.3 ARM CPU家族系列
ARM 架构是构建每个 ARM 处理器的基础。随着时间的推移不断发展,ARM 架构自身也在不断的演进和发展。
Cortex就是ARM公司一个系列处理器的名称。比如英特尔旗下处理器有酷睿,奔腾,赛扬。
ARM在最初的处理器型号都用数字命名,ARM 处理器的命名为 ARM+version,从第一代的 ARM1 到后来的 ARM11。随着市场的逐渐铺开,才分化出了 cortex-A、cortex-R、cortex-M 三个系列的命名方式,后续的处理器都就不再采用 ARM+version 的命名方式。
在应用ARMv7架构后,推出了Cortex这一系列,老式的则命名为Classic系列。
1.4 ARM cortex系列
ARM处理器分为 A、R、M 三个系列,分别代表三种不同的应用领域:
cortex-A 系列,指的是 Application,主要是高性能的处理器。相比于其它两种处理器,特点是增加了内存管理单元 MMU,对于运行大型的Linux这样的应用操作系,MMU是必不可少的元件。
cortex-R 系列,指的是 Real-time,主要是实时性的特点。一个常见的认知误区是:实时性就是处理快,实时性是指只对外事件的响应快,而不是CPU处理能力块。但是事实上,实时性代表的是处理时间上的确定性和低延迟,即一个操作可以在指定的短时间内完成,MMU 引入的地址转换通常不能满足其实时性的要求,所以 R 系列处理器并不挂载 MMU。
cortex-M 系列,指的是 Microcontroller,即微处理器,主打中低端市场。真实应用场景中,更多的是大型中控搭配小型嵌入式控制系统,小型嵌入式节点通常是海量的,比如智能家居、物联网等等,这一种系统的特点在于低功耗、低成本,相当的高性能,在中低端市场,性价比通常是一个主要的衡量因素。cortex-主要应用在单片机市场,如STM32。
第2章 ARM芯片系统设计
2.1 ARM SOC CPU总体架构
ARM Core:为执行指令的CPU核。
外设控制器:可以外界各种外部设备,包括I2C等低速串行总线,也可以包括以太网,PCIe等高速总线。
8bit ROM:启动程序
32bit RAM:片内RAM
16bit RAM:片外RAM
中断控制器:各种外部中断
2.2 ARM CPU内部互联总线AMBA
2.3 调试工具
通过JTAG工具,可以完成如下的功能:
(1)下载程序到目标硬件的RAM中
(2)下载程序到目标硬件的ROM中
(3)单步跟踪执行程序。
第3章 ARM CPU芯片的内部架构
3.1 CPU内部结构与编程模式
3.2 指令集
[架构之路-14]:目标系统-硬件平台-cpumpunpugpumcudspfpgasoc的区别
目录前言:一、通用指令程序控制1.1CPU(CentralProcessingUnit:中央处理单元/器)1.2MPU(MicroprocessorUnit:微处理单元/器)--广义CPU1.3MCU(MircoControllerUnit:微控制单元)--单 查看详情
[架构之路-20]:目标系统-硬件平台-嵌入式系统硬件电路基础:架构设计流程总线外设基本电路编码
目录前言:第1章嵌入式系统软硬件架构概览1.1什么是嵌入式系统 1.2嵌入式系统发展历程1.3嵌入式系统软件+硬件架构 1.4嵌入式系统的模型1.5嵌入式系统的硬件设备树1.6 嵌入式SOC芯片内部架构第2章硬件电路设计基础2.1嵌... 查看详情
[架构之路-16]:目标系统-硬件平台-cpu主要物理性能指标
目录第1章多核CPU的架构第2章 CPU主要的物理性能指标2.1CPU频率2.2CPU的位和字长2.3CPU的缓存容量与性能2.4CPU工作电压2.5CPU的总线方式2.6CPU制造工艺2.7CPU个数2.8CPU核的个数2.9CPU超线程数2.10CPU执行指令的性能指标FLOPS第3章 CPU主要的... 查看详情
[架构之路-13]:目标系统-硬件平台-五种主流cpu架构的比较(ciscx86riscarmriscpowerpcriscmipsrisc-v)
目录第1章CISC VS RISC指令集第2章 CISCX86第3章 RISC架构3.1ARM架构3.2 PowerPC3.3MIPS3.4RISC-V第1章CISC VS RISC指令集中央处理器(CPU)是智能设备的大脑。它的任务是通过执行一系列指令来驱动的设备,包括显示屏、触摸屏、... 查看详情
[架构之路-57]:目标系统-平台软件-用户空间驱动与硬件抽象层hal
目录前言:第1章驱动程序功能设计1.1关于用户空间驱动1.2硬件驱动程序的四大功能概述1.3OAM管理面功能:站在管理源的角度,看如何监控使能和监控硬件。1.4控制面功能:站在业务的角度看,如何使能和监控... 查看详情
[架构之路-15]:目标系统-硬件平台-什么是多核设计?多核面临的问题?什么是大小核设计?
目录第1章什么是多核架构1.1什么是单核架构1.2什么是多核架构1.3为什么要多核架构第2章多核架构的组成2.1多核之间通信模型2.2多核的案例第3章多核处理器的挑战3.1程序执行问题3.2Cache一致性问题3.3核间互联3.4总线设计3.5操作系... 查看详情
[架构之路-19]:目标系统-硬件平台-案例1-用单片机stm8/stm32搭建目标系统(以无线传感器lora终端为例)
...2章搭建的LoRa终端的系统需求和目标2.1 物联网系统分层架构2.2 搭建的LoRa终端的系统需求和目标2.3设计Lora终端的软硬件系统第3章搭建主机开发环境第4章 构建LoRa终端的目标系统的硬件4.1基本步骤4.2目标硬件示意图4.3 ASR6505-... 查看详情
[架构之路-18]:目标系统-硬件平台-案例1-单片机mcustm32芯片的工作原理与启动流程
...片的片上资源比较2.2 资源的含义与作用第3章STM32F103内部架构3.1概述与架构图3.2内部总线3.3DMA控制器第4章外部引脚与最小系统(STM32F103xxx)4.1外部引脚4.2最小系统连接第5章系统启动5.1 查看详情
[架构之路-11]:目标系统-架构-嵌入式系统软件+硬件的基本通用架构
目录前言:第1章计算机系统的通用架构第2章嵌入式系统的通用架构第3章嵌入式系统的开发模型第4章嵌入式系统的运行模型第5章SOC/FPGA芯片内部系统通用架构第6章嵌入式系统的演进历程第7章Linux嵌入式系统启动流程第8章 ... 查看详情
[架构之路-58]:目标系统-平台软件-中间件软件(嵌入式)与中间件平台(中台)
目录第1章中间件概述1.1嵌入式软件总体架构1.2什么是中间件软件1.3中间件的基本功能1.4中间件为应用程序提供服务的基本方式1.5中间件的发展历程第2章中间件的分类2.1事务式中间件2.2过程式中间件2.3面向消息的中间件2.4面向对... 查看详情
[架构之路-10]:目标系统-需求分析-业务意识价值意识
架构师所架构的系统,不单纯的是软件和硬件。架构不仅仅是没有生命的目标软件/硬件系统,在一个公司组织内部,它也承载着公司的长期的价值,承载这为客户解决问题的职责。因此,在架构一个系统时... 查看详情
[架构之路-61]:目标系统-平台软件-基础中间件-远程过程(函数)调用rpc原理与其网络架构(代码片段)
....5 什么是远程过程/函数调用RPC第2章远程过程调动的网络架构2.1去中心化的点对点架构(P2P架构)2.2客 查看详情
[架构之路-36]:目标系统-系统软件-linuxos硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析
目录第1章“分离”的思想的来源1.1 Linux一体化字符设备驱动程序的缺陷1.2懒人改进的思考1.3Linux硬件驱动程序期望的需要与目标1.4“分离”思想的来源1.5 隐藏在Linux设备驱动程序中的“分离”的思想1.6“分离”遵循的原则1.7... 查看详情
[架构之路-45]:目标系统-系统软件-linuxos硬件设备驱动-网络驱动程序模型网络数据包的收发流程
目录第1章网络驱动程序模型概述1.1Linux目标系统架构1.2Linux网络设备驱动的总体框架第2章网络设备驱动架构2.1网络设备和网络驱动的注册2.2 网络设备的标准数据结构2.3网络驱动的标准接口2.4网络设备的初始化函数2.5网络接口的... 查看详情
[架构之路-34]:目标系统-系统软件-linuxos硬件电路的文本描述:设备树的构成属性解析使用(代码片段)
目录第1章什么是树1.1树形结构1.2无处不在的树形结构1.3树形结构的好处第2章硬件系统设备树2.1什么是硬件设备树2.2Linux引入设备树的好处2.3Linux什么时候引入设备树与设备2.4Linux设备树的外观第3章Linux设备树的工作原理3.1Linux内... 查看详情
[架构之路-21]:目标系统-系统软件-计算机系统架构计算机指令系统结构化程序与分层编程。
...言:第1章计算机系统1.1计算机的出现1.2计算机的基本架构第2章计算机系统体系结构总结2.1计算机组成2.2总线与外设2.3 存储系统2.4中央处理器CPU第3章计算机硬件概览3.1硬件设计概览3.2元器件3.3原理图3.4PCB3.5电路板3.6可编程... 查看详情
[架构之路-8]:架构师-必须熟悉的组织内的软硬件研发流程和几大研发系统
目录前言:一、系统架构部门在组织内软硬件生产中的位置上二、软、硬件研发的几大系统三、软件开发流程与DevOps工具附录:组织公司的主要资产前言:大多数架构师和程序员都认为,架构师只需要关注目标系... 查看详情
[架构之路-60]:目标系统-平台软件-基础中间件-linux进程间通信的主要方式(代码片段)
目录前言:第1章进程1.1进程概述1.2线程1.3 进程的资源类型1.4Linux进程的特点第2章进程间通信2.1 概述2.2 进程通信的应用场景2.3进程间通信要共享的对象2.4进程间通信必须解决问题2.5进程间通信的方式概述第3章 进程间通... 查看详情