52

帖子

0

TA的资源

一粒金砂(初级)

21
 

  1. 03FD0938   ldrb      r1, [r0], #1
  2. 03FD093C   tst       r0, #3
  3. 03FD0940   cmpne     r1, #0
  4. 03FD0944   bne       03FD0938
  5. 03FD0948   cmp       r1, #0
  6. 03FD094C   bne       03FD0904
  7. 03FD0950   b         03FD0930
  8. 03FD0954   smlabbeq  r1, r1, r1, r0
  9. 03FD0958   cmp       r2, #0
  10. 03FD095C   beq       03FD0990
  11. 03FD0960   mov       r12, r0
  12. 03FD0964   ldrb      r3, [r12], #1
  13. 03FD0968   cmp       r3, #0
  14. 03FD096C   bne       03FD0964
  15. 03FD0970   sub       r12, r12, #1
  16. 03FD0974   ldrb      r3, [r1], #1
  17. 03FD0978   subs      r2, r2, #1
  18. 03FD097C   strb      r3, [r12], #1
  19. 03FD0980   cmpne     r3, #0
  20. 03FD0984   bne       03FD0974
复制代码

回复

86

帖子

0

TA的资源

一粒金砂(初级)

22
 
03FD0938   ldrb      r1, [r0], #1

建议楼主检查一下其中的R0是怎么来的,
看起来它可能会有问题。
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

23
 
int *p;
p = NULL;
*p = 3;

不一定是这样明显的错误,也可能是内存越界访问之后无意中修改掉了后面内存部分的值,这时候异常还没有发生,可能过了很久,用到这部分被修改了的非预期的值之后,异常产生了.

并且你现在的异常本身的诱因就是地址错误,那么更加难找到.只能看看异常之前都运行了什么代码,一行一行检查.

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

24
 
引用 23 楼 gelu1040 的回复:
int *p;
p = NULL;
*p = 3;

不一定是这样明显的错误,也可能是内存越界访问之后无意中修改掉了后面内存部分的值,这时候异常还没有发生,可能过了很久,用到这部分被修改了的非预期的值之后,异常产生了.

并且你现在的异常本身的诱因就是地址错误,那么更加难找到.只能看看异常之前都运行了什么代码,一行一行检查.

LS说的非常有道理。所以要检查出错前后都做了什么操作。

相信楼主不会犯我所说的那么明显的错。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

25
 
学习了。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

26
 
MARK,学习下
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

27
 
结贴,问题解决.
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

28
 
散分中.....
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

29
 
在调试模式下运行,看看程序死在哪里,我都是这样调试的,有时候我的程序要运行一天才会出现错误,我就让程序在debug下运行
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

30
 
说说怎么解决的哈
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

31
 
引用 27 楼 jiess 的回复:
结贴,问题解决.

请楼主说说解决问题的经验。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

32
 
可能是空指针造成的内存地址越界的问题。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

33
 
还真是高手,

本来想说2句,一看插不上嘴,

支持一下吧
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

34
 
静待楼主说出哪里错了。我以前用动态数组的时候利用SetSize(i)为动态数组设定大小,设定的后发现GetSize()的值不等于我设定的i,要比i小,我用i去控制访问动态数组的时候会出现越界访问的错误,表面的原因找到了,还是不知道为什么会出现这种错误。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表