10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MPLAB <strong>C30</strong> C 编 译 器 运 行 时 环 境4.4 代 码 段 和 数 据 段段 是 指 占 用 dsPIC 器 件 存 储 器 中 连 续 地 址 的 可 定 位 代 码 或 数 据 块 。 在 任 何 给 定 的 目 标文 件 中 , 通 常 都 有 几 个 段 。 例 如 , 一 个 文 件 中 可 能 包 含 一 个 程 序 代 码 段 、 一 个 未 初 始化 数 据 段 及 其 他 段 。除 非 通 过 段 属 性 ( 关 于 段 属 性 的 信 息 , 参 见 第 2.3 节 “ 关 键 字 差 别 ”) 指 定 , 否 则 ,MPLAB <strong>C30</strong> 编 译 器 将 代 码 和 数 据 存 放 在 默 认 的 段 中 。 所 有 由 编 译 器 生 成 的 可 执 行 代 码都 被 分 配 到 名 为 .text 的 段 中 , 而 数 据 则 根 据 数 据 类 型 分 配 在 不 同 的 段 中 , 见表 4-1。表 4-1:编 译 器 生 成 的 数 据 段已 初 始 化未 初 始 化变 量 ROM 中 的 常 量 RAM 中 的 常 量 变 量near .ndata .const .ndconst .nbssfar .data .const .dconst .bss下 面 列 出 了 每 个 默 认 的 段 , 并 描 述 了 存 储 到 段 中 的 信 息 的 类 型 。.text可 执 行 代 码 分 配 到 .text 段 中 。.data具 有 far 属 性 的 已 初 始 化 变 量 分 配 到 .data 段 中 。 当 选 择 大 数 据 存 储 模 型 时 ( 即 使用 -mlarge-data 命 令 行 选 项 时 ), 这 是 已 初 始 化 变 量 的 默 认 位 置 。.ndata具 有 near 属 性 的 已 初 始 化 变 量 分 配 到 .ndata 段 中 。 当 选 择 小 数 据 存 储 模 型 时 ( 即使 用 默 认 的 -msmall-data 命 令 行 选 项 时 ), 这 是 已 初 始 化 变 量 的 默 认 段 。.const当 使 用 默 认 的 -mconst-in-code 命 令 行 选 项 时 , 常 量 值 , 如 字 符 串 常 量 和 const限 定 的 变 量 , 分 配 到 .const 段 中 。 这 种 段 位 于 程 序 存 储 器 中 并 通 过 PSV 窗 口 访 问 。还 可 以 通 过 段 属 性 , 不 需 要 在 命 令 行 中 使 用 -mconst-in-code 选 项 , 将 变 量 存 放 到.const 段 中 :int i __attribute__((space(auto_psv)));© 2005 Microchip Technology Inc. DS51284C_CN 第 61 页

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

Saved successfully!

Ooh no, something went wrong!