12.07.2015 Views

RealView - ARM Information Center

RealView - ARM Information Center

RealView - ARM Information Center

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>RealView</strong>编 译 工 具2.0 版入 门 指 南© 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。<strong>ARM</strong> DUI 0202BSC


目 录<strong>RealView</strong> 编 译 工 具 汇 编 程 序 指 南序 言关 于 本 书 ..........................................................................................................vi反 馈 .................................................................................................................ix第 1 章第 2 章第 3 章简 介1.1 有 关 <strong>RealView</strong> 编 译 工 具 ..............................................................................1-21.2 联 机 文 档 ....................................................................................................... 1-5差 异2.1 概 述 ..............................................................................................................2-22.2 RVCT 2.0 版 和 RVCT 1.2 版 之 间 的 差 异 ......................................................2-32.3 RVCT 1.2 版 和 ADS 1.2 版 之 间 的 差 异 ........................................................2-6创 建 应 用 程 序3.1 编 译 应 用 程 序 ...............................................................................................3-23.2 使 用 <strong>ARM</strong> 库 ................................................................................................3-93.3 使 用 自 己 的 库 .............................................................................................3-12词 汇 表<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 iii


iv © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


序 言本 绪 言 介 绍 <strong>RealView</strong> 编 译 工 具 2.0 版 入 门 指 南 和 其 它 用 户 文 档 。 其 中 包 含 下 列各 部 分 :• 第 vi 页 的 关 于 本 书 ;• 第 ix 页 的 反 馈 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 v


序 言关 于 本 书本 书 介 绍 <strong>RealView</strong> 编 译 工 具 (RVCT) 2.0 版 工 具 和 文 档 的 概 述 。适 合 的 读 者本 书 是 为 使 用 RVCT 创 作 应 用 程 序 的 所 有 开 发 者 编 写 的 。 本 手 册 假 定 您 是 有 经验 的 软 件 开 发 人 员 。使 用 本 书本 书 按 下 列 各 章 组 织 :第 1 章 简 介第 2 章 差 异阅 读 本 章 可 了 解 RVCT。 介 绍 了 RVCT 的 组 件 及 联 机 文 档 。阅 读 本 章 可 了 解 RVCT v2.0、RVCT v1.2 和 <strong>ARM</strong> Developer Suite v1.2(ADS v1.2) 之 间 的 详 细 差 异 。第 3 章 创 建 应 用 程 序阅 读 本 文 可 简 要 了 解 使 用 RVCT 创 建 应 用 程 序 的 方 法 。印 刷 约 定本 书 中 使 用 了 下 列 印 刷 约 定 :斜 体 突 出 显 示 重 要 的 备 注 , 介 绍 特 殊 术 语 , 表 示 内 部 交 叉 引 用 ,以 及 引 用 。粗 体等 宽 字 体等 宽 字 体突 出 显 示 界 面 元 素 ( 如 菜 单 名 称 )。 表 示 <strong>ARM</strong> 处 理 器 信 号名 称 。 也 可 用 于 表 示 描 述 列 表 中 的 术 语 ( 如 果 选 用 )。表 示 可 在 键 盘 上 输 入 的 文 本 , 例 如 命 令 、 文 件 和 程 序 名 称 及源 代 码 。表 示 命 令 或 选 项 所 允 许 的 缩 写 词 。 可 以 输 入 带 下 划 线 文 本 来代 替 整 个 命 令 或 选 项 名 称 。vi © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


序 言单 间 隔 斜 体表 示 命 令 和 函 数 的 自 变 量 , 函 数 中 的 自 变 量 将 由 指 定 的 值代 替 。单 间 隔 粗 体 表 示 在 示 例 代 码 外 使 用 的 语 言 关 键 字 。更 深 入 的 读 物本 部 分 列 出 了 <strong>ARM</strong> Limited 的 各 种 出 版 物 , 可 提 供 有 关 <strong>ARM</strong> 系 列 处 理 器 开 发 代码 的 附 加 信 息 。<strong>ARM</strong> Limited 会 定 期 更 新 和 修 正 其 文 档 。 有 关 当 前 勘 误 表 和 增 补 以 及 <strong>ARM</strong> 常 见问 题 的 信 息 , 请 访 问 http://www.arm.com。<strong>ARM</strong> 出 版 物本 手 册 包 含 关 于 RVCT 的 一 般 信 息 。 该 套 件 中 包 含 的 其 它 出 版 物 有 :• <strong>RealView</strong> Compilation Tools v2.0 Developer Guide (<strong>ARM</strong> DUI 0203)。 此 手 册为 以 <strong>ARM</strong> 系 列 处 理 器 为 目 标 编 译 代 码 提 供 指 导 信 息 。• <strong>RealView</strong> 编 译 工 具 2.0 版 汇 编 程 序 指 南 (<strong>ARM</strong> DUI 0204)。 此 手 册 提 供 有 关<strong>ARM</strong> 汇 编 程 序 的 参 考 和 指 导 信 息 。• <strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 程 序 库 指 南 (<strong>ARM</strong> DUI 0205). 此 手 册提 供 有 关 RVCT 的 参 考 信 息 。 对 编 译 程 序 的 命 令 行 选 项 加 以 说 明 , 并 提 供有 关 C 和 C++ 编 译 程 序 及 C 库 的 <strong>ARM</strong> 实 现 的 参 考 材 料 。• <strong>RealView</strong> 编 译 工 具 2.0 版 链 接 程 序 和 实 用 程 序 指 南 (<strong>ARM</strong> DUI 0206)。 此 手册 为 链 接 程 序 提 供 有 关 命 令 行 选 项 的 参 考 信 息 和 fromELF 实 用 工 具 的 参 考信 息 。随 <strong>RealView</strong> 编 译 工 具 提 供 了 下 列 附 加 文 档 :• <strong>ARM</strong> FLEXlm 许 可 证 管 理 指 南 (<strong>ARM</strong> DUI 0209)。 该 手 册 作 为 联 机 图 书 的 组成 部 分 以 DynaText 格 式 提 供 , 并 且 以 PDF 文 件 形 式 提 供 , 该 文 件 位 于install_directory\Documentation\FLEXlm\2.0\release\platform\PDF 中 。• <strong>ARM</strong> 体 系 结 构 参 考 手 册 (<strong>ARM</strong> DDI 0100)。 该 手 册 作 为 联 机 图 书 的 组 成 部分 以 DynaText 格 式 提 供 , 并 且 以 PDF 文 件 DDI0100E_<strong>ARM</strong>_<strong>ARM</strong>.pdf 形 式 提供 , 该 文 件 位 于install_directory\Documentation\<strong>ARM</strong><strong>ARM</strong>\5.0\release\windows\PDF 中 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 vii


序 言• <strong>ARM</strong> ELF 规 范 (SWS ESPC 0003)。 这 是 以 PDF 文 件 格 式 提 供 的 , 文 件 名 为<strong>ARM</strong>ELF.pdf, 位 于install_directory\Documentation\Specifications\1.0\release\platform\PDF 下 。• TIS DWARF 2 规 范 。 这 是 以 PDF 文 件 格 式 提 供 的 , 文 件 名 为TIS-DWARF2.pdf , 位 于install_directory\Documentation\Specifications\1.0\release\platform\PDF 下 。• <strong>ARM</strong>-Thumb 过 程 调 用 标 准 规 范 。 这 是 以 PDF 文 件 格 式 提 供 的 , 文 件 名 为ATPCS.pdf, 位 于install_directory\Documentation\Specifications\1.0\release\platform\PDF 下 。此 外 , 可 参 考 下 列 文 档 来 了 解 与 <strong>ARM</strong> 产 品 相 关 的 特 定 信 息 :• <strong>RealView</strong> <strong>ARM</strong>ulator ISS v1.3 用 户 指 南 (<strong>ARM</strong> IDE 0170) ;• <strong>ARM</strong> 参 考 外 设 规 范 (<strong>ARM</strong> DDI 0062) ;• 您 的 硬 件 设 备 的 <strong>ARM</strong> 数 据 表 或 技 术 参 考 手 册 。viii © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


序 言反 馈<strong>ARM</strong> Limited 欢 迎 用 户 为 <strong>RealView</strong> 编 译 工 具 及 其 文 档 提 供 反 馈 意 见 。对 <strong>RealView</strong> 编 译 工 具 的 反 馈如 果 您 有 关 于 <strong>RealView</strong> 编 译 工 具 的 任 何 问 题 , 请 与 您 的 供 货 商 联 系 。 为 了 帮 助它 们 提 供 快 速 而 有 用 的 响 应 , 请 提 供 :• 您 的 姓 名 和 公 司 ;• 产 品 的 序 列 号 ;• 您 正 在 使 用 的 版 本 的 详 细 信 息 ;• 您 正 在 运 行 的 平 台 的 详 细 信 息 , 例 如 硬 件 平 台 、 操 作 系 统 类 型 和 版 本 ;• 能 复 现 问 题 的 一 小 段 独 立 示 例 代 码 ;• 清 晰 地 解 释 您 期 望 发 生 的 和 实 际 发 生 的 事 件 ;• 您 使 用 的 命 令 , 包 括 任 何 命 令 行 选 项 ;• 阐 明 问 题 的 输 出 样 例 ;• 工 具 版 本 字 符 串 , 包 括 版 本 号 和 日 期 。对 本 书 的 反 馈如 果 您 注 意 到 本 书 中 有 任 何 错 误 和 遗 漏 , 请 发 送 电 子 邮 件 到 errata@arm.com, 并提 供 :• 文 档 标 题 ;• 文 档 编 号 ;• 您 的 注 释 所 适 用 的 页 码 ;• 问 题 的 简 要 说 明 。也 欢 迎 对 增 补 和 改 进 提 出 一 般 性 建 议 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 ix


序 言x © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


第 1 章简 介本 章 介 绍 <strong>RealView</strong> Compilation Tools 2.0 版 (RVCT 2.0 版 ) 并 描 述 其 软 件 的 组 件和 文 档 。 它 包 含 以 下 几 个 部 分 :• 第 1-2 页 的 有 关 <strong>RealView</strong> 编 译 工 具 ;• 第 1-5 页 的 联 机 文 档 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-1


简 介1.1 有 关 <strong>RealView</strong> 编 译 工 具RVCT 由 一 套 工 具 连 同 支 持 文 档 和 示 例 组 成 , 用 于 为 <strong>ARM</strong> 系 列 RISC 处 理 器 编写 和 编 译 应 用 程 序 。可 以 使 用 RVCT 来 编 译 C、 C++ 或 <strong>ARM</strong> 汇 编 语 言 程 序 。1.1.1 RVCT 的 组 件RVCT 包 含 以 下 主 要 组 件 :• 开 发 工 具 ;• 第 1-3 页 的 实 用 程 序 ;• 第 1-4 页 的 支 持 软 件 。开 发 工 具提 供 以 下 开 发 工 具 :armccarmasmarmlink<strong>ARM</strong> 和 Thumb C 及 C++ 编 译 程 序 。 该 编 译 程 序 经 测 试 符 合 PlumHall C Validation Suite for ISO 一 致 性 。 可 以 :• 将 ISO C 源 代 码 编 译 成 32 位 <strong>ARM</strong> 代 码 ;• 将 ISO C++ 源 代 码 编 译 成 32 位 <strong>ARM</strong> 代 码 ;• 将 ISO C 源 代 码 编 译 成 16 位 Thumb ® 代 码 ;• 将 ISO C++ 源 代 码 编 译 成 16 位 Thumb 代 码 。<strong>ARM</strong> 和 Thumb 汇 编 程 序 。 可 汇 编 <strong>ARM</strong> 汇 编 语 言 和 Thumb 汇 编 语言 源 代 码 。<strong>ARM</strong> 链 接 程 序 。 可 将 一 个 或 多 个 目 标 文 件 的 内 容 与 一 个 或 多 个 选定 的 对 象 库 部 分 相 结 合 , 生 成 一 个 可 执 行 程 序 。 <strong>ARM</strong> 链 接 程 序 创建 ELF 可 执 行 映 像 。Rogue Wave C++ 库Rogue Wave 库 提 供 如 ISO/IEC 14822:1998 International Standard forC++ 所 定 义 的 标 准 C++ 库 实 现 。 有 关 Rogue Wave 库 的 详 细 信 息 ,请 参 阅 CD ROM 上 的 联 机 HTML 文 档 。支 持 库<strong>ARM</strong> C 库 提 供 其 它 组 件 , 启 用 C++ 支 持 以 及 为 不 同 体 系 结 构 和 处理 器 编 译 代 码 。1-2 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


简 介实 用 程 序下 列 实 用 程 序 用 于 支 持 主 开 发 工 具 :fromELFarmar<strong>ARM</strong> 映 像 转 换 实 用 程 序 。 可 接 受 ELF 格 式 的 输 入 文 件 并 将 它 们 转换 成 多 种 输 出 格 式 , 包 括 :• 普 通 二 进 制 ;• Motorola 32 位 S 记 录 格 式 ;• Intel Hex 32 格 式 ;• 类 似 于 Verilog 的 十 六 进 制 格 式 。fromELF 也 可 生 成 有 关 输 入 映 像 ( 例 如 代 码 和 数 据 大 小 ) 的 文 本信 息 。<strong>ARM</strong> 库 管 理 程 序 可 使 多 组 ELF 格 式 目 标 文 件 集 中 到 一 起 并 保 留 在库 中 。 可 将 此 类 库 传 递 到 链 接 程 序 , 来 替 代 若 干 ELF 文 件 。支 持 的 标 准RVCT 所 支 持 的 行 业 标 准 包 括 :ar armar 支 持 UNIX 风 格 档 案 文 件 。DWARF2ISO C编 译 程 序 、 链 接 程 序 和 ELF/DWARF2 兼 容 调 试 程 序 支 持 DWARF2调 试 表 。<strong>ARM</strong> 编 译 程 序 接 受 ISO C 作 为 输 入 语 言 。 选 项 --strict 可 用 于 强制 严 格 的 ISO 一 致 性 。C++ <strong>ARM</strong> 编 译 程 序 支 持 全 部 的 ISO C++ 语 言 ( 异 常 除 外 )。ELFEABI<strong>ARM</strong> 工 具 生 成 ELF 格 式 文 件 。fromELF 实 用 程 序 可 将 ELF 文 件 转换 成 其 它 格 式 。<strong>ARM</strong> Embedded Application Binary Interface (EABI) 用 于 使 用 支 持EABI 的 不 同 厂 家 的 <strong>ARM</strong> 和 Thumb 对 象 和 库 。 有 关 详 细 信 息 , 请参 阅 <strong>ARM</strong> DevZone 上 的 <strong>ARM</strong> EABI 主 页 。 可 以 从 http://www.arm.com访 问 <strong>ARM</strong> DevZone。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-3


简 介支 持 软 件要 在 模 拟 环 境 下 或 在 基 于 <strong>ARM</strong> 的 硬 件 上 调 试 程 序 , 请 使 用 ELF/DWARF2 兼 容调 试 程 序 。可 使 用 以 下 支 持 软 件 在 模 拟 环 境 下 调 试 程 序 :<strong>RealView</strong> <strong>ARM</strong>ulator ® ISS<strong>RealView</strong> <strong>ARM</strong>ulator Instruction Set Simulator (<strong>RealView</strong> <strong>ARM</strong>ulatorISS) 是 <strong>ARM</strong> 内 核 模 拟 器 。 可 提 供 指 令 精 确 的 <strong>ARM</strong> 处 理 器 模 拟 ,并 能 够 使 <strong>ARM</strong> 和 Thumb 可 执 行 程 序 在 非 本 机 硬 件 上 运 行 。<strong>RealView</strong> <strong>ARM</strong>ulator ISS 提 供 一 系 列 模 块 , 可 以 :• 模 拟 <strong>ARM</strong> 处 理 器 内 核 ;• 模 拟 处 理 器 所 用 的 存 储 器 。每 个 部 件 都 有 备 选 的 预 定 模 型 。 但 是 , 如 果 所 提 供 的 模 型 不 能 满 足您 的 要 求 , 那 么 您 可 创 建 自 己 的 模 型 。 有 关 详 细 信 息 , 请 参 阅<strong>RealView</strong> <strong>ARM</strong>ulator ISS 1.3 版 用 户 指 南 。1.1.2 文 档有 关 <strong>ARM</strong> 和 第 三 方 的 相 关 出 版 物 , 请 参 阅 每 本 书 中 的 更 多 参 考 读 物 一 章 。1-4 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


简 介1.2 联 机 文 档RVCT 文 档 与 DynaText 电 子 书 籍 一 样 , 也 可 联 机 获 得 。 DynaText 手 册 的 内 容 与PDF 文 档 的 内 容 一 样 。此 外 , 可 以 获 得 Rogue Wave C++ 库 的 HTML 格 式 文 档 。 有 关 详 细 信 息 , 请 参 阅第 1-12 页 的 HTML。只 有 选 择 “ 完 全 ” 安 装 才 能 安 装 RVCT 手 册 的 PDF。“ 典 型 ” 安 装 仅 安 装 在DynaText 联 机 书 籍 中 没 有 的 相 关 文 档 PDF。1.2.1 DynaTextRVCT 的 手 册 与 DynaText 电 子 书 籍 一 样 在 CD-ROM 上 提 供 。 在 “ 典 型 ” 或 “ 完全 ” 安 装 时 , 默 认 安 装 DynaText 浏 览 器 。要 显 示 联 机 文 档 , 请 任 选 一 种 操 作 :• 从 <strong>ARM</strong> <strong>RealView</strong> Compilation Tools 2.0 版 程 序 组 中 选 择 联 机 书 籍 ;• 执 行install_directory\Documentation\DynaText\4.1\release\win_32-pentium\bin 中的 Dtext.exe。DynaText 浏 览 器 显 示 可 用 集 合 和 书 籍 的 列 表 ( 第 1-6 页 的 图 1-1)。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-5


简 介图 1-1 含 有 可 用 书 籍 列 表 的 DynaText 浏 览 器打 开 书 籍双 击 书 籍 列 表 中 的 标 题 以 打 开 该 书 籍 。 该 书 籍 的 目 录 显 示 在 左 面 板 中 , 而 文 本 显示 在 右 面 板 中 ( 参 阅 第 1-7 页 的 图 1-2)。1-6 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


简 介图 1-2 打 开 书 籍浏 览 书 籍在 目 录 中 单 击 某 一 节 以 显 示 该 节 的 文 本 。 例 如 , 选 择 C 和 C++ 库 显 示 该 节 的 文本 ( 参 阅 第 1-8 页 的 图 1-3)。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-7


简 介图 1-3 从 目 录 中 选 择 某 一 节使 用 超 级 链 接 浏 览蓝 色 文 本 表 示 链 接 , 显 示 书 籍 中 的 不 同 章 节 或 不 同 的 书 籍 。 普 通 蓝 色 文 本 表 示 该链 接 在 当 前 章 节 内 。 带 有 下 划 线 的 蓝 色 文 本 表 示 该 链 接 与 当 前 手 册 的 其 它 章 节或 与 另 一 不 同 的 书 籍 相 链 接 。 超 级 链 接 表 现 不 同 , 这 取 决 于 它 们 的 目 标 :• 如 果 链 接 在 当 前 章 节 内 ( 普 通 蓝 色 文 本 ), DynaText 滚 动 当 前 窗 口 以 显 示目 标 ;• 如 果 与 当 前 书 籍 中 的 其 它 章 节 相 链 接 , DynaText 会 打 开 不 含 “ 目 录 ” 的新 窗 口 ;• 如 果 与 其 它 书 籍 相 链 接 , DynaText 会 打 开 含 有 “ 目 录 ” 的 新 窗 口 。第 1-9 页 的 图 1-4 说 明 了 显 示 已 链 接 文 本 的 文 本 内 容 的 浏 览 器 。1-8 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


简 介图 1-4 使 用 文 本 链 接显 示 图 形DynaText 浏 览 器 未 内 联 地 显 示 图 形 。 如 果 显 示 了 图 形 符 号 , 请 选 择 该 符 号 以 在其 自 己 的 窗 口 中 显 示 已 链 接 的 图 形 ( 参 阅 图 1-5)。图 1-5 链 接 图 片单 击 图 片 图 标 , 在 其 自 己 的 窗 口 中 显 示 图 片 ( 参 阅 第 1-10 页 的 图 1-6)。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-9


简 介图 1-6 显 示 的 图 形浏 览 不 同 的 书 籍如 果 蓝 色 链 接 文 本 指 的 是 不 同 的 书 籍 , 请 单 击 该 链 接 文 本 在 其 自 己 的 窗 口 中 显示 已 链 接 的 书 籍 ( 参 阅 第 1-11 页 的 图 1-7)。1-10 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


简 介图 1-7 浏 览 不 同 的 书 籍显 示 DynaText 帮 助选 择 Help → Reader Guide 以 显 示 有 关 如 何 使 用 DynaText 的 帮 助 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 1-11


简 介1.2.2 HTMLRVCT Rogue Wave C++ 库 的 手 册 在 CD-ROM 中 以 HTML 文 件 形 式 提 供 。 使 用 网络 浏 览 器 ( 例 如 Netscape Communicator 或 Internet Explorer) 查 看 这 些 文 件 。 例如 , 选 择 install_directory\Documentation\RogueWave\1.0\release\stdref\index.htm以 显 示 Rogue Wave 的 HTML 文 档 ( 参 阅 图 1-8, 其 中 install_directory 为C:\Program Files\<strong>ARM</strong>)。图 1-8 HTML 浏 览 器1-12 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


第 2 章差 异本 章 介 绍 RVCT 2.0 版 、RVCT 1.2 版 和 ADS 1.2 版 之 间 的 主 要 差 异 。 它 包 含 以 下几 个 部 分 :• 第 2-2 页 的 概 述 ;• 第 2-3 页 的 RVCT 2.0 版 和 RVCT 1.2 版 之 间 的 差 异 ;• 第 2-6 页 的 RVCT 1.2 版 和 ADS 1.2 版 之 间 的 差 异 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 2-1


差 异2.1 概 述本 章 介 绍 在 RVCT 2.0 版 、 RVCT 1.2 版 、 ADS 1.2 版 之 间 所 做 的 更 改 。RVCT 2.0 版 和 RVCT 1.2 版 之 间 最 重 要 的 差 异 为 :• RVCT 2.0 版 编 译 程 序 :— RVCT 2.0 版 编 译 程 序 有 新 的 前 端 , 包 括 对 命 令 行 选 项 做 了 更 改 。 为了 向 后 兼 容 , 也 支 持 老 版 本 的 <strong>ARM</strong> 编 译 程 序 中 提 供 的 选 项 。— 四 个 独 立 的 编 译 程 序 (armcc、 tcc、 armcpp 和 tcpp) 已 经 合 并 为 一 个编 译 程 序 armcc 中 。 但 是 , 为 了 有 助 于 移 植 到 新 的 编 译 程 序 中 , 可 使用 单 独 的 编 译 程 序 名 称 来 调 用 RVCT 2.0 版 编 译 程 序 。— RVCT 2.0 版 编 译 程 序 符 合 <strong>ARM</strong> 嵌 入 式 应 用 程 序 二 进 制 接 口(Embedded Application Binary Interface, EABI)。• 使 用 EDG (Edison Design Group) 前 端 , 完 全 支 持 由 ISO/IEC 14822 :1998International Standard for C++ 所 定 义 的 ISO C++。 这 包 括 名 称 空 间 、 模 板和 运 行 时 类 型 信 息 (Run-Time Type <strong>Information</strong>,RTTI) 的 智 能 实 现 , 但 是 异常 除 外 。• 支 持 <strong>ARM</strong> 体 系 结 构 6 版 。• 符 合 <strong>ARM</strong> 嵌 入 式 应 用 程 序 二 进 制 接 口 (Embedded Application BinaryInterface, EABI)。• 重 新 工 程 化 的 内 联 汇 编 程 序 和 新 的 嵌 入 式 汇 编 程 序 。• 在 每 个 函 数 基 础 上 的 <strong>ARM</strong> 和 Thumb 编 译 。• 支 持 Unicode 字 符 和 多 字 节 字 符 。• 没 有 临 时 许 可 证 。有 关 RVCT 1.2 版 和 ADS 1.2 版 之 间 差 异 的 概 述 , 请 参 阅 第 2-6 页 的 RVCT 1.2 版和 ADS 1.2 版 之 间 的 差 异 。2-2 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


差 异2.2 RVCT 2.0 版 和 RVCT 1.2 版 之 间 的 差 异本 节 介 绍 RVCT 2.0 版 和 RVCT 1.2 版 之 间 的 改 动 , 包 括 :• 一 般 性 改 动 ;• 对 <strong>ARM</strong> 编 译 程 序 的 更 改 ;• 第 2-4 页 的 对 <strong>ARM</strong> 链 接 程 序 进 行 了 更 改 ;• 第 2-5 页 的 对 <strong>ARM</strong> 汇 编 程 序 的 更 改 。2.2.1 一 般 性 改 动已 对 RVCT 做 出 了 下 列 更 改 :• 支 持 <strong>ARM</strong> 体 系 结 构 6 版 。• 符 合 <strong>ARM</strong> 嵌 入 式 应 用 程 序 二 进 制 接 口 (Embedded Application BinaryInterface, EABI)。 请 参 阅 <strong>ARM</strong> DevZone 上 的 <strong>ARM</strong> EABI 主 页 。 可 以 从http://www.arm.com/ 访 问 <strong>ARM</strong> DevZone。• 支 持 双 短 线 “--” 指 示 命 令 行 关 键 字 ( 例 如 , --cpp), 并 且 单 短 线 “-”指 示 带 或 不 带 自 变 量 的 命 令 行 单 字 母 选 项 ( 例 如 -S)。备 注为 了 向 后 兼 容 , 仍 支 持 以 前 版 本 的 ADS 和 RVCT 中 使 用 的 单 短 线 命 令 行选 项 。2.2.2 对 <strong>ARM</strong> 编 译 程 序 的 更 改对 <strong>ARM</strong> 编 译 程 序 (armcc) 所 做 的 主 要 更 改 如 下 :• RVCT 2.0 版 编 译 程 序 有 新 的 前 端 , 包 括 对 命 令 行 选 项 做 了 更 改 。 为 了 向后 兼 容 , 也 支 持 老 版 本 <strong>ARM</strong> 编 译 程 序 中 提 供 的 选 项 。• 现 在 , 四 个 独 立 的 编 译 程 序 (armcc、 tcc、 armcpp 和 tcpp) 已 经 合 并 为 一个 编 译 程 序 armcc 中 。 但 是 , 为 了 有 助 于 移 植 到 新 的 编 译 程 序 中 , 可 使 用单 独 的 编 译 程 序 名 称 来 调 用 RVCT 2.0 版 编 译 程 序 。• 支 持 <strong>ARM</strong>v6 及 其 非 对 齐 访 问 特 性 。• 添 加 新 的 嵌 入 式 汇 编 程 序 与 内 联 编 译 程 序 配 合 使 用 。• 使 用 #pragma arm 和 #pragma thumb 实 现 每 个 函 数 的 <strong>ARM</strong> 编 译 和 Thumb 编 译 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 2-3


差 异• 使 用 --fpmode 选 项 的 四 个 浮 点 模 型 。• --list 选 项 的 行 为 不 同 于 老 版 本 编 译 程 序 的 行 为 。• C++ 模 板 实 例 化 。• C++ 名 称 空 间 。• 可 指 定 指 针 对 齐 的 级 别 。• 诊 断 消 息 的 控 制 和 处 理 。 同 样 , 诊 断 消 息 的 编 号 方 式 已 经 更 改 。 现 在 , 消息 的 编 号 格 式 为 #nnnn 或 #nnnn-D。 带 有 -D 后 缀 的 消 息 的 消 息 编 号 可 用 于 使您 能 够 处 理 诊 断 消 息 的 选 项 中 。• 新 接 口 不 支 持 许 多 老 版 本 的 编 译 程 序 选 项 。 但 是 , 为 了 向 后 兼 容 , 如 果 使用 --old_cfe 选 项 , 则 可 用 这 些 老 版 本 的 选 项 。 有 关 详 细 信 息 , 请 参 阅<strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 库 指 南 中 介 绍 老 版 本 编 译 程 序 选 项 的附 录 。 适 用 时 , 此 附 录 也 说 明 老 版 本 编 译 程 序 选 项 映 射 到 新 版 本 编 译 程 序选 项 的 方 式 。 对 于 在 <strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 库 指 南 中 列 出 的消 息 , 该 附 录 也 说 明 新 编 译 程 序 接 口 所 输 出 的 等 效 消 息 。备 注如 果 使 用 --old_cfe 选 项 , 编 译 程 序 所 输 出 的 消 息 将 用 于 旧 的 编 号 格 式 。其 它 更 改 包 括 添 加 了 新 的 编 译 指 示 和 预 定 义 宏 、 其 它 的 C 和 C++ 语 言 扩 展 以 及对 <strong>ARM</strong> C 和 C++ 库 进 行 了 更 改 。2.2.3 对 <strong>ARM</strong> 链 接 程 序 进 行 了 更 改对 <strong>ARM</strong> 链 接 程 序 (armlink) 做 出 了 下 列 更 改 :• -unresolved 选 项 现 在 可 应 用 于 部 分 链 接 。• 添 加 了 新 的 操 纵 文 件 命 令 RESOLVE, 并 在 执 行 部 分 链 接 时 使 用 。 RESOLVE 使用 时 与 armlink 选 项 -unresolved 相 似 。• 选 项 -edit 现 在 可 以 接 受 多 个 文 件 。• 有 了 指 定 填 充 字 节 值 的 新 选 项 -pad。• 添 加 了 新 分 散 载 入 属 性 EMPTY 和 ZEROPAD。2-4 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


差 异2.2.4 对 <strong>ARM</strong> 汇 编 程 序 的 更 改已 对 <strong>ARM</strong> 汇 编 程 序 (armasm) 做 出 了 下 列 更 改 :• 添 加 了 对 新 <strong>ARM</strong> 体 系 结 构 6 版 的 支 持 。 包 括 饱 和 指 令 、 并 行 指 令 和 组 合及 分 离 指 令 。• ALIGN 指 令 具 有 附 加 参 数 , 可 指 定 任 何 填 充 的 内 容 。 此 参 数 为 可 选 。• 具 有 新 AREA 指 令 NOALLOC。• 具 有 两 个 新 指 令 , ELIF 和 FRAME RETURN ADDRESS。• 具 有 四 个 内 置 变 量 {AREANAME}、 {COMMANDLINE}、 {LINENUM} 和 {INPUTFILE}。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 2-5


差 异2.3 RVCT 1.2 版 和 ADS 1.2 版 之 间 的 差 异RVCT 1.2 版 和 ADS 1.2 版 之 间 最 重 要 的 差 异 为 :• 用 于 管 理 项 目 的 CodeWarrior IDE 已 经 删 除 。• <strong>ARM</strong> eXtended Debugger (AXD) 和 <strong>ARM</strong> 符 号 调 试 程 序 (armsd) 已 经 删 除 。• 在 RVCT 中 没 有 <strong>RealView</strong> <strong>ARM</strong>ulator 指 令 集 模 拟 器 。 现 在 已 配 有 其 它 <strong>ARM</strong>调 试 程 序 并 作 为 一 个 独 立 的 产 品 。• <strong>ARM</strong> Profiler (armprof) 已 经 删 除 。• 不 包 括 “<strong>ARM</strong> 应 用 程 序 库 ”。2-6 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


第 3 章创 建 应 用 程 序本 章 介 绍 如 何 使 用 RVCT 创 建 应 用 程 序 。 它 包 含 以 下 几 个 部 分 :• 第 3-2 页 的 编 译 应 用 程 序 ;• 第 3-9 页 的 使 用 <strong>ARM</strong> 库 ;• 第 3-12 页 的 使 用 自 己 的 库 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-1


创 建 应 用 程 序3.1 编 译 应 用 程 序本 节 介 绍 如 何 使 用 以 下 程 序 编 译 应 用 程 序 :• 编 译 程 序 ( 参 阅 使 用 编 译 程 序 );• 汇 编 程 序 ( 参 阅 第 3-5 页 的 使 用 汇 编 程 序 );• 链 接 程 序 ( 参 阅 第 3-6 页 的 设 置 链 接 程 序 选 项 )。3.1.1 使 用 编 译 程 序<strong>ARM</strong> 编 译 程 序 (armcc) 可 以 将 C 和 C++ 源 代 码 编 译 成 32 位 <strong>ARM</strong> 代 码 , 或 16 位Thumb 代 码 。通 常 , 按 如 下 方 式 调 用 <strong>ARM</strong> 编 译 程 序 :armcc [options] ifile_1 ... ifile_n可 指 定 一 个 或 多 个 输 入 文 件 ifile_1 ... ifile_n。 如 果 为 输 入 文 件 指 定 了 短 划线 -, 则 编 译 程 序 从 stdin 开 始 读 取 。默 认 行 为默 认 情 况 下 , 指 定 的 文 件 后 缀 会 更 改 启 动 时 由 <strong>ARM</strong> 编 译 程 序 采 用 的 配 置 。 表3-1 显 示 如 何 通 过 指 定 的 文 件 扩 展 名 调 整 编 译 程 序 启 动 配 置 。表 3-1 经 文 件 扩 展 名 调 整 的 启 动 配 置文 件 扩 展 名 指 令 集 源 语 言.cpp 未 调 整 C++.c 未 调 整 未 调 整.tc Thumb C.tcpp Thumb C++.ac <strong>ARM</strong> C.acpp <strong>ARM</strong> C++3-2 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


创 建 应 用 程 序使 用 老 版 本 工 具 名 称 调 用 <strong>ARM</strong> 编 译 程 序为 了 提 供 向 后 兼 容 性 , 还 可 使 用 在 RVCT 2.0 版 之 前 的 <strong>ARM</strong> 编 译 工 具 中 支 持 的四 个 工 具 名 称 之 一 调 用 <strong>ARM</strong> 编 译 程 序 。 与 每 个 老 版 本 工 具 名 称 相 关 的 启 动 配 置显 示 在 表 3-2 中 。表 3-2 基 于 老 版 本 工 具 名 称 的 启 动 配 置工 具 名 称 指 令 集 源 语 言armcc a<strong>ARM</strong>Ctcc Thumb Carmcpp <strong>ARM</strong> C++tcpp Thumb C++a. 尽 管 这 与 RVCT 2.0 版 的 <strong>ARM</strong> 编 译程 序 工 具 名 称 相 同 , 但 是 为 了 完 整性 需 要 将 其 包 括 在 内 。覆 盖 默 认 行 为利 用 表 3-3 中 显 示 的 命 令 行 选 项 , 能 够 覆 盖 <strong>ARM</strong> 编 译 程 序 基 于 文 件 扩 展 名 所 作调 整 ( 参 见 第 3-2 上 的 表 3-1), 或 覆 盖 用 于 调 用 编 译 程 序 的 工 具 名 称 ( 参 见 表3-2)。表 3-3 通 过 覆 盖 选 项 调 整 的 启 动 配 置命 令 行 选 项 指 令 集 源 语 言--c90 未 调 整 C--cpp 未 调 整 C++--arm <strong>ARM</strong> 未 调 整--thumb Thumb 未 调 整<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-3


创 建 应 用 程 序例 如 , 以 下 命 令 行 导 致 编 译 程 序 产 生 表 3-4 中 显 示 的 结 果 :tcpp foo.acpp --c90由 这 些 因 素 产 生 的 配 置 显 示 在 表 底 部 的 “ 结 果 ” 行 中 。表 3-4 示 例 配 置示 例 命 令 组 件 说 明 指 令 集 源 语 言tcpp 工 具 名 称 Thumb C++.acpp 文 件 扩 展 名 <strong>ARM</strong> C++--c90 命 令 行 选 项 未 调 整 C结 果 <strong>ARM</strong> C总 的 来 说 , 文 件 扩 展 名 覆 盖 由 调 用 <strong>ARM</strong> 编 译 程 序 的 工 具 名 称 决 定 的 默 认 配 置 ,并 且 命 令 行 选 项 覆 盖 文 件 扩 展 名 决 定 的 默 认 配 置 。编 译 示 例简 单 应 用 程 序 的 示 例 C 源 代 码 位 于install_directory\Rvct\Examples\2.0\build_num\windows\embedded\embed\main.c。编 译 示 例 :1. 使 用 以 下 命 令 之 一 编 译 C 文 件 main.c:armcc -g -O1 -c main.c ( 用 于 <strong>ARM</strong>)armcc --thumb -g -O1 -c main.c ( 用 于 Thumb)其 中 :-g 指 示 编 译 程 序 添 加 调 试 表 。-O1 指 示 编 译 程 序 在 保 持 适 当 的 调 试 视 图 时 选 择 最 为 合 理 的 优 化 。-c 指 示 编 译 程 序 仅 进 行 编 译 ( 并 不 链 接 )。--thumb指 示 编 译 程 序 生 成 Thumb 代 码 。( 备 用 选 项 --arm 指 示 编 译 程 序生 成 <strong>ARM</strong> 代 码 , 并 且 是 默 认 选 项 。)3-4 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


创 建 应 用 程 序2. 使 用 以 下 命 令 链 接 映 像 :armlink main.o -o embed.axf其 中 :-o 将 输 出 文 件 指 定 为 embed.axf。3. 使 用 ELF/DWARF2 兼 容 调 试 器 装 载 并 测 试 映 像 。3.1.2 使 用 汇 编 程 序使 用 <strong>ARM</strong> 汇 编 程 序 的 基 本 语 法 (armasm) 为 :armasm inputfile例 如 , 要 汇 编 名 为 myfile.s 文 件 中 的 代 码 , 请 键 入 :armasm -list myfile.lst myfile.s这 会 生 成 称 为 myfile.o 的 目 标 文 件 和 称 为 myfile.lst 的 列 表 文 件 。有 关 选 项 和 语 法 的 全 部 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 汇 编 程 序指 南 。示 例 3-1 说 明 了 一 个 小 的 交 互 操 作 <strong>ARM</strong>/Thumb 汇 编 语 言 程 序 。 可 用 其 浏 览 汇 编程 序 及 链 接 程 序 的 使 用 。示 例 3-1AREA AddReg,CODE,READONLY ; Name this block of code.ENTRY; Mark first instruction to call.mainADR r0, ThumbProg + 1 ; Generate branch target address and set bit 0; hence arrive at target in Thumb state.BX r0; Branch and exchange to ThumbProg.CODE16; Subsequent instructions are Thumb code.ThumbProgMOV r2, #2 ; Load r2 with value 2.MOV r3, #3 ; Load r3 with value 3.ADD r2, r2, r3; r2 = r2 + r3ADR r0, <strong>ARM</strong>Prog ; Generate branch target address with bit 0 zero.BX r0; Branch and exchange to <strong>ARM</strong>Prog.CODE32; Subsequent instructions are <strong>ARM</strong> code.<strong>ARM</strong>ProgMOV r4, #4MOV r5, #5ADD r4, r4, r5stop MOV r0, #0x18; angel_SWIreason_ReportExceptionLDR r1, =0x20026 ; ADP_Stopped_ApplicationExit<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-5


创 建 应 用 程 序SWI 0x0123456END; <strong>ARM</strong> semihosting SWI; Mark end of this file.编 译 示 例编 译 示 例 :1. 使 用 任 何 文 本 编 辑 器 输 入 代 码 并 在 当 前 工 作 目 录 下 将 文 件 保 存 为addreg.s。2. 在 命 令 提 示 行 键 入 armasm -list addreg.lst addreg.s 来 编 译 源 文 件 。3. 键 入 armlink addreg.o -o addreg 链 接 该 文 件 。4. 使 用 ELF/DWARF2 兼 容 调 试 器 装 载 并 测 试 映 像 。 执 行 程 序 , 并 检 查 寄 存器 以 查 看 它 们 如 何 变 化 ( 有 关 如 何 执 行 此 操 作 的 详 细 信 息 , 请 参 阅 调 试 器文 档 )。有 关 <strong>ARM</strong> 和 Thumb 汇 编 语 言 的 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 汇编 程 序 指 南 。3.1.3 设 置 链 接 程 序 选 项<strong>ARM</strong> 链 接 程 序 armlink 用 于 :• 将 对 象 和 库 的 集 合 链 接 到 可 执 行 的 ELF 映 像 ;• 部 分 链 接 对 象 集 合 到 一 个 对 象 , 生 成 的 该 对 象 可 用 作 将 来 链 接 步 骤 的 输 入 ;• 指 定 在 存 储 器 中 放 置 代 码 和 数 据 的 位 置 ;• 生 成 关 于 链 接 文 件 的 调 试 和 参 考 信 息 。对 象 由 输 入 段 组 成 , 输 入 段 包 含 代 码 、 初 始 化 数 据 或 必 须 设 为 0 的 存 储 器 位 置 。输 入 段 可 以 是 只 读 (RO)、 读 / 写 (RW) 或 零 初 始 化 (ZI) 形 式 。 armlink 使 用 这 些属 性 将 输 入 段 分 组 为 更 大 的 称 为 输 出 段 、 区 和 映 像 的 编 译 块 。 输 出 段 大 约 相 当 于ELF 段 。链 接 程 序 的 默 认 输 出 为 非 重 定 位 映 像 , 其 中 代 码 开 始 于 0x8000 并 且 数 据 段 直 接放 置 在 该 代 码 之 后 。 通 过 使 用 链 接 程 序 选 项 或 分 散 载 入 的 描 述 文 件 , 可 指 定 代 码和 数 据 段 的 准 确 位 置 。3-6 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


创 建 应 用 程 序链 接 程 序 输 入 和 输 出armlink 的 输 入 包 括 :• 一 个 或 多 个 “ELF 对 象 格 式 ” 的 目 标 文 件 ;• 选 择 性 地 包 括 由 armar 创 建 的 一 个 或 多 个 库 。成 功 的 armlink 调 用 输 出 下 列 之 一 :• ELF 可 执 行 格 式 的 可 执 行 映 像 ;• ELF 对 象 格 式 的 部 分 链 接 对 象 。对 于 简 单 映 像 , ELF 可 执 行 文 件 包 含 相 当 于 映 像 中 的 RO 和 RW 输 出 段 的 段 。ELF 可 执 行 文 件 还 有 包 含 映 像 输 出 段 的 ELF 段 。通 过 使 用 fromELF 实 用 程 序 , 可 以 将 ELF 可 执 行 格 式 的 可 执 行 映 像 转 换 成 其 它 文件 格 式 。 有 关 fromELF 实 用 程 序 的 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版链 接 程 序 和 实 用 程 序 指 南 。链 接 程 序 语 法链 接 程 序 命 令 语 法 的 格 式 如 下 :armlink [-help_options] [-output_options] [-via_options] [-memory_map_options][-image_content_options] [-image_info_options] [-diagnostic_options]有 关 链 接 程 序 选 项 的 详 细 列 表 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 链 接 程 序 和 实 用程 序 指 南 。使 用 链 接 程 序 选 项 定 位 各 段以 下 链 接 程 序 选 项 控 制 各 段 在 最 终 映 像 中 的 排 列 方 式 以 及 在 应 用 程 序 启 动 后 能否 将 代 码 和 数 据 移 动 到 新 位 置 :-ropi-ro-base address-rw-base address此 选 项 使 包 含 RO 输 出 段 的 载 入 区 和 执 行 区 与 位 置 无 关 。 如 果 未 使用 此 选 项 , 则 将 区 标 记 为 使 用 绝 对 地 址 。此 选 项 将 包 含 RO 输 出 段 的 区 的 执 行 地 址 设 置 在 address 处 。 默 认地 址 为 0x8000。此 选 项 将 包 含 RW 输 出 段 的 区 的 执 行 地 址 设 置 在 address 处 。 默 认地 址 在 RW 段 末 尾 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-7


创 建 应 用 程 序-rwpi此 选 项 使 包 含 RW 和 ZI 输 出 段 的 载 入 区 和 执 行 区 与 位 置 无 关 。 如果 未 使 用 此 选 项 , 则 将 区 标 记 为 使 用 绝 对 地 址 。 如 果 未 使 用-rw-base, 则 将 忽 略 -rwpi 选 项 。 通 常 每 个 可 写 输 入 段 必 须 为 读 写 位置 无 关 。如 果 要 对 各 段 在 映 像 中 的 放 置 方 式 作 进 一 步 控 制 , 请 使 用 -scatter 选 项 并 指 定分 散 载 入 描 述 文 件 。使 用 分 散 载 入 描 述 文 件 获 得 简 单 映 像命 令 行 选 项 (-ro-base、 -rw-base、 -ropi 和 -rwpi) 创 建 简 单 映 像 。通 过 使 用 -scatter 选 项 指 定 分 散 载 入 描 述 文 件 , 可 创 建 更 多 复 杂 映 像 。 -scatter选 项 与 其 它 任 何 简 单 存 储 器 映 射 选 项 的 使 用 , 包 括 -ro-base、-rw-base、-ropi 或-rwpi, 是 相 互 排 斥 的 。有 关 链 接 程 序 和 分 散 载 入 描 述 文 件 的 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版链 接 程 序 和 实 用 程 序 指 南 以 及 <strong>RealView</strong> 编 译 工 具 2.0 版 开 发 者 指 南 中 有 关 嵌 入式 软 件 开 发 的 章 节 。3-8 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


创 建 应 用 程 序3.2 使 用 <strong>ARM</strong> 库下 列 运 行 时 的 库 用 于 支 持 经 编 译 的 C 和 C++:ISO C C 库 包 含 :• 由 ISO C 库 标 准 定 义 的 函 数 。• 与 目 标 相 关 的 函 数 用 于 在 半 主 机 运 行 环 境 中 实 现 C 库 函 数 。可 在 自 己 的 应 用 程 序 中 重 新 定 义 这 些 函 数 。• C 和 C++ 编 译 程 序 使 用 的 辅 助 函 数 。C++C++ 库 包 含 由 ISO C++ 库 标 准 定 义 的 函 数 。C++ 库 依 赖 C 库 实 现 对特 定 目 标 的 支 持 , 在 C++ 库 中 没 有 目 标 相 关 性 。 此 库 包 含 :• 版 本 为 2.01.01 的 Rogue Wave 标 准 C++ 库 ;• C++ 编 译 程 序 辅 助 函 数 ;• Rogue Wave 库 不 支 持 的 其 它 C++ 函 数 。ISO C 库 使 用 标 准 <strong>ARM</strong> 半 主 机 环 境 提 供 如 文 件 输 入 / 输 出 这 样 的 设 备 。<strong>ARM</strong>ulator、 RealMonitor、 Angel 和 Multi-ICE 支 持 此 环 境 。 可 使 用 RVCT 中 的<strong>ARM</strong> 开 发 工 具 开 发 应 用 程 序 。 要 在 <strong>ARM</strong>ulator 下 或 开 发 板 上 装 载 和 测 试 应 用 程序 , 请 使 用 ELF/DWARF2 兼 容 调 试 器 。 有 关 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工具 2.0 版 编 译 程 序 和 库 指 南 中 关 于 “ 半 主 机 ” 的 章 节 。可 重 新 实 现 C 库 中 任 何 与 目 标 相 关 的 函 数 , 作 为 自 己 应 用 程 序 的 一 部 分 。 这 样 ,可 以 使 C 库 , 因 而 C++ 库 适 应 您 自 己 的 运 行 环 境 。库 安 装 在 install_directory\RVCT\Data\2.0\build_num\lib 中 的 以 下 子 目 录 中 :armlibcpplib包 含 <strong>ARM</strong> C 库 变 量 、 浮 点 算 术 库 和 数 学 库 。 附 带 的 头 文 件 位 于install_directory\RVCT\Data\2.0\build_num\include 中 。包 含 Rogue Wave C++ 库 和 支 持 C++ 函 数 变 量 。Rogue Wave 和 支 持的 C++ 函 数 共 同 被 作 为 <strong>ARM</strong> C++ 库 引 用 。 附 带 的 头 文 件 安 装 在install_directory\RVCT\Data\2.0\build_num\include 中 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-9


创 建 应 用 程 序备 注• 仅 以 二 进 制 格 式 提 供 <strong>ARM</strong> C 库 。• 不 应 修 改 <strong>ARM</strong> 库 。 如 果 要 创 建 库 函 数 的 一 个 新 的 执 行 , 请 将 新 函 数 放 置在 一 个 对 象 文 件 中 , 或 者 是 您 自 己 的 库 中 , 并 且 在 链 接 该 应 用 程 序 时 将 其包 含 在 其 中 。 使 用 新 版 的 函 数 来 替 代 标 准 库 中 的 版 本 。• 通 常 , ISO C 库 中 只 有 很 少 的 函 数 需 要 重 新 执 行 来 创 建 与 目 标 相 关 的 应 用程 序 。• Rogue Wave 标 准 C++ 库 源 代 码 不 是 免 费 分 发 。 可 从 Rogue Wave SoftwareInc 获 得 , 或 通 过 <strong>ARM</strong> Limited 获 得 , 但 需 要 额 外 的 许 可 费 用 。 有 关 C++库 的 详 细 信 息 , 请 参 阅install_directory\Documentation\RogueWave\1.0\release 中 的 Rogue Wave 联机 文 档 。3.2.1 在 半 主 机 环 境 中 使 用 <strong>ARM</strong> 库如 果 开 发 中 的 应 用 程 序 在 半 主 机 环 境 中 运 行 调 试 , 那 么 必 须 有 一 个 支 持 <strong>ARM</strong> 和Thumb 半 主 机 SWI 的 执 行 环 境 , 并 且 有 足 够 的 存 储 器 。可 使 用 以 下 两 种 方 法 提 供 运 行 环 境 :• 使 用 <strong>ARM</strong>ulator、RealMonitor、Angel 和 Multi-ICE 中 默 认 提 供 的 标 准 半 主机 功 能 ;• 实 现 自 己 的 SWI 处 理 程 序 以 便 用 作 半 主 机 SWI。如 果 使 用 库 中 的 默 认 半 主 机 功 能 , 则 不 必 编 写 任 何 新 函 数 或 包 含 文 件 。有 关 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 库 指 南 中 关 于 “ 半主 机 ” 的 章 节 。3.2.2 在 非 半 主 机 环 境 中 使 用 <strong>ARM</strong> 库如 果 不 想 使 用 任 何 半 主 机 功 能 , 则 必 须 确 保 没 有 调 用 使 用 半 主 机 的 任 何 函 数 , 或者 使 用 半 主 机 的 函 数 已 被 您 自 己 的 非 半 主 机 函 数 所 替 换 。编 译 不 使 用 半 主 机 功 能 的 应 用 程 序 :1. 创 建 源 文 件 实 现 与 目 标 相 关 的 功 能 。2. 使 用 #pragma import(__use_no_semihosting_swi) 保 护 源 代 码 。3-10 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


创 建 应 用 程 序3. 将 新 对 象 与 应 用 程 序 链 接 。4. 在 创 建 与 目 标 相 关 的 应 用 程 序 时 使 用 新 配 置 。如 果 C 库 用 于 将 其 自 身 与 目 标 相 关 性 相 隔 离 时 , 必 须 重 新 实 现 函 数 。 例 如 , 如果 使 用 了 printf() 函 数 , 则 必 须 重 新 实 现 fputc() 函 数 。 如 果 未 使 用 如 printf()这 样 的 高 级 输 入 / 输 出 函 数 , 则 不 必 重 新 实 现 如 fputc() 这 样 的 低 级 函 数 。如 果 正 在 为 不 同 的 运 行 环 境 编 译 应 用 程 序 , 则 可 以 重 新 实 现 与 目 标 相 关 的 函 数( 使 用 半 主 机 SWI 或 与 目 标 相 关 存 储 器 映 射 的 函 数 )。C++ 库 中 不 存 在 与 目 标 相关 的 函 数 。 有 关 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 库 指 南 中关 于 C 和 C++ 库 的 章 节 。3.2.3 编 译 不 包 含 <strong>ARM</strong> 库 的 应 用 程 序创 建 一 个 含 有 main() 函 数 的 应 用 程 序 将 造 成 C 库 初 始 化 函 数 被 包 含 在 其 中 。如 果 您 的 应 用 程 序 不 含 有 main() 函 数 , 则 不 初 始 化 C 库 , 并 且 您 的 应 用 程 序 不能 使 用 以 下 功 能 :• 软 件 栈 检 查 ;• 低 级 stdio ;• signal.h 中 的 信 号 处 理 函 数 , signal() 和 raise() ;• atexit() ;• alloca()。可 以 创 建 由 自 定 义 启 动 代 码 而 不 是 由 库 初 始 化 代 码 组 成 的 应 用 程 序 , 并 仍 使 用许 多 库 函 数 。 必 须 满 足 下 列 条 件 之 一 :• 避 免 使 用 需 要 初 始 化 的 函 数 ;• 提 供 初 始 化 和 低 级 支 持 函 数 。这 些 应 用 程 序 不 自 动 使 用 C 库 提 供 的 完 整 C 运 行 时 环 境 。 即 使 正 在 创 建 不 包 含这 个 库 的 应 用 程 序 , 某 些 来 自 该 库 的 辅 助 函 数 也 必 须 被 包 含 进 来 。 还 有 许 多 库 函数 可 通 过 较 小 的 重 新 实 现 而 变 为 可 用 。 有 关 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工具 2.0 版 编 译 程 序 和 库 指 南 中 关 于 C 和 C++ 库 的 章 节 。<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-11


创 建 应 用 程 序3.3 使 用 自 己 的 库<strong>ARM</strong> 库 管 理 程 序 armar 可 使 多 组 ELF 目 标 文 件 集 中 到 一 起 并 保 留 在 库 中 。 可 以将 这 样 的 库 传 送 给 armlink, 以 代 替 多 个 目 标 文 件 。 但 是 , 链 接 目 标 库 文 件 生 成的 结 果 不 一 定 与 链 接 所 有 集 中 进 库 文 件 的 目 标 文 件 生 成 的 结 果 相 同 。• 尽 管 未 使 用 区 域 将 被 删 除 ( 如 果 指 定 了 armlink -remove 选 项 ), 但 是 输 入列 表 中 的 每 个 目 标 文 件 仍 无 条 件 出 现 在 输 出 中 ;• 仅 当 目 标 文 件 或 先 前 处 理 的 库 文 件 引 用 库 文 件 的 成 员 时 , 它 才 包 含 在 输出 中 。要 创 建 称 为 my_lib 的 新 库 并 添 加 当 前 目 录 中 所 有 的 目 标 文 件 , 请 键 入 :armar -create my_lib *.o要 删 除 名 称 以 sys_ 开 始 的 库 中 的 所 有 对 象 , 请 键 入 :armar -d my_lib sys_*要 用 位 于 当 前 目 录 中 的 版 本 来 替 换 或 添 加 库 中 的 三 个 对 象 , 请 键 入 :armar -r my_lib obj1.o obj2.o obj3.o有 关 armar 的 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 链 接 程 序 和 实 用 程 序指 南 。备 注禁 止 修 改 <strong>ARM</strong> 库 。 如 果 要 创 建 库 函 数 的 一 个 新 的 实 现 版 本 , 请 将 新 函 数 放 置 在一 个 对 象 文 件 中 , 或 者 是 您 自 己 的 库 中 。 链 接 应 用 程 序 时 包 含 对 象 或 库 。 使 用 新版 的 函 数 来 替 代 标 准 库 中 的 版 本 。3-12 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


词 汇 表Angel是 一 个 在 目 标 系 统 上 运 行 的 调 试 监 控 程 序 , 使 您 能 开 发 和 调 试 在 基 于 <strong>ARM</strong> 的硬 件 上 运 行 的 应 用 程 序 。 Angel 可 调 试 运 行 在 <strong>ARM</strong> 状 态 或 Thumb 状 态 下 的 应用 程 序 。ANSI 请 参 阅 美 国 国 家 标 准 协 会 。APCS<strong>ARM</strong> 过 程 调 用 标 准 (Procedure Call Standard)。API 请 参 阅 应 用 程 序 设 计 接 口 。<strong>ARM</strong> 指 令 为 <strong>ARM</strong> 处 理 器 指 定 执 行 操 作 的 一 个 字 。 <strong>ARM</strong> 指 令 必 须 字 对 齐 。<strong>ARM</strong> 状 态 执 行 <strong>ARM</strong> (32 位 ) 指 令 的 处 理 器 工 作 在 <strong>ARM</strong> 状 态 。另 请 参 阅 Thumb 状 态 。armasm <strong>ARM</strong> 汇 编 程 序 。armcc <strong>ARM</strong> C 编 译 程 序 。<strong>ARM</strong>-Thumb 程 序 调 用 标 准 (ATPCS)<strong>ARM</strong>ulator定 义 如 何 将 寄 存 器 和 堆 栈 用 于 子 例 程 调 用 。请 参 阅 <strong>RealView</strong> <strong>ARM</strong>ulator ISS。<strong>ARM</strong> DUI 0202BSC 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 词 汇 表 - 1


词 汇 表ATPCS 参 阅 <strong>ARM</strong>-Thumb 程 序 调 用 标 准 。半 主 机 (semihosting)一 种 通 信 机 制 , 目 标 将 应 用 程 序 请 求 的 I/O 操 作 传 送 给 主 机 系 统 处 理 , 而 不 是 试图 自 身 支 持 I/O。保 存 的 程 序 状 态 寄 存 器请 参 阅 程 序 状 态 寄 存 器 。本 地 只 能 由 创 建 它 的 子 程 序 访 问 的 对 象 。变 量 适 当 大 小 的 存 储 区 域 , 用 以 保 存 指 定 的 数 据 项 目 。编 译 将 高 级 语 言 ( 例 如 C 或 C++) 转 换 成 目 标 文 件 的 过 程 。不 提 倡不 提 倡 的 选 项 或 功 能 是 强 烈 不 鼓 励 使 用 的 。 在 本 产 品 的 将 来 版 本 中 , 将 不 支 持 不提 倡 的 选 项 和 功 能 。CLI C 语 言 接 口 / 命 令 行 接 口 。CPSR 当 前 程 序 状 态 寄 存 器 。CPU 中 央 处 理 器 。另 请 参 阅 程 序 状 态 寄 存 器 。C, C++ 程 序 设 计 语 言 。C 文 件 含 有 C 源 代 码 的 文 件 。程 序 计 数 器 (PC) 整 数 寄 存 器 R15。程 序 状 态 寄 存 器 (PSR)含 有 一 些 有 关 当 前 程 序 和 当 前 处 理 器 的 信 息 。 因 此 , 通 常 也 被 称 为 “ 处 理 器 状态 寄 存 器 ”。 也 被 称 为 “ 当 前 处 理 器 状 态 寄 存 器 (CPSR)”, 以 着 重 强 调 它 与 “ 保存 的 处 理 器 状 态 寄 存 器 (SPSR)” 之 间 的 区 别 。SPSR 保 留 了 调 用 当 前 函 数 时 PSR所 具 有 的 值 , 并 在 返 回 控 制 时 恢 复 该 值 。“ 增 强 程 序 状 态 寄 存 器 (EPSR)” 含 有 一 些 <strong>ARM</strong> 处 理 器 ( 包 括 <strong>ARM</strong>9E) 所 使 用的 附 加 位 (Q 位 , 符 号 化 饱 和 )。重 新 确 定 将 为 一 个 运 行 环 境 设 计 的 代 码 移 到 新 运 行 环 境 中 的 过 程 。处 理 器 实 际 的 处 理 器 , 真 实 或 模 拟 地 运 行 在 目 标 上 。 处 理 器 始 终 至 少 有 一 个 执 行 环 境 。词 汇 表 - 2 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


词 汇 表处 理 器 状 态 寄 存 器 请 参 阅 程 序 状 态 寄 存 器 。存 储 器 管 理 单 元 (MMU)允 许 对 存 储 器 系 统 进 行 复 杂 控 制 。 通 过 内 存 中 的 转 换 表 提 供 多 数 控 制 。DLL 请 参 阅 动 态 链 接 库 。DWARF 一 种 特 殊 的 调 试 格 式 。大 端 (Big-endian) 将 一 个 字 的 最 低 位 字 节 存 储 在 比 最 高 位 字 节 更 高 的 地 址 上 的 存 储 结 构 。档 案 (Archive) 含 有 与 编 译 型 号 版 本 相 关 的 所 有 文 件 的 数 据 包 。读 / 写 位 置 无 关 读 / 写 数 据 地 址 可 在 运 行 时 动 态 改 变 。断 点 映 像 中 的 一 个 位 置 。 如 果 执 行 到 达 此 位 置 , 调 试 器 会 停 止 执 行 映 像 。另 请 参 阅 监 视 点 。ELF 可 执 行 和 链 接 格 式 。动 态 链 接 库程 序 集 合 , 当 执 行 程 序 需 要 时 可 调 用 其 中 任 何 程 序 。 帮 助 较 大 程 序 与 设 备 ( 例如 打 印 机 或 键 盘 ) 进 行 通 信 的 小 程 序 通 常 打 包 成 DLL。堆 可 用 于 创 建 新 变 量 的 计 算 机 内 存 部 分 。FIQ 快 速 中 断 。FP请 参 阅 浮 点FPA 浮 点 加 速 器 。FPE 浮 点 模 拟 程 序 。FPU 浮 点 部 件 。分 散 载 入 单 独 分 配 地 址 和 对 代 码 和 数 据 段 进 行 分 组 , 而 不 使 用 单 个 大 块 。浮 点GCC Gnu C 编 译 程 序 。GUI 图 形 用 户 界 面 。用 于 表 示 实 数 ( 相 对 与 整 数 而 言 ) 的 约 定 。 存 在 多 个 此 种 约 定 , 根 据 数 值 精 度要 求 所 需 存 储 空 间 。国 际 标 准 组 织 (ISO) 制 定 计 算 机 软 件 和 其 它 行 业 标 准 的 一 个 组 织 。 取 代 了 美 国 国 家 标 准 协 会 。缓 存ICE 线 路 中 模 拟 程 序 。一 块 高 速 存 储 器 区 域 , 其 地 址 随 着 处 理 器 访 问 的 那 些 存 储 位 置 自 动 更 改 , 其 目的 是 增 加 存 储 器 存 取 的 平 均 速 度 。<strong>ARM</strong> DUI 0202BSC 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 词 汇 表 - 3


词 汇 表IEEE 电 子 与 电 气 工 程 师 协 会 ( 美 国 )。IRQ 中 断 请 求 。ISO 参 阅 国 际 标 准 组 织 。I/O 输 入 / 输 出 。寄 存 器 处 理 器 寄 存 器 。交 互 操 作 (Interworking)允 许 <strong>ARM</strong> 和 Thumb 代 码 之 间 跳 转 的 一 种 工 作 方 法 。脚 本 指 定 一 系 列 调 试 器 命 令 的 文 件 , 可 用 obey 命 令 将 调 试 器 命 令 提 交 到 命 令 行 接 口 。这 使 您 不 必 逐 一 输 入 命 令 , 并 且 在 您 必 须 重 复 执 行 命 令 序 列 时 十 分 有 用 。库 (Library) 由 汇 编 程 序 或 编 译 程 序 产 生 的 目 标 对 象 组 合 形 成 的 一 种 集 合 。类 在 映 像 中 涉 及 的 C++ 类 。立 即 值直 接 在 指 令 中 编 码 并 且 在 执 行 指 令 时 作 为 数 字 数 据 使 用 的 值 。 许 多 <strong>ARM</strong> 和Thumb 指 令 允 许 将 小 的 数 值 在 对 它 们 进 行 操 作 的 指 令 中 编 码 为 立 即 值 。链 接 程 序 (Linker) 由 一 个 或 多 个 源 代 码 汇 编 程 序 或 编 译 程 序 产 生 的 对 象 生 成 一 个 映 像 的 软 件 。MMU 请 参 阅 存 储 器 管 理 单 元 。Multi-ICE用 于 嵌 入 式 系 统 的 基 于 JTAG 的 多 处 理 器 调 试 工 具 。Multi-ICE 是 一 个 <strong>ARM</strong> 注册 商 标 。美 国 国 家 标 准 协 会 (ANSI)制 定 计 算 机 软 件 和 其 它 行 业 标 准 的 一 个 组 织 。 已 经 由 国 际 标 准 组 织 (InternationalStandards Organization) 所 接 替 。命 令 行 接 口在 命 令 行 提 示 下 输 入 命 令 , 您 可 操 作 任 何 <strong>ARM</strong> 调 试 器 。 这 是 操 作 armsd 的 唯 一方 法 , 但 ADW、ADU 和 AXD 全 部 提 供 另 外 的 图 形 用 户 界 面 。 当 您 必 须 重 复 运行 相 同 顺 序 的 命 令 时 , 命 令 行 接 口 会 十 分 有 用 。 您 可 将 命 令 存 储 到 文 件 中 , 并 将该 文 件 提 交 到 调 试 器 的 命 令 行 接 口 。目 标 (Target) 正 在 运 行 目 标 应 用 程 序 的 实 际 目 标 处 理 器 ( 真 实 的 或 模 拟 的 )。任 何 调 试 会 话 中 的 基 本 对 象 。 是 调 试 系 统 的 基 础 目 标 软 件 将 运 行 的 环 境 。 本 质上 是 真 实 或 模 拟 处 理 器 的 一 个 集 合 。内 联不 使 用 公 共 子 程 序 , 而 是 在 每 次 使 用 时 以 代 码 重 复 执 行 的 功 能 。 放 置 在 C 或C++ 程 序 中 的 汇 编 程 序 代 码 。另 请 参 阅 嵌 入 式 。词 汇 表 - 4 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


词 汇 表PC 请 参 阅 程 序 计 数 器 。PI 浮 动 地 址 。嵌 入 式 作 为 固 件 开 发 的 应 用 程 序 。 汇 编 程 序 函 数 在 C 或 C++ 程 序 中 外 联 使 用 。另 请 参 阅 内 联 。区 映 像 中 一 到 三 个 输 出 段 (RO、 RW 和 ZI) 的 相 连 序 列 。全 局 变 量 映 像 内 全 程 作 用 域 的 变 量 。RAM 随 机 存 取 存 储 器 。RDI 请 参 阅 远 程 调 试 接 口 。<strong>RealView</strong> <strong>ARM</strong>ulator ISS<strong>RealView</strong> <strong>ARM</strong>ulator 指 令 系 统 模 拟 器 (<strong>RealView</strong> <strong>ARM</strong>ulator ISS)。 一 个 可 模 拟各 种 <strong>ARM</strong> 处 理 器 指 令 集 和 体 系 结 构 的 模 块 集 合 。 有 关 详 细 信 息 , 请 参 阅<strong>RealView</strong> <strong>ARM</strong>ulator ISS 1.3 版 用 户 指 南 。RISC 精 简 指 令 系 统 计 算 机 。ROM 只 读 存 储 器 。ROPI 另 请 参 阅 只 读 位 置 无 关 。RPS 参 考 外 围 系 统 。RWPI 请 参 阅 读 写 位 置 无 关 。软 件 开 发 工 具“ 软 件 开 发 工 具 (SDT)” 是 仍 然 受 支 持 的 <strong>ARM</strong> 产 品 , 但 是 已 由 “<strong>ARM</strong>Development Suite (ADS)” 和 <strong>RealView</strong> 编 译 工 具 (RVCT) 所 取 代 。软 件 中 断 (SWI) 使 处 理 器 调 用 程 序 员 指 定 的 子 程 序 的 一 个 指 令 。<strong>ARM</strong> 在 处 理 半 主 机 时 候 用 到 。SDT 请 参 阅 软 件 开 发 工 具 。SP ( 栈 指 针 ) 整 数 寄 存 器 R13。SPSR 保 存 的 程 序 状 态 寄 存 器 。另 请 参 阅 程 序 状 态 寄 存 器 。SWI 参 阅 软 件 中 断 。闪 存 常 用 于 保 存 应 用 程 序 代 码 的 非 易 失 存 储 器 。舍 入 模 式 指 定 如 何 将 浮 点 运 算 精 确 值 舍 入 为 可 以 用 目 标 格 式 表 示 的 值 。<strong>ARM</strong> DUI 0202BSC 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 词 汇 表 - 5


词 汇 表输 出 段具 有 相 同 RO、RW 或 ZI 属 性 的 输 入 段 的 相 连 序 列 。 段 在 更 大 的 、 称 为 区 的 片 段中 组 合 在 一 起 。 多 个 区 组 合 在 一 起 , 成 为 最 终 的 可 执 行 映 像 。输 入 段TCC Thumb C 编 译 程 序 。Thumb 指 令输 入 段 包 含 代 码 或 初 始 化 数 据 , 或 者 描 述 应 用 程 序 启 动 前 必 须 设 为 0 的 存 储 器片 段 。为 Thumb 模 式 的 <strong>ARM</strong> 处 理 器 指 定 执 行 操 作 的 半 字 。 Thumb 指 令 必 须 为 半 字对 齐 。Thumb 状 态 执 行 Thumb (16 位 ) 指 令 的 处 理 器 工 作 在 Thumb 状 态 。调 试 器另 请 参 阅 <strong>ARM</strong> 状 态 。VFP 向 量 浮 点 。位 二 进 制 数 字 。监 视 和 控 制 其 它 应 用 程 序 的 执 行 的 一 个 应 用 程 序 。 通 常 用 于 查 找 应 用 程 序 流 中的 错 误 。无 符 号 数 据 类 型 使 用 标 准 二 进 制 格 式 表 示 一 个 在 0 到 + 2N-1 之 间 的 非 负 整 数 。小 端 (Little-endian) 将 一 个 字 的 最 低 位 字 节 存 储 在 比 最 高 位 字 节 更 高 的 地 址 上 的 存 储 结 构 。协 处 理 器 用 于 某 种 操 作 的 附 加 处 理 器 。 通 常 用 于 浮 点 数 学 计 算 、 信 号 处 理 或 内 存 管 理 。映 像 已 加 载 到 处 理 器 上 可 以 运 行 的 可 执 行 文 件 。异 常 处 理 事 件 。 例 如 , 异 常 可 以 处 理 外 部 中 断 或 未 定 义 的 指 令 。应 用 程 序 设 计 接 口 模 块 或 库 内 函 数 和 过 程 的 语 法 。远 程 调 试 接 口 (RDI)“ 远 程 调 试 接 口 ” 是 调 试 器 和 调 试 代 理 程 序 之 间 的 <strong>ARM</strong> 标 准 过 程 接 口 。 RDI 为调 试 器 与 以 下 程 序 进 行 通 信 提 供 了 一 致 的 方 法 :• 运 行 在 主 机 上 的 调 试 代 理 程 序 ( 例 如 , <strong>ARM</strong>ulator);• 运 行 在 <strong>ARM</strong> 硬 件 上 的 调 试 监 督 程 序 , 可 通 过 通 信 链 路 访 问 该 硬 件 ( 例如 , Angel);• 通 过 硬 件 调 试 支 持 ( 例 如 ,Multi-ICE) 控 制 <strong>ARM</strong> 处 理 器 的 调 试 监 督 程 序 。有 效 范 围 (Scope)在 应 用 程 序 代 码 的 特 定 点 处 的 函 数 和 变 量 的 可 访 问 性 。 拥 有 全 局 范 围 的 符 号 总是 可 访 问 的 。 拥 有 局 部 或 私 有 范 围 的 符 号 只 能 由 同 一 子 程 序 或 对 象 中 的 代 码 来访 问 。词 汇 表 - 6 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


词 汇 表源 文 件 作 为 映 像 编 译 过 程 的 一 部 分 处 理 的 文 件 。 源 文 件 与 映 像 相 关 联 。只 读 位 置 无 关 代 码 和 只 读 数 据 地 址 可 在 运 行 时 动 态 改 变 。主 机 为 另 一 台 计 算 机 提 供 数 据 和 其 它 服 务 的 计 算 机 。转 换 表 存 储 器 中 保 存 的 表 格 , 可 定 义 从 1KB 到 1MB 不 同 大 小 的 存 储 器 区 的 属 性 。字 (Word)字 节 8 位 的 数 据 项 。保 存 在 四 个 相 连 字 节 中 的 值 。 一 个 32 位 的 信 息 单 元 。 除 非 另 外 声 明 , 其 内 容 将被 视 为 无 符 号 整 型 。<strong>ARM</strong> DUI 0202BSC 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 词 汇 表 - 7


词 汇 表词 汇 表 - 8 版 权 所 有 © 2002、 2003 <strong>ARM</strong> Limited。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC


索 引本 索 引 中 的 条 目 按 字 母 顺 序 列 出 , 符 号 和 数 字 显 示 在 末 尾 。 所 给 出 的 参 考 是 按 页 码 提 供 的 。AANSI C 库 1-3ISO C 标 准ar 1-3armar 1-3, 3-12armasm 1-2armcc 1-2armlib 3-9armlink 1-2<strong>ARM</strong>ulator 1-4B半 主 机 3-10编 译 程 序覆 盖 默 认 行 为 3-3默 认 行 为 3-2通 过 命 令 行 使 用 3-2标 准 1-3CC++ 库Rogue Wave 3-10源 代 码 3-10DDWARF2 1-3Dyna Text 1-5EEABI 1-3ELF 1-3Embedded Application Binary Interface1-3FfromELF 1-3分 散 载 入 3-8H汇 编 程 序模 式 更 改 3-5通 过 命 令 行 使 用 3-5K库<strong>ARM</strong> 3-9armar 3-12半 主 机 3-10半 主 机 相 关 性 3-11编 程 不 含 3-11C++ 3-9非 主 机 环 境 3-10<strong>ARM</strong> DUI 0202BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 索 引 - 1


索 引嵌 入 式 3-10RogueWave 3-9支 持 1-2自 定 义 3-12库 管 理 程 序 3-12Z组 件 1-2L联 机 文 档 1-5链 接 程 序语 法 3-7链 接 程 序 选 项通 过 命 令 行 设 置 3-6语 法 3-7M命 令 行编 译 于 3-2开 发 工 具 1-2链 接 程 序 选 项 3-6使 用 汇 编 程 序 3-5RRogue Wave C++ 库 1-2S书 籍Compilers and Libraries Guide viiHTML 1-12汇 编 程 序 指 南 vii开 发 者 指 南 vii链 接 程 序 和 实 用 程 序 指 南 viiW文 档联 机 1-5索 引 - 2 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0202BSC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!