2 mydreamrykui mydreamRykui 于 2014.11.23 23:50 提问

arm7 lpc2292 程序跑飞

最近在lpc2292上开发, 碰到一个奇怪的问题,百思不得其解。对申请的一个数组的size从512到256后,程序竟然跑飞了,由于使用到了以太网,可以看到的现象是以太网连接灯显示一直是亮暗,也就是程序一直在不断重启。单步调试发现,在一个函数返回的时候出的问题,这个函数主要就是实现对一个结构体变量的赋值工作,函数本身没什么问题,感觉是内存出问题,不知道有没有碰到过这样的问题的高手们?求给个思路之类的~多谢多谢

2个回答

zhanglianpin
zhanglianpin   2014.11.24 08:20

系统有操作系统吗?若多任务可考虑任务堆栈溢出问题,若单任务可查看系统初始化时堆栈空间的大小及对齐方式等信息。根据我的经验,先仔细排查程序运行逻辑错误(比如数组越界,空指针等)。再排查堆栈大小及对齐方式。

zhanglianpin
zhanglianpin 回复mydreamRykui: 像BANK的使用 你查看一下datasheet 的EMC相关章节,一般需要初始化的。你看看是否使用之前未初始化好。还有这些一般和系统启动模式有关,还有和链接器链接有关。
大约 3 年之前 回复
mydreamRykui
mydreamRykui 还有一个问题,把这个数组放到外部RAM上(BANK0),程序跑不起来了,而程序其他的一些大的缓冲区都放在这上面却没有问题。
大约 3 年之前 回复
mydreamRykui
mydreamRykui 没有操作系统,今天查了一下,是底层一个关中断和开中断导致的错误。。不过海鸥
大约 3 年之前 回复
tractor_man
tractor_man   2014.11.24 12:11

加我qq306257206,把你的那个函数发给我 我帮你看看

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!