(一)参考文献:STM32F4 MDK5软件仿真 error : no 'read' permission
(二)转载:
问题描述
CPU:STM32F407
MDK5软件模拟提示没有读写权限,只能一步一步运行。提示代码如下:
*** error 65: access violation at 0x40023800 : no 'read' permission *** error 65: access violation at 0x40023800 : no 'write' permission *** error 65: access violation at 0x40023808 : no 'write' permission *** error 65: access violation at 0x40023800 : no 'read' permission *** error 65: access violation at 0x40023800 : no 'write' permission
解决方法
增加map地址空间权限映射。
根据网络资源介绍方法大致有三种:
1.修改工程配置选项中的debug选项卡,STM32F1系列芯片验证可以正常使用。F4系列芯片不能正常使用。
2.直接在调试页面修改map地址权限映射,正常修改后程序可正常运行。退出调试时需要重新设置,操作不方便。
3.在工程配置选项中的debug选项卡,直接添加正确的Initialization file。(推荐使用)
方法3:
工程文件中新建“debug,ini”文件,在文件中添加map地址权限映射代码
map 0x40000000, 0x40007FFF read write // APB1 map 0x40010000, 0x400157FF read write // APB2 map 0x40020000, 0x4007FFFF read write // AHB1 map 0x50000000, 0x50060BFF read write // AHB2 map 0x60000000, 0x60000FFF read write // AHB3 map 0xE0000000, 0xE00FFFFF read write // CORTEX-M4 internal peripherals
具体的map地址权限映射也可在调试界面中的memory Map选项中查看。
方法2:
调试页面下,在DEBUG选项卡下选择Memory Map 选项如下图