12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

编 译 器 特 有 的 功 能返 回 值__ldrex 内 在 函 数 返 回 从 ptr 指 向 的 内 存 地 址 中 加 载 的 数 据 。错 误为 不 支 持 LDREX 指 令 的 目 标 进 行 编 译 时 , 编 译 器 无 法 识 别 __ldrex 内 在 函 数 。 在这 种 情 况 下 , 编 译 器 将 生 成 警 告 或 错 误 。__ldrex 内 在 函 数 不 支 持 对 双 字 数 据 的 访 问 。 如 果 指 定 了 不 支 持 的 访 问 宽 度 , 编译 器 将 生 成 错 误 。示 例int foo(void){int loc = 0xff;return __ldrex((volatile char *)loc);}使 用 命 令 行 选 项 --cpu=6k 编 译 此 代 码 时 , 将 生 成 以 下 内 容 :||foo|| PROCMOVLDREXBBXENDPr0,#0xffr0,[r0]lr另 请 参 阅• __ldrexd• 第 4-95 页 的 __strex• 第 4-97 页 的 __strexd• 《 汇 编 器 指 南 》 中 第 4-34 页 的 LDREX 和 STREX。4.7.15 __ldrexd此 内 在 函 数 在 编 译 器 生 成 的 指 令 流 中 插 入 LDREXD 指 令 。 它 允 许 在 C 或 C++ 代 码中 使 用 LDREXD 指 令 从 内 存 中 加 载 数 据 。 它 支 持 对 双 字 数 据 的 访 问 。语 法unsigned long long __ldrexd(volatile void *ptr)4-80 Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348BCNon-Confidential, Unrestricted AccessID090708

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

Saved successfully!

Ooh no, something went wrong!