RealView® 编译工具 开发指南

4.0 版


Table of Contents

前言
关于本手册
适用对象
使用本手册
印刷约定
更多参考出版物
反馈
对 RealView 编译工具的反馈
关于本手册的反馈
1. 简介
1.1. 关于 RealView 编译工具
1.2. 使用示例
2. 为 ARM 处理器开发代码
2.1. 关于 ARM 体系结构
2.1.1. 多重处理系统
2.1.2. 紧耦合存储器
2.1.3. 内存管理
2.1.4. Thumb-2
2.1.5. 浮点生成选项
2.2. ARM 体系结构 v4T
2.2.1. 重要功能
2.2.2. 对齐支持
2.2.3. 端支持
2.3. ARM 体系结构 v5TE
2.3.1. 重要功能
2.3.2. 对齐支持
2.3.3. 端支持
2.4. ARM 体系结构 v6
2.4.1. 重要功能
2.4.2. 对齐支持
2.4.3. 端支持
2.5. ARM 体系结构 v6-M
2.5.1. 重要功能
2.5.2. 对齐支持
2.5.3. 端支持
2.6. ARM 体系结构 v7-A
2.6.1. 重要功能
2.6.2. 对齐支持
2.6.3. 端支持
2.7. ARM 体系结构 v7-R
2.7.1. 重要功能
2.7.2. 对齐支持
2.7.3. 端支持
2.8. ARM 体系结构 v7-M
2.8.1. 重要功能
2.8.2. 对齐支持
2.8.3. 端支持
3. 嵌入式软件开发
3.1. 关于嵌入式软件开发
3.1.1. 示例代码
3.2. 缺省编译工具行为
3.2.1. C 库结构
3.2.2. 缺省内存映射
3.2.3. 应用程序启动
3.3. 根据目标硬件调整 C 库
3.4. 根据目标硬件调整映像内存映射
3.4.1. 分散加载描述文件
3.4.2. 根区
3.4.3. 放置堆栈和堆
3.5. 复位和初始化
3.5.1. 向量表
3.5.2. ROM 和 RAM 重映射
3.5.3. 本地存储器设置的注意事项
3.5.4. 堆栈指针初始化
3.5.5. 硬件初始化
3.5.6. 执行模式的注意事项
3.6. 目标硬件和内存映射
4. 混合使用 C、C++ 和汇编语言
4.1. 使用指令内在函数、内联汇编器和嵌入式汇编器
4.2. 在汇编代码中访问 C 全局变量
4.3. 在 C++ 中使用 C 头文件
4.3.1. 包含系统 C 头文件
4.3.2. 包含您自己的 C 头文件
4.4. C、C++ 和 ARM 汇编语言交叉调用
4.4.1. 语言交叉调用的一般规则
4.4.2. C++ 的特定信息
4.4.3. 语言交叉调用的示例
5. 交互操作 ARM 和 Thumb
5.1. 关于交互操作
5.1.1. 何时使用交互操作
5.2. 汇编语言交互操作
5.3. C 和 C++ 交互操作
5.3.1. Thumb 状态下函数的指针
5.3.2. 使用同一函数的两个版本
5.4. 交互操作示例
6. 处理处理器异常
6.1. 关于处理器异常
6.2. ARMv6 及更早版本、ARMv7-A 和 ARMv7-R 架构
6.2.1. 异常类型
6.2.2. 向量表
6.2.3. 处理器模式和寄存器
6.2.4. 处理异常
6.2.5. 重置处理程序
6.2.6. 数据中止处理程序
6.2.7. 中断处理程序
6.2.8. SVC 处理程序
6.2.9. 预取中止处理程序
6.2.10. 未定义指令处理程序
6.3. ARMv6-M 和 ARMv7-M 架构
6.3.1. 主堆栈和进程堆栈
6.3.2. 异常类型
6.3.3. 向量表
6.3.4. 嵌套向量中断控制器
6.3.5. 处理异常
6.3.6. 配置系统控制空间寄存器
6.3.7. 配置单个 IRQ
6.3.8. 超级用户调用
6.3.9. 系统计时器
7. 调试通信通道
7.1. 关于调试通信通道
7.2. 目标和主机调试工具之间的 DCC 通信
7.2.1. 中断驱动调试通信
7.3. 从 Thumb 状态访问
8. 半主机
8.1. 关于半主机
8.1.1. 什么是半主机?
8.1.2. 半主机接口
8.2. 半主机实现
8.2.1. RealView ARMulator ISS
8.2.2. RealView ICE
8.2.3. 指令集系统模型
8.2.4. RealMonitor
8.3. 半主机操作
8.3.1. angel_SWIreason_EnterSVC (0x17)
8.3.2. angel_SWIreason_ReportException (0x18)
8.3.3. SYS_CLOSE (0x02)
8.3.4. SYS_CLOCK (0x10)
8.3.5. SYS_ELAPSED (0x30)
8.3.6. SYS_ERRNO (0x13)
8.3.7. SYS_FLEN (0x0C)
8.3.8. SYS_GET_CMDLINE (0x15)
8.3.9. SYS_HEAPINFO (0x16)
8.3.10. SYS_ISERROR (0x08)
8.3.11. SYS_ISTTY (0x09)
8.3.12. SYS_OPEN (0x01)
8.3.13. SYS_READ (0x06)
8.3.14. SYS_READC (0x07)
8.3.15. SYS_REMOVE (0x0E)
8.3.16. SYS_RENAME (0x0F)
8.3.17. SYS_SEEK (0x0A)
8.3.18. SYS_SYSTEM (0x12)
8.3.19. SYS_TICKFREQ (0x31)
8.3.20. SYS_TIME (0x11)
8.3.21. SYS_TMPNAM (0x0D)
8.3.22. SYS_WRITE (0x05)
8.3.23. SYS_WRITEC (0x03)
8.3.24. SYS_WRITE0 (0x04)
8.4. 调试代理交互 SVC

所有权声明

除非本所有权声明在下面另有说明,否则带有 ®™ 标记的词语和徽标是 ARM Limited 在欧盟和其他国家/地区的注册商标或商标。 此处提及的其他品牌和名称可能是其各自所有者的商标。

除非事先得到版权所有人的书面许可,否则不得以任何形式修改或复制本文档包含的部分或全部信息以及产品说明。

本文档描述的产品还将不断发展和完善。 ARM Limited 将如实提供本文档所述产品的所有特性及其使用方法。 但是,所有暗示或明示的担保,包括但不限于对特定用途适销性或适用性的担保,均不包括在内。

本文档的目的仅在于帮助读者使用产品。 对于因使用本文档中的任何信息、文档信息出现任何错误或遗漏或者错误使用产品造成的任何损失或损害,ARM 公司概不负责。

使用 ARM 一词时,它表示ARM 或其任何相应的子公司。

保密状态

本文档的内容是非保密的。 根据 ARM 与 ARM 将本文档交予的参与方的协议条款,使用、复制和公开本文档内容的权利可能会受到许可限制的制约。

受限访问是一种 ARM 内部分类。

产品状态

本文档的信息是开发的产品的最新信息。

Revision History
Revision A2002 年 8 月1.2 版
Revision B2003 年 1 月2.0 版
Revision C2003 年 9 月ARM® RealView® Developer Suite 2.0.1 版
Revision D2004 年 1 月RealView Developer Suite 2.1 版
Revision E2004 年 12 月RealView Developer Suite 2.2 版
Revision F2005 年 5 月RealView Developer Suite 2.2 SP1 版
Revision G2006 年 3 月RealView Development Suite 3.0 版
Revision H2007 年 3 月RealView Development Suite 3.1 版
Revision I2008 年 9 月RealView Development Suite 4.0 版
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0203IC
Non-Confidential