Arm? Cortex?-M处理器已经是loT和嵌入式应用程序流行的选择之一。通过Arm的DesignStart?工具,可以高效、方便且成本合理地访问Arm Cortex-M处理器IP内核。本书针对SoC和FPGA设计师详细阐述了将Cortex-M处理器集成到SoC芯片设计中时需要掌握的所有关键技术内容,包括总线协议、总线互连和外围设计等等。
姚文祥(Joseph Yiu)是Arm公司的杰出工程师,早在2000年就开始设计SoC,并在该领域担任了近20年的领导岗位。Joseph的书以专家的视角介绍了SoC设计师在将Cortex-M处理器整合到系统中时需要知道的内容,并讨论了Arm处理器和广泛的SoC组件(如内存接口、外围设备和调试组件)使用的片上总线协议规范(AMBA、AHB和APB)。还包括软件开发和高级设计注意事项。旅程以“将系统组装在一起”结束,这是一个基于Cortex-M3处理器(DesignStart)的简单微控制器设计的设计师视角,该处理器使用您将学会创建的组件。
封面
前折页
书名页
版权
推荐序
译者序
序
前言
作者简介
第1章 Arm Cortex-M系列处理器简介
1.1 Cortex-M系统设计
1.1.1 轻松开始Cortex-M系统设计
1.1.2 基于FPGA的Cortex-M处理器系统
1.1.3 Arm处理器架构更易构建安全系统
1.2 Arm处理器的分类
1.3 Cortex-M获取的开发资源
1.3.1 通过Arm公司Flexible Access业务和DesignStart项目获取IP授权
1.3.2 评估版DesignStart——Verilog代码不可读版本
1.3.3 专业版DesignStart——Verilog RTL代码可配置版本
1.3.4 FPGA版DesignStart——FPGA开发包版本
1.3.5 文档
第2章 基于Cortex-M处理器的系统设计
2.1 概述
2.2 存储器
2.2.1 存储器概述
2.2.2 基于FPGA开发工具设计Cortex-M处理器的存储器
2.2.3 ASIC设计中的存储器
2.2.4 存储器字节顺序
2.3 外围设备的定义
2.4 存储器映射的定义
2.5 总线和存储器系统设计
2.6 TCM集成
2.7 高速缓存集成
2.8 处理器的配置选项
2.9 中断信号及相关事项
2.10 事件接口
2.11 时钟生成
2.12 复位生成
2.13 SysTick定时器
2.14 调试集成
2.15 电源管理功能
2.16 顶层引脚分配和引脚多路复用
2.17 其他信号
2.18 签署要求
第3章 AMBA、AHB、APB
3.1 AMBA
3.1.1 AMBA简介
3.1.2 AMBA历史
3.1.3 各种版本的AMBA规范
3.2 AHB概述
3.2.1 AHB版本
3.2.2 AHB信号
3.2.3 AHB基本操作
3.2.4 最小AHB系统
3.2.5 多总线主机的处理
3.3 AHB详述
3.3.1 地址区间信号
3.3.2 数据区间信号
3.3.3 遗留仲裁器握手信号
3.4 独占访问操作
3.4.1 独占访问简介
3.4.2 AHB5独占访问支持
3.4.3 Cortex-M3/M4/M7处理器独占访问信号到AHB5的映射
3.5 AHB5 TrustZone支持
3.6 APB概述
3.6.1 APB系统
3.6.2 APB信号和连接
3.6.3 APBv2中的附加信号
3.6.4 APB上的数据
3.6.5 不同版本APB组件的组合使用
第4章 搭建Cortex-M处理器的简单总线系统
4.1 总线设计基础
4.2 搭建简单的Cortex-M0系统
4.3 搭建简单的Cortex-M0+系统
4.4 搭建简单的Cortex-M1系统
4.5 搭建简单的Cortex-M3/Cortex-M4系统
4.6 处理多个总线主机
4.7 独占访问支持
4.8 地址重映射
4.9 基于AHB的存储器连接与TCM
4.10 嵌入式闪存的处理
4.10.1 IP要求
4.10.2 闪存编程
4.10.3 处理器的无程序启动
第5章 Cortex-M处理器系统的调试集成
5.1 调试与跟踪功能概述
5.2 CoreSight调试架构
5.2.1 Arm CoreSight简介
5.2.2 调试连接协议
5.2.3 调试连接概念——调试访问端口
5.2.4 调试接口结构
5.2.5 跟踪连接
5.2.6 时间戳
5.2.7 调试组件发现机制
5.2.8 调试认证
5.2.9 调试电源请求
5.2.10 调试复位请求
5.2.11 交叉触发接口
5.3 调试集成
5.3.1 JTAG/SWD连接
5.3.2 跟踪端口连接
5.3.3 调试和跟踪系统的时钟
5.3.4 多点SWD
5.3.5 调试认证
5.4 其他调试相关主题
5.4.1 其他信号连接
5.4.2 菊花链式JTAG连接
第6章 低功耗支持
6.1 Cortex-M处理器低功耗特性
6.2 低功耗设计基础
6.3 Cortex-M处理器低功耗接口
6.3.1 睡眠状态和GATEHCLK输出
6.3.2 Cortex-M23/M33/M35P处理器的Q通道低功耗接口
6.3.3 睡眠保持接口
6.3.4 唤醒中断控制器
6.3.5 SRPG对软件的影响
6.3.6 软件低功耗方法
6.4 体现低功耗设计的Cortex-M处理器特性
6.4.1 高代码密度
6.4.2 短流水线模式
6.4.3 取指优化模式
6.5 系统级设计注意事项
6.5.1 低功耗设计
6.5.2 时钟源
6.5.3 低功耗存储器
6.5.4 缓存存储器
6.5.5 低功耗模拟单元
6.5.6 时钟门控设计
6.5.7 处理器完全掉电情况下的睡眠模式
第7章 总线基础组件设计
7.1 简单AMBA总线系统设计概述
7.2 典型AHB从机设计规则
7.3 典型AHB基础组件
7.3.1 AHB解码器
7.3.2 默认从机
7.3.3 AHB从机多路复用器
7.3.4 带AHB接口的ROM和RAM
7.3.5 AHB to APB总线桥
7.4 从Cortex-M3/Cortex-M4 AHB Lite桥接到AHB5
第8章 简单外设设计
8.1 外设系统设计
8.2 设计简单的APB外设
8.2.1 通用输入输出接口
8.2.2 APB定时器
8.2.3 UART
8.3 ID寄存器
8.4 外设设计的其他注意事项
8.4.1 系统控制功能的安全性
8.4.2 处理器暂停
8.4.3 64位数据处理
第9章 内核系统集成
9.1 搭建简单的微控制器系统
9.2 设计划分
9.3 仿真环境的内容
9.4 仿真用基础软件支持库及代码
9.4.1 基于CMSIS-CORE的示例代码概述
9.4.2 MCU的设备头文件
9.4.3 MCU的设备启动文件
9.4.4 UART应用程序
9.4.5 系统初始化函数
9.4.6 重定位目标
9.4.7 其他的软件支持包
9.5 系统级仿真
9.5.1 编译Hello world程序
9.5.2 使用Modelsim/QuestaSim对设计进行编译和仿真
9.6 高级处理器系统和Corstone基础IP
9.7 验证
9.8 ASIC实现流程
9.9 可测试性设计
第10章 处理器系统的其他相关设计
10.1 时钟系统设计
10.1.1 时钟系统设计概述
10.1.2 时钟切换
10.1.3 低功耗考虑
10.1.4 DFT考虑
10.2 多电源域和电源门控
10.3 混合信号Arm处理器
10.3.1 微控制器和混合信号设计的融合
10.3.2 模数转换
10.3.3 数模转换
10.3.4 其他模拟接口
10.3.5 将ADC和DAC IP产品连接到Cortex-M系统
10.4 SoC案例——Beetle测试芯片案例研究
10.4.1 Beetle测试芯片概述
10.4.2 Beetle测试芯片的挑战性
10.4.3 Beetle测试芯片的系统设计
10.4.4 Beetle测试芯片的实现
10.4.5 其他相关任务
第11章 软件开发
11.1 Cortex微控制器软件接口标准
11.2 搭建多工具链支持的开发平台
11.2.1 准备工作
11.2.2 使用Arm Compiler 6进行编译
11.2.3 使用gcc进行编译
11.3 Arm Keil微控制器开发套件
11.3.1 Keil MDK概述
11.3.2 Keil MDK的安装
11.3.3 创建应用程序
11.3.4 创建工程
11.3.5 创建和添加源文件
11.3.6 编辑源文件
11.3.7 配置工程参数选项
11.3.8 编译工程
11.3.9 应用程序的烧录与调试
11.3.10 使用ITM输出文本消息
11.3.11 协同环境下的软件开发
11.4 使用RTOS
11.4.1 RTOS软件概念
11.4.2 使用Keil RTX
11.4.3 优化内存利用率
11.5 其他工具链
技术术语表
参考资料
后折页
封底
机械工业出版社 京icp备14043556号-1 (署)网出证(京)字第214号 Copyright (C) 2001 CmpBook. All Rights Reserved