12.07.2015 Views

RealView - ARM Information Center

RealView - ARM Information Center

RealView - ARM Information Center

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

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

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

使 用 基 本 链 接 器 功 能3.3.8 胶 合 代 码 生 成胶 合 代 码 是 链 接 器 生 成 的 一 小 段 代 码 并 将 插 入 到 您 的 程 序 中 。 当 跳 转 涉 及 超 过当 前 状 态 的 跳 转 范 围 的 目 标 时 ,armlink 必 须 生 成 胶 合 代 码 。对 于 <strong>ARM</strong>,BL 指 令 的 范 围 为 32MB, 对 于 Thumb-2 为 16MB, 对 于 Thumb 为4MB。 因 此 , 胶 合 代 码 可 以 通 过 变 成 指 令 的 中 间 目 标 来 扩 展 跳 转 范 围 , 然 后 将PC 设 置 为 目 标 地 址 。 如 果 混 合 使 用 <strong>ARM</strong> 和 Thumb, 则 胶 合 代 码 也 会 更 改 处 理器 状 态 。armlink 支 持 以 下 胶 合 代 码 类 型 :• <strong>ARM</strong> 跳 转 到 <strong>ARM</strong>• <strong>ARM</strong> 跳 转 到 Thumb( 交 互 操 作 胶 合 代 码 )• Thumb 跳 转 到 <strong>ARM</strong>( 交 互 操 作 胶 合 代 码 )• Thumb 跳 转 到 Thumb。armlink 为 每 个 胶 合 代 码 创 建 一 个 名 为 Veneer$$Code 的 输 出 节 。 仅 当 其 他 现 有 胶合 代 码 都 不 能 满 足 需 求 时 才 会 生 成 胶 合 代 码 。 如 果 两 个 输 入 节 包 含 目 标 相 同 的长 跳 转 , 则 只 生 成 一 个 胶 合 代 码 。 仅 当 两 个 节 都 可 以 到 达 该 胶 合 代 码 时 才 以 这种 方 式 共 享 胶 合 代 码 。如 果 您 使 用 <strong>ARM</strong>v4T, 则 当 跳 转 涉 及 <strong>ARM</strong> 和 Thumb 之 间 的 状 态 更 改 时 ,armlink会 生 成 胶 合 代 码 。 在 <strong>ARM</strong>v5 及 更 高 版 本 中 , 使 用 BLX 指 令 。胶 合 代 码 共 享您 可 以 使 用 命 令 行 选 项 --no_veneershare 来 指 定 不 共 享 胶 合 代 码 。 这 会 将 已 创 建的 胶 合 代 码 节 的 所 有 权 分 配 给 创 建 该 胶 合 代 码 的 对 象 , 从 而 使 您 能 够 从 分 散 加载 描 述 文 件 中 的 特 定 对 象 选 择 胶 合 代 码 , 例 如 :LR 0x8000{ER_ROOT +0{object1.o(Veneer$$Code)}}使 用 胶 合 代 码 共 享 时 , 不 能 指 定 所 属 对 象 。 因 此 , 使 用 --no_veneershare 选 项 可以 提 供 更 加 一 致 的 映 像 布 局 。 这 是 以 显 著 增 加 代 码 大 小 为 代 价 的 。3-18 版 权 所 有 © 2007 <strong>ARM</strong> 公 司 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0349AC

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

Saved successfully!

Ooh no, something went wrong!