当前位置:首页 > 技术心得 > 正文内容

error 65: access violation at 0x40021000 : no 'read' permission

xjtudll9年前 (2018-05-11)技术心得11130

经过测试发现,该办法仅仅适合STM32F103,对于STM32F107,即使这样修改,还是提示同样的error的。

我是在Win7 64bit下实验的

以下是参考资料:

https://blog.csdn.net/beready/article/details/24668529

开发环境:keil MDK V5.10
操作系统:windows 7(32位)

问题描述:使用MDK进行软件设计时没有使用ST官方的模板而是手动建立的工程,使用ST官方提供的3.5版本固件库。编译完全通过,在使用软件仿真时出现问题,表现为程序无法跳转到main入口,直接在SystemInit()函数就无法执行,调试窗口出现如标题所示的错误信息:

error 65: access violation at 0x40021000 : no 'read' permission

如下图所示,途中红圈分别表示了代码执行到的位置及相应的错误信息

20140428212304656

网络上查找解决方案同时对比ST提供的3.5版本固件库中的工程模板,发现是工程配置选项中的debug选项卡的dialog dll和对应的parameter配置出了问题。选中MCU后默认的配置如下图:

20140428212637312

可以看到dialog dll默认配置为DCM.DLL,而parameter默认配置为-pCM3,该种配置无法进行正常的仿真调试。

正确配置应该为dialog dll:DARMSTM.dll parameter:-pSTM32F103C8

这两个参数是根据你使用的MCU不同而不同的,例如本工程使用的MCU为STM系列,那么在dialog DLL选项中就应该使用DARMSTM.dll,名字中的STM就是指厂商,参数则是具体的MCU芯片型号,本项目使用STM32F103C8T6,因此选择为STM32F103C8,如下图所示:

20140428213441203

为何使用的是STM32F103C8T6,参数却只能是STM32F103C8,这个原因是因为根据ST公司的MCU命名规则,到C8这个位置就已经完全规定了仿真所需要的所有参数,包括cpu频率,ram容量,flash容量,外设资源等内容。型号中后边的部分都已经和仿真无关了,例如后边的名字主要代表了MCU的封装,工作温度等。官方命名规则如下图:

20140428214034765

当然还有一个更加直接的原因是DARMSTM.DLL这个动态链接库文件中没有详细的MCU型号,我们可以通过使用工具打开动态链接库文件查看证明,如下图所示,图中可以清楚的看到一个MCU的型号只有11个字符,不包括后边的其他参数字符。

20140428214338609

总结:该问题的产生,归根到底还是keil IDE的问题,正常的情况,应该是通过工程向导建立工程的时候,配置参数就自动使用该MCU应该使用的dialogdll及相关参数。不得不感叹,KEIL有的时候也很傻啊!!

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/499/

标签: keil
分享给朋友:

“error 65: access violation at 0x40021000 : no 'read' permission” 的相关文章

销售订单序时簿中过滤界面中,【名称】的下拉列表中无法选择到【购货单位】,也就是无法按【购货单位】过滤销售订单?

【操作步骤】   1、使用有权限的用户登录K3主界面后,单击左上角【系统】→【K/3BOS】,输入用户名及密码,登入账套,依次单击打开【供应链】→【销售管理】,找出业务单据销售订单并双击打开;   2、单击菜单【编辑】-【序时簿设置】,找到字段【购货单位$】,...

IAR如何生成Hex文件

IAR如何生成Hex文件

MSP430在用JTAG下载的时候,Hex文件是用不上的。但是如果用Proteus仿真的话(只有Proteus 7.6及其以上版本才支持MSP430仿真),只支持Hex文件仿真,所以有必要输出Hex文件。 打开IAR的工程选项,选中左边栏的Linker,如图所示。 勾中【Output file】...

Windows 2008 Server R2增量备份

Windows 2008 Server R2增量备份

Windows 2008 server R2在默认情况下都是完整备份,如果这么搞的话,空间很快就不够用了。 其实windows 2008 r2是有增量备份功能的,只不过这个功能隐藏的太深了。 Windows Server Backup -> 配置性能设置 -> 优化备份性能 ->...

远程桌面登录没有许可证解决方案(强行跳过)

远程桌面登录没有许可证解决方案(强行跳过)

在远程连接时有时会出现没有提供许可证、远程会话已断开问题。 这时通过命令行   mstsc /v: ip /admin  即可进行连接 ip为远程桌面ip。 举例:mstsc /v: 201.201.201.66 /admin...

windows server 2008R2 初始密码策略:老提示密码不符合策略

参考资料: http://zhidao.baidu.com/link?url=52XEZ-w-pIcmk2S-UkB8V1b9NOHJm3kBPECZHwD6WhT7DxofLXu03UsCFN_DqEJ4KJ6UtlL-b7a4c-yNarXfCa 问题: windows...

深刻认识差模电压和共模电压

原文作者:佚名 文章来源:http://blog.csdn.net/ywf861029/archive/2009/10/05/4633775.aspx 我们需要的是整个有意义的“输入信号”,要把两个输入端看作“整体”。 就像初中时平面坐标需要用 x,y 两个数表示,而到了高中或大学就只要用...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。