STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission

==================================================================

该源文档来自 https://www.cnblogs.com/houlinfeng/p/10382025.html

=================================================================

本人使用芯片为 STM32F103C8 可以参照过程选取不同参数进行修改

问题描述

CPU:STM32F103C8
MDK5软件模拟提示没有读写权限,只能一步一步运行。提示代码如下:

 *** error 65: access violation at 0x40011800 : no 'read' permission

根本原因是:map地址空间权限映射有问题。部分地址空间没有读写的权限,造成程序不能自动运行。

解决方法

增加map地址空间权限映射。
根据网络资源介绍方法大致有三种:
1.修改工程配置选项中的debug选项卡,STM32F103ZE(正点原子)系列芯片验证可以正常使用。F103C8系列芯片不能正常使用。
2.直接在调试页面修改map地址权限映射,正常修改后程序可正常运行。退出调试时需要重新设置,操作不方便。
3.在工程配置选项中的debug选项卡,直接添加正确的Initialization file。(推荐使用)

 

方法1:

主要根据工程芯片型号配置相关参数
STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission

具体芯片对应的文件 点击keil -file-device database 

STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission

 

STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission

 

该行参数即为芯片对应的 sim参数

 

 

方法2:

调试页面下,在DEBUG选项卡下选择Memory Map 选项如下图
STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission
可根据错误提示进行map地址映射添加。

方法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

STM32F103C8软件仿真 报错 *** error 65: access violation at 0x40011800 : no 'read' permission
具体的map地址权限映射也可在调试界面中的memory Map选项中查看。

上一篇:laravel 数据库迁移时报错


下一篇:《使用Python和Dask实现分布式并行计算》5. Cleaning and transforming DataFrames(清洗和转换DataFrame)