有没有谁遇到过进入某个函数后,连函数代码都改变了的

2019-03-24 14:22发布

有没有谁遇到过进入某个函数后,连函数代码都改变了的 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
l0700830216
1楼-- · 2019-03-25 07:09
 精彩回答 2  元偷偷看……
liangchaoxi
2楼-- · 2019-03-25 08:59
你好,我和你遇到了同样的问题,是什么原因,你知道吗? 你解决了吗,折磨了好久
看到你像是找到了救星
l0700830216
3楼-- · 2019-03-25 14:23
嘿嘿,真是不好意思。最近在忙着画板,没能及时给你回复。

具体原因是堆栈或全局变量溢出。

不过,可能你单纯的把堆栈改大是没用的,但是你可以试试。
liangchaoxi
4楼-- · 2019-03-25 16:43
 精彩回答 2  元偷偷看……
l0700830216
5楼-- · 2019-03-25 18:42
嘿嘿,你这设置堆栈为2K不能排除掉堆栈溢出的。我之前也是你这样想的,其实不是这样的。

这可能是IAR的一个bug还是430的bug。这其实就是堆栈溢出。

在这里需要声明一点,这个没有声明保不保密的。你这说到不愿回答你问题,是你想太多了。是我们这些搞研发的没有那么多时间,而我最近在忙一个项目,没时间看我之前提的一些问题,而且我们遇到的这个问题不是一两句话能说的清楚的。

在这个网站上我学到了很多东西,特别非常感激那些热心的人,我有时间一定会像他们学习,为网站会员解答我所知道的问题的,以此来回报这个网站。

你需要查看,你所用的变量有没有特别大的,或者结构体中有指针的,这些用malloc分配指点的堆给它使用。
liangchaoxi
6楼-- · 2019-03-26 00:13

原帖由 l0700830216 于 2012-5-15 13:17 发表 嘿嘿,你这设置堆栈为2K不能排除掉堆栈溢出的。我之前也是你这样想的,其实不是这样的。 这可能是IAR的一个bug还是430的bug。这其实就是堆栈溢出。 在这里需要声明一点,这个没有声明保不保密的。你这说到不愿 ...

呵呵,那我就放心了,嗯,很能体会你的忙。不过你说的堆栈溢出,我觉得应该是不可能的,因为我们堆栈设成1024的时候,反倒不会出现上面的现象。反而是调大的时候出现,所以我觉得堆栈溢出是可以排除的,我变量有个地方设的很大,是全局变量数组,一个地方是:
__no_init char  UART0_RX_BUF[400];       
__no_init char  UART0_Save_BUF[2][400];
一个地方是:
 UART3_RX_BUF[500];       
不过都是全局变量,所以应该不影响栈。
而且改小之后,问题没有解决,所以我又陷入了僵局
唉……

一周热门 更多>

相关问题

    相关文章