历史上的今天
今天是:2025年02月02日(星期日)
2020年02月02日 | Keil ARM软件Debug温习
2020-02-02 来源:eefocus
程序用的就是前面编译成功的汇编代码。
然后debug脚本的话用的下面的脚本
/*** <<< Use Configuration !disalbe! Wizard in Context Menu >>> ***/
/*Name: DebugINRam.ini*/ 调试脚本的编写可以搜到有文档介绍,而且uVersion help里面有很详细的使用介绍。所以,弄一两个脚本,对照着uVersion help改一两个出来,应该写调试脚本没什么问题了就。 编译成功后直接进debug。。。让人很崩溃的现实啊,设置断点,然后点击run。。。直接跳出error *** error 65: access violation at 0x34000004 : no 'execute/read' permission 额。。。这个真是没法讲,因为很多程序编译都会出现这样的错误。。。所以,这样的错误也被埋在茫茫error中。。。所以,搜索无果。遂想自己解决。。。 第一个想到的其实是代码的问题,因为对arm汇编不熟,难道是程序调用了不该用的地址?一句句找下来。。。额,没发现啊。 然后,又开始单步调试。。。reset。。。单步调试。。。额,好像错误没了。。。怎么回事? 然后,看那个黄色的小箭头跑来跑去。。。终于发现。。。进入debug的时候,寄存器PC是直接指向0x300000的!!!o(>﹏<)o 也就是,刚进入debug模式的话,当前语句是指向0x300000的,MGD,那里是啥都没有的。。。我用“map 0x30000000,0x34000000 read write exec ”给这段地址给了读写权限,尽管什么也没有,但是傻瓜机纸还是一直会往下运行。。。然后。。。一直到没有read,write权限为止。。。 额。。。这时候才看出来,我的initial文件里不是有写PC=0x300000。。。凌乱啊。。。不过,靠自己找到了这个问题,还是比较开心哈!
FUNC void Setup (void)
{
//
PC = 0x030000000;
}
map 0x00000000,0x00200000 read write exec //Map this memory to be read、write and exec
map 0x30000000,0x34000000 read write exec //Map this memeory to be read,write and exec
Setup(); // Setup for Running
//g, main
上一篇:原子操作--ARM架构
下一篇:ARM2440 LCD实验
史海拾趣
|
大家好,我想仿真下MAX485多点通信,通讯网路上连接4个485芯片(编号为1、2、3、4),其中,1和2构成一路主从,3和4构成一路主从,当1和2通讯时,3和4不通讯;反之,3和4 通讯时,1和2 不通讯(此时1和2不加电,作为备份用)。但是有个问题,4个MAX ...… 查看全部问答> |
|
名称:瑞侃RAYCHEM阻燃电线 型号:FLDWC0311-2.50 规格:2.5平方 数量:10000米 单价:6元/米 邮费:买家自理 详细见图: … 查看全部问答> |
|
谁能脱口而出得出答案? 来看看专业解释: 核磁共振成像是利用电子计算机对人体断面进行图像分析诊断的检查方法,它不用X线,而是磁场,其基本原理是人体所含氢原子在强磁场下给予特定的高波后会发生共振现象,产生一种高波数的电磁波。核磁共振 ...… 查看全部问答> |
|
"经典的DSP的C程序和汇编程序库/常用例程"——学习资料!! http://sanhengxing.com/xzindex.asp 还有其他的关于等等单片机的资料,不知道有没有需要的,大家去看看吧! 关于 DSP DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件.其工作原理是接收模拟信号,转换为 ...… 查看全部问答> |




