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 编 译 器3.5.11 代 码 生 成 约 定 选 项-fflag 形 式 的 选 项 指 定 独 立 于 机 器 的 标 志 。 大 多 数 标 志 都 有 正 的 形 式 和 负 的 形 式 ;-ffoo 负 的 形 式 为 -fno-foo。 在 下 表 中 , 仅 列 出 了 一 种 形 式 ( 非 默 认 形 式 )。表 3-15:-fcall-saved-reg-fcall-used-reg-ffixed-reg选 项-fargument-alias-fargument-noalias-fargumentnoalias-global-finstrumentfunctions代 码 生 成 约 定 选 项定 义指 定 参 数 之 间 以 及 参 数 和 全 局 数 据 之 间 的 可 能 关 系 。-fargument-alias 指 定 实 参 ( 形 参 ) 可 互 相 引 用 , 并 可 引 用 全局 存 储 。-fargument-noalias 指 定 实 参 不 能 互 相 引 用 , 但 可 引 用 全 局 存储 。-fargument-noalias-global 指 定 实 参 不 能 互 相 引 用 , 也 不 能引 用 全 局 存 储 。每 种 语 言 都 自 动 使 用 语 言 标 准 所 要 求 的 选 项 。 不 需 要 自 己 使 用 这 些选 项 。将 名 为 reg 的 寄 存 器 视 为 函 数 保 存 的 可 分 配 寄 存 器 。 甚 至 可 在 其 中分 配 临 时 变 量 或 跨 调 用 有 效 的 变 量 。 如 果 函 数 使 用 了 寄 存 器 reg,那 么 采 用 这 种 方 式 编 译 的 函 数 将 保 护 和 恢 复 这 个 寄 存 器 。对 帧 指 针 和 堆 栈 指 针 使 用 这 个 标 志 是 错 误 的 。 将 这 个 标 志 用 于 在 机器 执 行 模 型 中 有 固 定 重 要 作 用 的 其 他 寄 存 器 , 将 产 生 灾 难 性 结 果 。将 这 个 标 志 用 于 保 存 函 数 返 回 值 的 寄 存 器 将 产 生 另 一 种 灾 难 性 结果 。在 所 有 模 块 中 , 这 个 标 志 应 该 一 致 。将 名 为 reg 的 寄 存 器 视 为 被 函 数 调 用 破 坏 的 可 分 配 寄 存 器 。 可 将 这个 寄 存 器 分 配 给 临 时 变 量 或 跨 调 用 无 效 的 变 量 。 采 用 这 个 选 项 编 译的 函 数 不 会 保 护 和 恢 复 寄 存 器 reg。对 帧 指 针 或 堆 栈 指 针 使 用 这 个 选 项 是 错 误 的 。 将 这 个 标 志 用 于 在 机器 执 行 模 型 中 有 固 定 重 要 作 用 的 其 他 寄 存 器 , 将 产 生 灾 难 性 结 果 。在 所 有 模 块 中 , 这 个 标 志 应 该 一 致 。将 名 为 reg 的 寄 存 器 视 为 固 定 寄 存 器 ; 生 成 的 代 码 绝 对 不 能 引 用 它( 除 非 作 为 堆 栈 指 针 、 帧 指 针 或 某 个 其 他 固 定 的 功 能 )。reg 必 须 为 寄 存 器 的 名 字 , 如 -ffixed-w3。编 译 时 在 函 数 的 入 口 和 出 口 生 成 instrumentation 调 用 。 在 函 数 入 口之 后 和 函 数 出 口 之 前 , 将 通 过 当 前 函 数 的 地 址 及 其 调 用 地 址 来 调 用下 面 的 profiling 函 数 。void __cyg_profile_func_enter(void *this_fn, void *call_site);void __cyg_profile_func_exit(void *this_fn, void *call_site);第 一 个 参 数 是 当 前 函 数 的 起 始 地 址 , 可 在 符 号 表 中 查 找 到 。profiling 函 数 应 由 用 户 提 供 。函 数 instrumentation 要 求 使 用 帧 指 针 。 某 些 优 化 级 别 禁 止 使 用 帧 指针 。 使 用 -fno-omit-frame-pointer 将 禁 止 这 一 点 。© 2005 Microchip Technology Inc. DS51284C_CN 第 53 页

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

Saved successfully!

Ooh no, something went wrong!