STM32 软件仿真失败 ***** error 65: access violation at 0x40021000 : no ****'read' permission******

来源:互联网 发布:医院果酸换肤 知乎 编辑:程序博客网 时间:2024/06/05 03:20

在使用STM32进行软件仿真时,可能会遇到很多问题,最常见的当然如标题所示:STM32 软件仿真失败 : “****no *‘read’ ,permission****“
还有其他很多问题比如:
* error 35: undefined line number,BS \Template../../User/mp3.c\834, 1”
这是我仿真失败的输出窗口信息
这些都是KEIL不支持STM32软件仿真导致的,那就悲剧了(没有了软件仿真岂不是很心塞),没事的,这里提供两个解决方法:第一个目前只在STM32F103ZE上试过,其他的F4上没有试成功。第二种方法就相对很多STM的MCU都可以用了。(自行选择)
一,直接设置Debug选项(打开魔术棒Options for Target)
如图设置即可(是不是超级简单,这里感谢正点原子的例程提供的帮助)
按方框内设置
第二种方法:添加初始化文件
从网上找到的方法(Keil MDK 4.23 仿真 STM32F4 配置总结与简单解析 (amoBBS 阿莫电子论坛)
http://www.amobbs.com/thread-5611749-1-1.html,感谢楼主,这里我就偷个懒,不编辑了主要放在交大家如何修改Debug.ini–以STM32F103ZE 为例)
我们所需的材料STM32F10X参考手册,CM3编程手册
先给出实例:

map 0x40000000, 0x4000FFFF read write // APB1map 0x40010000, 0x40013FFF read write // APB2map 0x40018000, 0x40030000 read write // AHBmap 0x50000000, 0x5003FFFF read write // AHBmap 0xE0000000, 0xE00FFFFF read write // CORTEX-M3 internal peripheralsFUNC void Setup (void) {  xPSR = 1<<24;  SP   = _RDWORD(0x08000000);  PC   = _RDWORD(0x08000004);   _WDWORD(0xE000ED08, 0x08000000);}Setup();

主要参考下面的存储组织设置即可
1.设置内核的外设存储映像
这句 设置的就是这里map 0xE0000000, 0xE00FFFFF read write // CORTEX-M3 internal peripherals
2.接下来我们设置一下STM32的外设存储映像
这里的保留部分我是直接设置了,测试了一下没有问题

3.添加Debug.ini 文件(把上面的代码放进一个Debug.ini 的新建文件)
这里写图片描述

0 0
原创粉丝点击