MDK调试问题*** error 65: access violation at 0x00000000 : no 'execute/read' permissi

四月小太阳 2014-05-18 11:55:04
今天使用mdk调试的时候发现这个bug,求帮忙
*** error 65: access violation at 0x00000000 : no 'execute/read' permission


这是代码
main.c文件内容:




#include<s3c2440.h>
#include"timer.h"
#include"led.h"

int main()
{
int flag=0;
Led_Init();
Timer0_Init();
{
if(SRCPND&(1<<10))
{
flag=!flag;
SRCPND|=(1<<10);
}
if(1==flag)


{
Led1_On();
}
else
{
Led1_Off();
}
}
}



timer.c文件内容



#include<s3c2440.h>
#include"timer.h"



void Timer0_Init(void)
{
TCFG0&=~(0xff);
TCFG0|=99;

TCFG1&=~(0xf);
TCFG1|=0x02;

TCNTB0=62500;

TCON|=(1<<1);
TCON=0x09;
}

timer.h文件内容:




#ifndef __TIMER_H__
#define __TIMER_H__


void Timer0_Init(void);

#endif

led.c文件内容:




#include<s3c2440.h>
#include"led.h"
void Led_Init(void)
{
GPBCON&=~((3<<10)|(3<<12)|(3<<14)|(3<<16));
GPBCON|=((1<<10)|(1<<12)|(1<<14)|(1<<16));

GPBUP&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));

GPBDAT|=((1<<5)|(1<<6)|(1<<7)|(1<<8));

led.h文件内容:


#ifndef __LED_H__
#define __LED_H__

#define Led1_On() {GPBDAT&=(~(1<<5));}
#define Led1_Off() {GPBDAT|=(1<<5);}
#define Led2_On() {GPBDAT&=(~(1<<6));}
#define Led2_Off() {GPBDAT|=(1<<6);}
#define Led3_On() {GPBDAT&=(~(1<<7));}
#define Led3_Off() {GPBDAT|=(1<<7);}
#define Led4_On() {GPBDAT&=(~(1<<8));}
#define Led4_Off() {GPBDAT|=(1<<8);}
/***************************************************************
* 函数名称:void Led_Init(void)
* 参数说明:无
* 全局变量:无
* 返 回 值:无
* 功 能:led初始化函数,使4个led初始化为灭
* 的输入时钟。
***************************************************************/
void Led_Init(void);

#end


#end
...全文
6282 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
璞小坤 2016-06-12
  • 打赏
  • 举报
回复
针对楼上问题回复:在菜单命令Debug下有Memory Map命令,点开就可以设置了(进入调试之后)
qq_25102923 2015-10-19
  • 打赏
  • 举报
回复
请问楼主是怎么解决的,请详解?
qaz1234562075 2015-05-27
  • 打赏
  • 举报
回复
我也遇到同样问题了,请问怎么添加范围呢?
shangso 2014-10-04
  • 打赏
  • 举报
回复
引用 4 楼 u013988485 的回复:
[quote=引用 3 楼 cumtgao 的回复:] *** error 65: access violation at 0x00000000 : no 'execute/read' permission 没有贴出65行是什么代码? 应该是程序本身哪里少写了;号,
问题已经解决,谢谢咯 debug ,然后点memory map添加范围就可以了[/quote] 具体是添加什么范围呢?我也遇到这问题了 添加范围之后提示无效的地址
四月小太阳 2014-05-22
  • 打赏
  • 举报
回复
引用 3 楼 cumtgao 的回复:
*** error 65: access violation at 0x00000000 : no 'execute/read' permission 没有贴出65行是什么代码? 应该是程序本身哪里少写了;号,
问题已经解决,谢谢咯 debug ,然后点memory map添加范围就可以了
四月小太阳 2014-05-22
  • 打赏
  • 举报
回复
引用 5 楼 cumtgao 的回复:
[quote=引用 4 楼 u013988485 的回复:] [quote=引用 3 楼 cumtgao 的回复:] *** error 65: access violation at 0x00000000 : no 'execute/read' permission 没有贴出65行是什么代码? 应该是程序本身哪里少写了;号,
问题已经解决,谢谢咯 debug ,然后点memory map添加范围就可以了[/quote] 恭喜,往往自己亲自解决的问题才是真的收获。[/quote] 嗯嗯,有三种方法,我只搞懂第一个- -~ 还要慢慢琢磨
wesley 2014-05-22
  • 打赏
  • 举报
回复
引用 4 楼 u013988485 的回复:
[quote=引用 3 楼 cumtgao 的回复:] *** error 65: access violation at 0x00000000 : no 'execute/read' permission 没有贴出65行是什么代码? 应该是程序本身哪里少写了;号,
问题已经解决,谢谢咯 debug ,然后点memory map添加范围就可以了[/quote] 恭喜,往往自己亲自解决的问题才是真的收获。
wesley 2014-05-21
  • 打赏
  • 举报
回复
*** error 65: access violation at 0x00000000 : no 'execute/read' permission 没有贴出65行是什么代码? 应该是程序本身哪里少写了;号,
四月小太阳 2014-05-20
  • 打赏
  • 举报
回复
引用 1 楼 mome11 的回复:
度娘分析如下: 1.在void main()函数中先加一个大循环while(1){},然后把你的程序放到大循环里。 2.你的代码入口点指定了吗?
在main()中我已指定了一个while(1)了, 代码入口点怎么看呢? 生成的.bin文件运行正确,但是不能改 也就是说,led1可以亮,但是改成led2就不能亮了
默寞 2014-05-19
  • 打赏
  • 举报
回复
度娘分析如下: 1.在void main()函数中先加一个大循环while(1){},然后把你的程序放到大循环里。 2.你的代码入口点指定了吗?

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧