• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言中 “_at()” 特殊地址定位详解

C语言中 “_at()” 特殊地址定位详解

作者:木十化 字体:[增加 减小] 来源:互联网 时间:2017-05-28

木十化 通过本文主要向大家介绍了C语言中 “_at()” 特殊地址定位详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言中 “_at()” 特殊地址定位详解

在keil里面,有一个特殊地址定位的指令,就是将一个变量或常量定位到一个指定的地址上面

指令为 __at ,使用方法如下

int variable __at(0x8000) = 100;
</div>

意为将variable变量定位到0x8000这个地址。

指令的目的是告诉链接器将指定地址定位到某个地址里面,在使用该功能的时候需要注意一点的是,地址的范围需要符合单片机的datasheet给出的地址映射表,

注意,如果地址超出了flash的最大范围,程序将无法得到这个值,例如一个256Kflash的芯片,在使用功能__at指令的时候,地址就不要超过256*1024了,否则你是找不到这个变量的。

下面以MB9AF310系列芯片为例,讲一下关于芯片的flash在内存中的映射,

如图,flash被映射到了0x00000000这个地址上,以0x00100000结束,但是仍然需要看具体芯片的flash是多大的,这个地址只是310系列芯片的地址映射,如果超出了实际的地址,仍然不能找到变量。

keil的链接器最后会把变量放到生成文件的相应地址中去,在烧录的时候,如果是BIN文件,文件的字节地址会和flash的地址一一对应。用户定义的变量将被烧录到相应的flash的物理地址中。以上都是在没有MMU的情况的关于地址映射的解释,如果启用了MMU,情况也许会不一样,毕竟多了一层虚拟地址,实际上还能不能使用__at指令,我也不知道,后续笔者会继续钻研,更多关于__at指令的说明,可以直接在keil的帮助文件中找到。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28C++使struct对象拥有可变大小的数组(详解)
  • 2017-08-30C++ 使用Json封装数据和解析数据
  • 2017-05-28C语言关系运算符实例详解
  • 2017-05-28c++ STL set_difference set_intersection set_union 操作
  • 2017-05-28详解C++中的函数调用和下标以及成员访问运算符的重载
  • 2017-05-28c++几种基本的插入排序(图文)
  • 2017-05-28C++实现读取图片长度和宽度
  • 2017-05-28使用C++递归求解跳台阶问题
  • 2017-05-28C语言二分查找算法及实现代码
  • 2017-05-28基于堆的基本操作的介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 浅析C语言中typeof关键字用法
    • 从汇编看c++中变量类型的深入分析
    • C++中求旋转数组中的最小数字(经典面试题)
    • 对比C语言中getc()函数和ungetc()函数的使用
    • C/C++动态分配与释放内存的区别详细解析
    • c++遍历lua table示例
    • 有关C++中类类型转换操作符总结(必看篇)
    • VC随机函数srand和rand用法
    • C++检查某个文件或目录是否存在的函数
    • c语言实现的带通配符匹配算法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有