点击跳转1 点击跳转2
我安装了keil5后,发现软件仿真总是有问题。总有错误:*** error 65: access violation at 0x40021000 : no 'read' permission下面介绍一下如何避免这个错误 工具/原料 keil 方法/步骤 1 首先打开一个工程。用keil5打开旧版本文件会出现如下对话框,选择箭头所指向的就行。2 第二:普通的配置还是需...
把程序编译时的提示信息,以及你工程的选项页面(Options for Target xxx)贴出来。你的程序或许根本没有正常编译,跳转到了与工程配置不符的地址段。
首先打开Keil软件,打开一个工程,点击keil的编译图标,编译软件。2.确保已经连接了仿真器,而且已经给MCU上电,然后下载程序,等待下载完成。3.软件程序下载完成,现在就完成了程序下载,可以开始仿真了。4.单击软件的调试图标,进入软件调试模式。5.现在就已经打开运行模式。6.单击全速运行,运行软件仿真。
因为你的程序只有一行代码。继续执行就已经超出程序有效空间了。
这种多半是因为程序写的不够严谨,没有形成闭环,所以在运行时,程序跑飞了。从信息看,你的程序试图将0000地址的code作为变量访问,但一般单片机都会出于防止代码剽窃的目的而设计硬件电路,防止这种情况的发生。
很有可能数据访问互斥没有做好。一般这类interrupt()函数要求都很短小精悍,不能指靠其做很多事情。如果你的主程序能够处理socket消息,可以让interrupt()给自己发一个触发消息(或者类似的其它机制),然后在主程序处理这条消息时再具体处理你 interrupt()里面那么多的语句。
unsigned int i1=50;unsigned int i2=120;unsigned int i3=190;unsigned int T=200;unsigned int jg=5000;你定义的这些变量只是第一次调用时是该值,第二次就会变成65535了。所以达不到你的目的。for循环的第一个参数省略不了的。
你的这个程序由于main中没有死循环,所以他只执行了一次,p只能为你设置的初始值0,不可能为1的啊。
你的Debug选项没有设置好,如图,把我画箭头的地方选项去掉,不要勾选.另外,你的这个程序,DB指令是不可以放置到Main后面的,正常的做法,是放到整个程序的最后面.