RealView - ARM Information Center
RealView - ARM Information Center
RealView - ARM Information Center
- 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.
使 用 分 散 加 载 描 述 文 件链 接 器 可 以 使 用 两 种 方 法 , 将 某 个 节 放 在 特 定 地 址 中 :• 可 以 使 用 以 下 节 描 述 在 所 需 地 址 中 创 建 执 行 区 : 仅 选 择 一 个 节 。• 对 于 特 别 命 名 的 节 , 链 接 器 可 以 从 节 名 称 中 获 取 放 置 地 址 。 这 些 特 别 命 名的 节 称 为 __at 节 。 有 关 详 细 信 息 , 请 参 阅 第 5-36 页 的 使 用 __at 节 将 节 放 在特 定 地 址 中 。要 将 函 数 或 变 量 放 在 特 定 地 址 中 , 必 须 将 其 放 在 自 己 的 节 中 。 可 以 使 用 几 种 方法 来 执 行 此 操 作 :• 将 函 数 或 数 据 项 放 在 其 自 己 的 源 文 件 中 。• 可 以 使 用 --split_sections 编 译 器 选 项 为 每 个 函 数 生 成 目 标 文 件 。 请 参 阅《 编 译 器 参 考 指 南 》 中 的 第 2-83 页 的 --split_sections。对 于 一 些 函 数 , 此 选 项 将 稍 微 增 大 代 码 的 尺 寸 , 因 为 它 减 少 了 函 数 之 间 共享 地 址 、 数 据 和 字 符 串 文 字 的 可 能 性 。 但 是 , 通 过 指 定 armlink --remove 以允 许 链 接 器 删 除 未 使 用 的 函 数 , 可 有 助 于 减 小 最 终 映 像 的 总 体 大 小 。• 可 以 使 用 __attribute__((section(înameî))) 创 建 多 个 已 命 名 的 节 。 请 参 阅《 编 译 器 参 考 指 南 》 中 的 第 4-44 页 的 __attribute__((section))。• 使 用 汇 编 语 言 中 的 AREA 指 令 。 在 汇 编 代 码 中 , 最 小 的 可 定 位 单 元 是 AREA。有 关 详 细 信 息 , 请 参 阅 《 汇 编 程 序 指 南 》。显 式 地 使 用 分 散 加 载 放 置 已 命 名 的 节示 例 5-10 中 的 分 散 加 载 描 述 文 件 将 :• 初 始 化 代 码 放 在 地 址 0x0 中 , 其 后 是 其 余 RO 代 码 和 除 data.o 对 象 中 的 RO数 据 之 外 的 所 有 RO 数 据• 所 有 全 局 RW 变 量 放 在 RAM 的 0x400000 中• data.o 的 RO-DATA 表 放 在 固 定 地 址 0x1FF00 中 。示 例 5-10 节 放 置LR1 0x0 0x10000{ER1 0x0 0x2000; Root Region, containing init code{ ; place init code at exactly 0x0init.o (Init, +FIRST)* (+RO) ; rest of code and read-only data}5-34 版 权 所 有 © 2007 <strong>ARM</strong> 公 司 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0349AC