*** Error 65: Access violation at 0x00000004 : No 'write' permission

写在前面:这篇文章纯粹是用google翻译来的,方便不E文水准和我差不多的童鞋,如有不通顺的地方还请自己琢磨

原文地址http://www.keil.com/support/docs/814.htm

症状

我的项目包括访问I使用绝对内存地址的变量。在调试的μVision生成以下错误每当我试图写变量:

***错误65:访问冲突在0x00000004:没有“写”权限

我已指定该存储区的连接,但我仍然收到此错误。

原因

当的μVision调试加载一个可执行程序,它创建使用来自该程序的程序和数据段的存储映像。代码段被标记为可执行的同时数据段被标记为读/写。所有其他的内存是未映射的,因此,没有标明任何类型的访问。

在调试的μVision检查所有的内存访问是在你的C程序中定义的对象进行的。对于任何访问这是一个定义的C对象外,在调试的μVision产生  错误65:访问冲突  的消息。

默认情况下,调试程序只允许存储器访问有效的数据对象。这对查找未初始化或不正确初始化的指针,例如有用的。通常情况下,有一个编程错误,当您尝试访问意想不到的位置。

解析度

启用绝对内存访问使用存储区域  MAP  调试命令或  调试-内存映射  对话框。定义所有的内存范围,你的程序被允许访问。确保每个范围以符合您的实际硬件设置权限(读,写,执行)。

你可以把所需的映射命令到可以下进入调试器INI文件  项目-目标>选项- >调试- >初始化文件。例如,一个这样的文件的内容可以是:

MAP 0xF800,0xF8FF读写//允许IO空间R / W访问
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值