01.12.2014 Views

RealView Compilation Tools Developer Guide - ARM Information ...

RealView Compilation Tools Developer Guide - ARM Information ...

RealView Compilation Tools Developer Guide - ARM Information ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

使 用 过 程 调 用 标 准<br />

3.7 读 写 位 置 无 关<br />

如 果 程 序 的 所 有 读 写 段 都 是 位 置 无 关 的 , 则 该 程 序 是 读 写 位 置 无 关 的 (RWPI)。<br />

RWPI 段 通 常 是 位 置 无 关 数 据 (PID)。<br />

选 择 RWPI 选 项 可 以 避 免 将 数 据 固 定 在 内 存 中 特 定 的 位 置 。 这 对 于 必 须 为 可 重 入<br />

函 数 而 多 次 实 例 化 的 数 据 尤 其 有 用 。<br />

3.7.1 可 重 入 函 数<br />

可 重 入 函 数 可 以 同 时 成 为 多 个 进 程 的 线 程 。 每 个 进 程 有 其 各 自 的 该 函 数 读 写 段<br />

副 本 。 每 个 副 本 用 不 同 的 静 态 基 本 寄 存 器 编 址 。<br />

3.7.2 RWPI 的 寄 存 器 用 法<br />

寄 存 器 r9 是 静 态 基 址 sb。 当 调 用 任 何 外 部 可 见 函 数 时 , 它 必 须 指 向 适 当 的 静 态<br />

数 据 段 基 址 。<br />

在 不 使 用 sb 的 函 数 中 , 可 以 将 r9 用 于 其 它 用 途 。 如 果 这 样 做 , 您 必 须 在 进 入 函<br />

数 时 保 存 sb 的 内 容 , 并 且 在 退 出 之 前 恢 复 它 。 在 调 用 任 何 外 部 函 数 之 前 , 也 必<br />

须 恢 复 它 。<br />

在 所 有 其 它 方 面 , 不 论 使 用 或 未 使 用 RWPI, 寄 存 器 的 用 法 相 同 ( 请 参 阅 第 3-4<br />

页 的 寄 存 器 角 色 和 名 称 )。<br />

3.7.3 位 置 无 关 数 据 编 址<br />

RWPI 段 可 以 在 首 次 使 用 之 前 重 新 定 位 。 RWPI 段 中 符 号 的 地 址 如 下 计 算 :<br />

1. 链 接 程 序 从 段 中 一 个 固 定 位 置 计 算 只 读 偏 移 。 按 照 惯 例 , 该 固 定 位 置 是 程<br />

序 的 最 低 地 址 RWPI 段 的 第 一 个 字 节 。<br />

2. 运 行 时 , 它 作 为 偏 移 添 加 到 静 态 基 本 寄 存 器 sb 的 内 容 上 。<br />

3.7.4 编 写 汇 编 语 言 RWPI<br />

通 过 sb 值 加 上 一 个 固 定 ( 只 读 ) 偏 移 , 构 建 从 只 读 段 到 RWPI 段 的 引 用 ( 请 参<br />

阅 <strong>RealView</strong> 编 译 工 具 2.0 版 汇 编 程 序 指 南 中 指 令 参 考 一 章 里 的 DCDO)。<br />

<strong>ARM</strong> DUI 0203BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 3-15

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

Saved successfully!

Ooh no, something went wrong!