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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ARM</strong> 和 Thumb 交 互 操 作<br />

4.3.2 交 互 操 作 的 基 本 规 则<br />

4.3.3 使 用 同 一 函 数 的 两 个 副 本<br />

下 列 规 则 应 用 于 应 用 程 序 之 内 的 交 互 操 作 :<br />

• 必 须 使 用 --apcs /interwork 命 令 行 选 项 , 编 译 任 何 包 含 可 能 返 回 其 它 指 令<br />

集 的 C 或 C++ 模 块 。<br />

• 必 须 使 用 --apcs /interwork 命 令 行 选 项 , 编 译 任 何 包 含 可 能 间 接 或 虚 拟 调<br />

用 其 它 指 令 集 函 数 的 C 或 C++ 模 块 。<br />

• 永 远 不 要 从 其 它 状 态 的 代 码 中 间 接 调 用 非 交 互 操 作 代 码 , 如 使 用 函 数 指 针<br />

的 调 用 。<br />

• 如 果 输 入 对 象 包 含 Thumb 代 码 , 则 链 接 程 序 选 择 Thumb 运 行 时 的 库 。 这<br />

些 为 交 互 操 作 而 编 译 。<br />

如 果 在 链 接 程 序 命 令 行 中 显 式 地 指 定 自 己 的 库 中 的 一 个 库 , 必 须 确 保 它 是<br />

一 个 合 适 的 交 互 操 作 库 。<br />

可 以 有 两 个 名 字 相 同 的 函 数 , 一 个 编 译 成 <strong>ARM</strong>, 另 一 个 编 译 成 Thumb, 但 是 ,<br />

不 建 议 这 样 做 。 在 绝 大 多 数 情 况 下 , 这 并 不 能 明 显 地 增 加 性 能 。<br />

备 注<br />

两 个 版 本 的 函 数 必 须 用 --apcs /interwork 选 项 进 行 编 译 。 这 是 因 为 不 能 保 证 只 从<br />

Thumb 状 态 调 用 Thumb 版 本 的 函 数 和 只 从 <strong>ARM</strong> 状 态 调 用 <strong>ARM</strong> 版 本 的 函 数 。<br />

链 接 程 序 启 用 重 复 定 义 , 其 条 件 是 一 个 定 义 定 义 Thumb 例 程 , 另 一 个 则 定 义<br />

<strong>ARM</strong> 例 程 。<br />

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

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

Saved successfully!

Ooh no, something went wrong!