您的位置:首页 > 其它

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

2016-11-16 11:10 483 查看


写在前面:这篇文章纯粹是用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访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stm32 keil 调试
相关文章推荐