Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission

 

目录

1.问题现象

2.解决方案

3.总结


1.问题现象

Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission_第1张图片

或者 

Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission_第2张图片

2.解决方案

*** error 65: access violation at 0x4002100C : no 'write' permission这种是最常见的,keil5将旧版本文件转换后出现的错误,需要在debug选项中改动两处:

Dialog DLL改为  DARMSTM.DLL

Parameter改为   -pSTM32F103ZE(此项根据自己型号而定)

Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission_第3张图片

 

 *** error 65: access violation at 0x20005000 : no 'write' permission这种情况比较少通常是自己粗心忘了给变量初始化,我的报错例子:

 Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission_第4张图片

问题在于没有正确初始化变量handle,导致访问了一个未知的内存地址,从而引发了"access violation"错误。

修改:将队列句柄赋值给handle变量。

Keil Debug——*** error 65: access violation at 0x20005000 : no ‘write‘ permission_第5张图片

 

3.总结

当遇到"*** error 65: access violation at 0x20005000 : no 'write' permission"类似错误时,这通常表示程序试图写入一个没有写入权限的内存地址。

最常见的错误原因是keil5将旧版本文件转换后出现的错误,需要在debug选项中改动两处:

Dialog DLL改为  DARMSTM.DLLParameter改为   -pSTM32F103ZE(此项根据自己型号而定)

这个错误可能还有其他原因:

1. 检查内存保护设置:请确保您的程序没有试图写入受保护的内存区域。某些嵌入式系统可能使用内存保护机制,如存储器保护单元(MPU)或写保护寄存器。请检查您的系统文档或参考手册,了解如何正确配置内存保护设置。

2. 检查变量初始化:如果您的程序在使用某个变量之前没有正确初始化它,可能会导致访问冲突。请确保您的变量在使用之前都被正确初始化,特别是指针变量。

3. 检查内存分配:如果您使用了动态内存分配(如malloc函数),请确保您正确地分配和释放内存。内存泄漏或释放已释放内存的情况可能导致访问冲突。

4. 检查函数调用参数:请确保您传递给函数的参数是有效的,并且符合函数的预期类型和范围。传递无效的参数可能导致访问冲突。

 

 参考博客:keil 5的软件仿真遇到的问题:error 65: access violation at 0x40021000 : no 'read' permission的解决办法_keil5错误65-CSDN博客Keil软件仿真STM32时出现“no ‘write‘ permission”,“no ‘read‘ permission ”的错误_no 'write' permission-CSDN博客

你可能感兴趣的:(Keil,Debug,单片机,stm32,物联网,编辑器,嵌入式硬件,51单片机)