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.

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

否 则 , 不 必 使 用 /interwork 选 项 。 例 如 , 目 标 文 件 中 可 能 包 括 以 下 不 需 要 /interwork<br />

选 项 的 内 容 :<br />

• 可 由 异 常 中 断 的 Thumb 代 码 。 异 常 强 制 处 理 器 进 入 <strong>ARM</strong> 状 态 , 因 而 不 需<br />

要 胶 合 代 码 。<br />

• 可 处 理 从 Thumb 代 码 发 生 的 异 常 的 处 理 代 码 。 其 返 回 不 需 要 胶 合 代 码 。<br />

• 调 用 其 它 文 件 <strong>ARM</strong> 子 例 程 的 Thumb 代 码 ( 其 交 互 操 作 返 回 序 列 属 于 被 调<br />

用 程 序 , 而 不 是 调 用 程 序 )。<br />

• 调 用 其 它 文 件 Thumb 子 例 程 的 <strong>ARM</strong> 代 码 ( 其 交 互 操 作 返 回 序 列 属 于 被 调<br />

用 程 序 , 而 不 是 调 用 程 序 )。<br />

4.1.3 检 测 交 互 操 作 调 用<br />

在 被 调 用 例 程 不 是 为 了 交 互 操 作 而 编 译 的 情 况 下 , 如 果 检 测 到 直 接 的 <strong>ARM</strong>/Thumb<br />

交 互 操 作 调 用 , 则 链 接 程 序 生 成 一 个 错 误 。 为 了 交 互 操 作 , 必 须 重 新 编 译 被 调 用 的<br />

例 程 。<br />

例 如 , 示 例 4-1 说 明 了 当 第 4-11 页 的 示 例 4-3 中 的 <strong>ARM</strong> 例 程 在 没 有 --apcs /interwork<br />

选 项 的 情 况 下 被 编 译 和 链 接 时 产 生 的 错 误 。<br />

示 例 4-1<br />

Error: L6239E: Cannot call <strong>ARM</strong> symbol 'arm_function' in non-interworking object<br />

armsub.o from THUMB code in thumbmain.o(.text)<br />

这 些 类 型 错 误 表 示 , 在 从 目 标 模 块 目 标 到 例 程 符 号 的 过 程 中 ,<strong>ARM</strong> 到 Thumb 或<br />

Thumb 到 <strong>ARM</strong> 的 交 互 操 作 调 用 被 检 测 出 来 , 但 是 , 被 调 用 的 例 程 尚 未 为 交 互 操<br />

作 而 被 编 译 。 必 须 重 新 编 译 包 含 该 符 号 的 模 块 , 并 指 定 --apcs /interwork 选 项 。<br />

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

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

Saved successfully!

Ooh no, something went wrong!