智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 12058|回复: 15
打印 上一主题 下一主题

关于Illegal BP的问题,大家被困扰过吗?讨论~

  [复制链接]

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
跳转到指定楼层
1#
发表于 2010-5-18 18:01:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是在好几个月前第一次遇到这个问题的,一直没有解决,当时的情况是在main里调用别的.c文件里的一个函数,debug在RUNNING一会儿后就自己复位了,说明是Illegal BP,再点绿箭头——>RUNNING,1秒钟以后再次因Illegal BP中断,此后我把函数的内容直接复制出来,粘贴在main里(相当于替换原来的函数调用),这样就不在Illegal BP了,这样我们的main里背着这一大堆东西跑了好几个月,后来在main.c里直接声明并定义了这个函数,调用,运行,OK。一直不解这是为什么,因为同样在别的.c里定义的函数在main里调用都没有问题,就这一个有问题。
可是最近问题再一次出现,以前一直都没问题的ImageProcess()函数,在最近出现了问题,同样Illegal BP。注释ImageProcess(),不再Illegal BP……
现在唯一的不同就是增加了一些代码,下载进去时显示大约4900Bytes,以前没问题时也3000+Bytes。是因为变量定义或者访问越栈造成Illegal BP吗?此前出现过一次因为定义的数组过大而提示空间不够的情况,之后稍微改小了一些就可以继续使用了。我是用的没有分页的存储,是这个的问题吗?大家都是怎么样的情况啊?给点建议吧~

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
2#
发表于 2010-5-18 18:12:54 | 只看该作者
回复 1# librae8226


    我感觉是你应该在那个程序上定义一下他的存储位置
有可能是代码的指针有问题
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
3#
 楼主| 发表于 2010-5-18 18:23:07 | 只看该作者
不应该呀,和别的函数一样的调用方法,它的定义和声明位置和格式也和别的一样,刚才上网搜了一下,是不是堆栈溢出啊?如果是的话怎么解决啊?为什么这样?
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
4#
 楼主| 发表于 2010-5-19 13:57:57 | 只看该作者
解决了,是堆栈溢出
回复 支持 反对

使用道具 举报

3

主题

71

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1083
QQ
威望
336
贡献
667
兑换币
0
注册时间
2010-3-9
在线时间
40 小时
5#
发表于 2010-5-24 19:47:05 | 只看该作者
回复 4# librae8226


    请问:这个堆栈溢出是怎么解决的?
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
6#
 楼主| 发表于 2010-6-13 13:28:38 | 只看该作者
回复 5# cnpcshangbo


    函数定义里不要定义太多的临时变量(如很多数据的数组),这样的话函数调用时需要把它们都压在堆栈,XS128堆栈容量小,自然就超了。
建议换用外部变量存放。
回复 支持 反对

使用道具 举报

8

主题

172

帖子

0

精华

金牌会员

http://iyinjia.taobao.com光电资 .

Rank: 6Rank: 6

积分
1046
威望
510
贡献
460
兑换币
22
注册时间
2010-1-17
在线时间
38 小时
7#
发表于 2010-6-18 08:11:35 | 只看该作者
可是超了怎么解决呀
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
8#
 楼主| 发表于 2010-6-18 08:59:45 | 只看该作者
回复 7# qnbs1


    局部变量改全局变量啊
回复 支持 反对

使用道具 举报

4

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1026
QQ
威望
345
贡献
611
兑换币
4
注册时间
2010-10-29
在线时间
35 小时
9#
发表于 2010-11-26 16:24:50 | 只看该作者
谢谢,我也遇到过同样的问题
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

高级会员

Rank: 4

积分
624
威望
339
贡献
157
兑换币
16
注册时间
2011-12-10
在线时间
64 小时
10#
发表于 2012-4-17 16:02:08 | 只看该作者
太感谢lz了,我也遇到了同样的问题~~看了之后已经找到了解决办法~~
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-17 07:48 , Processed in 0.473634 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表