15940|7

194

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

求助,在Keil MDK中调试出现程序乱跳现象。。。。。 [复制链接]

如题,刚接触ARM ,LPC2368 ,我发现我在keilMDK环境下随便加点代码都不是那么容易。
我在LPC的示范代码下的一个easyweb下添加UDP功能,其他的设置我没动,本想只是添加了一点UDP代码应该不会有什么问题,结果,我调试时(Jlink RDI):
首先我全速运行用PC机发送UDP测试代码,捕报工具显示捕到一个错误的UDP数据报,部分字段不正确。如附件图
接着我在UDP应答代码那设置断点,在PC机发送UDP测试数据,进入UDP应答函数,单步执行,发现程序指针出现乱跳现象,上网搜了一下,根据网上提示的RDI RAM调试方法设置一下,重新编译仍不行,不知道怎么回事。

又是刚接触,单片机功底都不是很深厚,突然让我弄这个,真不知道怎么学习,感觉arm 的水很深啊,随便加代码都不行,还只是跑裸机啊,哎,这下真锈逗了。
希望大侠给予指点,从那部分着手,才能像单片机一样把这个裸机给灵活的用起来。现在只是加了UDP,后面还要编应用代码,我只是测试UDP代码通过没,居然出这么多问题。

EasyWEB+UDP.rar

218.44 KB, 下载次数: 29

调试过程图片.doc

475 KB, 下载次数: 17

此帖出自工控电子论坛

最新回复

一般不会有指针乱跳或者断点位置不是你想要的,除非可能有以下情况出现: 1.不是在DEBUG模式,而是在release模式,因为C进行了优化 2.内存访问有误,特别是内存对齐问题 3.堆栈益处或者没做堆栈保护问题(这个主要是对于汇编而言) 4.代码原因 5.其它问题(比如硬件如看门狗等或者其它问题,需要根据你的现场判断) [ 本帖最后由 flyingdsp 于 2010-6-3 14:13 编辑 ]  详情 回复 发表于 2010-6-3 12:51
点赞 关注
 

回复
举报

194

帖子

0

TA的资源

纯净的硅(中级)

沙发
 

回复

先顶一下啊,如方便交流,我的QQ是275839160
此帖出自工控电子论坛
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
这个现象确实很常见,我也遇到过,暂没有好的解决方案,感觉是断点一类的没起到作用,一个单步也可能跳到其他地方,我现在是吧每个要调试的模块用WHILE框起来一点点调,不过偶尔也会出错
此帖出自工控电子论坛

赞赏

1

查看全部赞赏

 
 

回复

394

帖子

0

TA的资源

一粒金砂(高级)

4
 
首先强烈的建议你使用jtag模式,不要用rdi的,那个不是很完善,在新版本中没有了。在这由于楼主没有单片机的经验,我很难说怎么具体意见,呵呵。指针乱跳可能是你得堆栈溢出,ram空间不够导致,尽可能大的设计这个堆栈区,欢迎来群54084144,一起交流。
此帖出自工控电子论坛
 
 

回复

359

帖子

0

TA的资源

五彩晶圆(中级)

5
 

回复 楼主 gsy 的帖子

一般不会有指针乱跳或者断点位置不是你想要的,除非可能有以下情况出现:
1.不是在DEBUG模式,而是在release模式,因为C进行了优化
2.内存访问有误,特别是内存对齐问题
3.堆栈益处或者没做堆栈保护问题(这个主要是对于汇编而言)
4.代码原因
5.其它问题(比如硬件如看门狗等或者其它问题,需要根据你的现场判断)

[ 本帖最后由 flyingdsp 于 2010-6-3 14:13 编辑 ]
此帖出自工控电子论坛
 
 

回复

194

帖子

0

TA的资源

纯净的硅(中级)

6
 

回复楼上

多谢各位的指导。

单步调试时,每走一步,出现来回跳,但最终会正常调出子函数。比如一开始是执行代码1041行的,接下来再单步,会跳到1043,然后又回到1042,接着1045->1044->1047->1045->1046->1047..............,就这样没有规律,可能是ram不够,我先修改一下收发缓冲区大小再调调看,多谢各位大侠指点。
此帖出自工控电子论坛
 
 

回复

194

帖子

0

TA的资源

纯净的硅(中级)

7
 

回复

回去后调试后,通过设置堆栈,增大堆栈,还是不行。定义rom和ram都不行,还解决不了这个问题,希望高手可以给予帮忙,指点。感激不尽啊!
此帖出自工控电子论坛
 
 

回复

194

帖子

0

TA的资源

纯净的硅(中级)

8
 

回复:最终解决的方法

最后的解决的问题是和代码的优化程度有关,回去把代码优化等级改一下后,就没有问题了。
此帖出自工控电子论坛
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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