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.

编 译 器 特 有 的 功 能ptr指 向 要 写 入 到 内 存 中 的 数 据 的 地 址 。 若 要 指 定 要 写 入 的 数 据 的 大小 , 请 将 参 数 类 型 转 换 为 相 应 的 整 型 。表 4-11 __strex 内 在 函 数 支 持 的 访 问 宽 度指 令 存 储 的 数 据 大 小 C 类 型 转 换STREXB 无 符 号 字 节 (char *)STREXH 无 符 号 半 字 (short *)STREX 字 (int *)返 回 值__strex 内 在 函 数 返 回 以 下 内 容 :0 如 果 STREX 指 令 执 行 成 功1 如 果 STREX 指 令 已 锁 定 。错 误为 不 支 持 STREX 指 令 的 目 标 进 行 编 译 时 , 编 译 器 无 法 识 别 __strex 内 在 函 数 。 在这 种 情 况 下 , 编 译 器 将 生 成 警 告 或 错 误 。__strex 内 在 函 数 不 支 持 对 双 字 数 据 的 访 问 。 如 果 指 定 了 不 支 持 的 访 问 宽 度 , 编译 器 将 生 成 错 误 。示 例int foo(void){int loc=0xff;return(!__strex(0x20, (volatile char *)loc));}使 用 命 令 行 选 项 --cpu=6k 编 译 此 代 码 时 , 将 生 成 以 下 内 容 :||foo|| PROCMOVMOVSTREXBRSBSMOVCCBXENDPr0,#0xffr2,#0x20r1,r2,[r0]r0,r1,#1r0,#0lr4-96 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!