wxh0000mm 发表于 2014-11-18 13:28:11

stm32 内存地址里面的数莫名其妙改变!!!!


请大家帮忙看一下   0X200001C3中的数据   在0X2000018A中   也会出现   但是0X2000018A是一个标志结构体   里面的数据只能等于0或者1

一到有通讯的时候   revTempBuffer   字符串中的数据就会传到    0X2000018A地址中


wxh0000mm 发表于 2014-11-18 15:52:01

品读记忆 发表于 2014-11-18 15:37
堆栈 不够用了? 全局变量使用的是 RAM 局部变量(比如 局部的结构体)使用的是堆栈 如果溢出 会出现覆盖的 ...

够用   没有溢出    我特意看了一下

wxh0000mm 发表于 2014-11-18 15:05:20

把结构体去掉       变成全局变量就   好使了

品读记忆 发表于 2014-11-18 15:37:20

堆栈 不够用了? 全局变量使用的是 RAM 局部变量(比如 局部的结构体)使用的是堆栈 如果溢出 会出现覆盖的问题

品读记忆 发表于 2014-11-18 16:06:59

一到有通讯的时候   revTempBuffer   字符串中的数据就会传到    0X2000018A地址中

检查数组 指针之类的 有没有溢出吧 或者贴上代码

发表于 2014-11-18 16:35:49

结构体也是全局的吗?另外,看一下MAP文件,这个结构体附近是哪些变量,会不会有溢出的情况。

Dylan疾风闪电 发表于 2014-11-18 20:06:03

1.检查引起异常的因素:指针?RAM全局变量?
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag_xxx:1;...}yy;来避开异常的产生。:)

wxh0000mm 发表于 2014-11-19 08:27:23

安 发表于 2014-11-18 16:35
结构体也是全局的吗?另外,看一下MAP文件,这个结构体附近是哪些变量,会不会有溢出的情况。 ...

我的结构体也是全局的!

wxh0000mm 发表于 2014-11-19 08:28:07

Dylan疾风闪电 发表于 2014-11-18 20:06
1.检查引起异常的因素:指针?RAM全局变量?
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag ...

RAM全局变量没有溢出   

Dylan疾风闪电 发表于 2014-11-19 10:09:01

先试一下方法2能否解决
页: [1] 2 3 4
查看完整版本: stm32 内存地址里面的数莫名其妙改变!!!!