lm3s1138 程序跑飞了



lm3s1138 程序跑飞了 断电 重启 依然无法解决问题.重新 烧录程序 又正常了,请问是怎么回事?怎么避免?

  • 不知道器件的工作环境是什么样的,是不是干扰很大的环境?出错概率高吗?楼主的程序有没有读写flash?

  • 我觉的首先应该查代码问题

    程序跑飞肯定是指针问题了。有的时候出现这种状态需要的时间比较久而已。

    你可以在“正常”情况下,长时间运行代码,看看是否会跑飞~

    当然了如果MCU供电不正常,也有可能导致程序跑飞,接上示波器监控一下mcu供电,这个很容易排除的。

  • 程序没有读写flash。干扰应该会有,有56的步进电机,继电器,3w的直流电机,不知道算不算很大大呢?出错的概率不大 也不小,1个月1次,也受不了。但是交给客户使用是不能出错的。谢谢你的回复。

  • 程序没有读写flash。干扰应该会有,有56的步进电机,继电器,3w的直流电机,不知道算不算很大大呢?出错的概率不大 也不小,1个月1次,也受不了。但是交给客户使用是不能出错的。谢谢你的回复。

  • 首先,谢谢azhiking。长时间运行,程序也没跑飞。何况,请你留心一下,断电后,一切ram中得数据都没有了。如果是指针跑飞了,那么断电了,所有都是从头开始了。mcu供电也应该可以排除掉,因为我是完全断电后重新启动依然不正常。

  • 不知道楼主的错误容易复现与否,如果可能的话,把出问题后的程序下载下来,看看哪里被改掉了以及被改掉的地方是否一致,好进一步分析哪里出问题了

  • 谢谢richard ma,你是版主还是热心同行?把出问题后的程序下载下来??1,怎么下载已经烧写到flash里面的程序,是用LM Flash Programmer中得upload吗??2,下载下来的应该是bin程序,可以翻译成c代码吗?当然如果只是做比较的话 可以和原来的bin进行比较吧?

  • 可以用那个Upload来获得bin文件,不能反编译为C,关键是和以前的bin文件比较下看看flash里面的数据是不是改掉了,哪里改掉了。