[STM32F1] STM32遇到一个很棘手的问题,不知道有相同遭遇的没...

[复制链接]
6250|34
lr2131 发表于 2014-6-9 17:38 | 显示全部楼层
确实很棘手,看得都很棘手
HORSE7812 发表于 2014-6-9 18:39 | 显示全部楼层
想做大牛的小马 发表于 2014-6-9 18:43 | 显示全部楼层
加油。。。。
江枫渔火 发表于 2014-6-9 19:04 | 显示全部楼层
我猜一般是低级错误。
suiyy 发表于 2014-6-9 19:55 | 显示全部楼层
chejun86 发表于 2014-6-9 09:51
我定义的变量其实和串口工作没任何关系的,刚又调试了下,如果把这个变量在当前文件中的位置做改变,程序 ...

你说的是有可能的,我建议你先注释掉变量相关内容看看情况。
你说的涉及到内存溢出问题:1,数组问题(查询你的数组使用情况)。2,堆栈溢出,STM32默认的栈空间不大,如果函数内临时变量比较大时很容易超出。3,如果你用了外部RAM,分散加载时是否这两个文件在不同的RAM区间。
所有说的这么多都是假设你串口通信没有任何问题的情况下,所以但你注释掉该变量相关内容时就应该通信正常
 楼主| chejun86 发表于 2014-6-9 20:26 | 显示全部楼层
通宵敲代码 发表于 2014-6-9 17:16
未声明,先使用??

这个不会,如果是这样,编译器就会提示了
 楼主| chejun86 发表于 2014-6-9 20:28 | 显示全部楼层
suiyy 发表于 2014-6-9 19:55
你说的是有可能的,我建议你先注释掉变量相关内容看看情况。
你说的涉及到内存溢出问题:1,数组问题(查 ...

是啊,没有这个变量是没有任何问题。我到时仔细检查下是否有可能是数组越界的问题...都搞的头大了 ...呵呵
 楼主| chejun86 发表于 2014-6-9 20:29 | 显示全部楼层
ZhangStudy 发表于 2014-6-9 16:31
一般是你的其他地方使用了没有赋初值的指针(俗称野指针);或者是使用某个数组越界了,也就是定义了四个元 ...

这个越界的问题我会多看看...
suiyy 发表于 2014-6-9 20:48 | 显示全部楼层
chejun86 发表于 2014-6-9 20:28
是啊,没有这个变量是没有任何问题。我到时仔细检查下是否有可能是数组越界的问题...都搞的头大了 ...呵 ...

我们在复杂项目上采用的方式是一个线程一个线程的排查,这就需要你对程序结构非常清楚,迅速定位
happyming0809 发表于 2014-6-9 21:06 | 显示全部楼层
你stm32启动是正常启动还是?
lhtzyn777 发表于 2014-6-9 21:08 | 显示全部楼层
这种问题我遇到过,一般是由于堆栈或者字节对齐导致的,你可以查看MAP文件,看看变量分配的位置变化,找找问题。
通宵敲代码 发表于 2014-6-9 21:10 | 显示全部楼层
chejun86 发表于 2014-6-9 20:26
这个不会,如果是这样,编译器就会提示了


也对
 楼主| chejun86 发表于 2014-6-12 22:49 | 显示全部楼层
lhtzyn777 发表于 2014-6-9 21:08
这种问题我遇到过,一般是由于堆栈或者字节对齐导致的,你可以查看MAP文件,看看变量分配的位置变化,找找 ...

这个我也看过,只不过看不出到底这种位置变化有什么影响?或者说我即使看到变量的内存地址正常在0x300,而不正常的时候在0x304.可这样能看出什么原因呢?
lhtzyn777 发表于 2014-6-13 21:52 | 显示全部楼层
chejun86 发表于 2014-6-12 22:49
这个我也看过,只不过看不出到底这种位置变化有什么影响?或者说我即使看到变量的内存地址正常在0x300, ...

我只能说向这个方向怀疑,你得自己慢慢查一下
朝阳之光 发表于 2014-6-14 08:44 来自手机 | 显示全部楼层
好奇怪的问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部