RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
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