Board logo

标题: [求助]全局变量无法使用的问题!! [打印本页]

作者: yjbmtc    时间: 2007-7-5 14:40     标题: [求助]全局变量无法使用的问题!!

版主大人:
我用8KRAM的DT128芯片,定义了一些全局变量,可是有些能用,有些则会使程序出现MANUAL STOPPED 的问题,并且就是前一个能用,紧接着的一个就不能用了,这是什么问题呢?是不是内存用完了啊?看调试窗口,点击运行后,程序会停在以下位置:
NextWord: CLR 1,Y+ ; clear memory byte

着急啊,我嵌入了操作系统,可是觉得8K不应该就这么没了,也没有什么大结构体或者数组什么的啊!请帮帮小弟!!


作者: strongchen    时间: 2007-7-5 16:30

你可以在MAP文件中看一下这些全局变量的分配地址。会不会是堆栈溢出了?
作者: yjbmtc    时间: 2007-7-5 17:02

版主是说操作系统的堆栈把全局变量给冲掉了吗?

作者: strongchen    时间: 2007-7-5 17:03

有这个可能。
作者: yjbmtc    时间: 2007-7-6 10:58

还是这个问题,怎么想删掉一个全局变量都回导致程序出现MANUAL STOPPED的问题呢?
程序感觉就是不能碰了,我算了一下,我有5个任务,每个任务堆栈是100个Byte,总共500个Byte,就算操作系统占用2K足够了,剩下的5K,也没有那么多的全局变量要占用啊 ,并且我试着加大每个任务的堆栈,程序也会跑飞!我用的是MC9S12DT128芯片,共有7KRAM可用。
作者: yjbmtc    时间: 2007-7-8 19:16

盼望版主回复!是不是还有一个可能是局部变量超出了堆栈的大小了呢?可是现在的现象是加大每个操作系统任务的堆栈,程序也不能运行了。
作者: strongchen    时间: 2007-7-9 10:01

在PRM文件中加大MCU本身的堆栈试试。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0