maimaige 发表于 2015-2-3 10:11:45

请问,长时间测试,程序跑飞什么原因引起的,如何定位

请问,长时间测试,程序跑飞一般是什么原因引起的,如何定位

xpstudio2011 发表于 2015-2-3 10:16:09

我觉得长时间测试程序要程序做日志或者输出东西。要不然不好找到死在哪里 了。

dsew027 发表于 2015-2-3 10:53:40

用PCLINT检查下

maimaige 发表于 2015-2-3 11:22:59

dsew027 发表于 2015-2-3 10:53
用PCLINT检查下

请问,这个工具,单片机程序,也能用吗

dsew027 发表于 2015-2-3 11:25:37

maimaige 发表于 2015-2-3 11:22
请问,这个工具,单片机程序,也能用吗

可以,C程序都可以,不过太严谨,要费些时间

mcucow 发表于 2015-2-3 12:36:20

用另外一个系统来监控,人也行

dykwai1 发表于 2015-2-3 12:44:18

可以挂仿真器跑

levinxia 发表于 2015-2-3 12:45:36

如果能有仿真器支持。那就最好。否则只能用IO点灯来处理。

Juggernaut 发表于 2015-2-3 16:36:56

crash吗?还是内存泄露

youki1234 发表于 2015-2-3 16:38:15

串口输出日志啊

jinyi7016 发表于 2015-2-3 19:46:14

串口打印,每个函数打印一条看最后死在哪里

songjie 发表于 2015-2-4 08:50:06

感觉不靠谱的地方 打印日志。

还有,仿真器不kop 的,仿真器的频率 和 真实系统 不一样,仿真时 不一定死机~

gsq19920418 发表于 2015-2-4 08:58:53

输出日志,关键点的日志可以存flash或eeprom

LK9286 发表于 2015-2-4 09:03:39

串口打印信息吧。

alias 发表于 2015-2-4 09:17:15

使用最高级别非屏蔽定时中断,串口打印 PC 地址及 STACK 指针

M.Bing 发表于 2015-2-4 10:16:09

加一个EEPROM存重要信息

pen245760036 发表于 2015-2-4 10:18:45

本帖最后由 pen245760036 于 2015-2-4 10:30 编辑

{:sleepy:}

pen245760036 发表于 2015-2-4 10:21:01

本帖最后由 pen245760036 于 2015-2-4 10:43 编辑

用定时器(进入中断的跑飞无效)当看门狗,定义一个全局变量,每进一个模块函数 就赋值对应值, 定时器超时溢出就写进EEPROM 事后读取eeprom表就行了,就知道在进入那个模块函数后跑飞的,排查下原因。 无序的就得做些防跑飞陷阱,这些涉及到底层汇编编程原理,多查些资料。http://www.docin.com/p-457585285.html

holts2 发表于 2015-2-4 10:22:57

单步跟踪找问题

M.Bing 发表于 2015-2-4 11:09:19

加一个EEPROM存重要信息

FSL_TICS_ZJJ 发表于 2015-2-6 09:55:42

正如网友们所建议的,建议楼主加个跟踪代码,这样可以知道你的代码长期运行出错的地方。

子鱼 发表于 2015-2-6 10:33:40


串口输出打印日志这种方法会好一些

l36092 发表于 2015-2-6 12:14:45

看看有没有内存泄露,或者计数器翻转问题?

maimaige 发表于 2015-2-6 15:44:10

l36092 发表于 2015-2-6 12:14
看看有没有内存泄露,或者计数器翻转问题?

计数器翻转,是指的定时器的计数器?

lzl000 发表于 2015-2-6 18:42:34

侵入式调试的话用仿真器,不想影响正常运行的话一般用串口或者流水等之类的

soos 发表于 2015-2-6 19:52:50

串口打印不靠谱,我就试过,MCU都死了,根本打不出东西来

holts2 发表于 2015-2-6 22:12:25

试试单步跟踪定位

ccrt 发表于 2015-2-7 07:23:37

soos 发表于 2015-2-6 19:52
串口打印不靠谱,我就试过,MCU都死了,根本打不出东西来

基本系统没有搞定前用仿真器,之后串口打印靠谱

34071417 发表于 2015-2-7 07:31:38

log输出,打印进文件或串口

34071417 发表于 2015-2-7 07:33:57

soos 发表于 2015-2-6 19:52
串口打印不靠谱,我就试过,MCU都死了,根本打不出东西来

看最后一条信息在哪打印的,或者有什么错误信息输出,主要是信息输出有没有异常处理代码

maimaige 发表于 2015-2-7 15:51:47

songjie 发表于 2015-2-4 08:50
感觉不靠谱的地方 打印日志。

还有,仿真器不kop 的,仿真器的频率 和 真实系统 不一样,仿真时 不一定死 ...

你好,是不是用仿真器仿真的时候,同一个delay函数,跑的结果也不一样,能设置成一样的吗

wangyu_2011 发表于 2015-2-7 18:53:28

trace看出问题前是在哪儿。
页: [1]
查看完整版本: 请问,长时间测试,程序跑飞什么原因引起的,如何定位