stm32 内存地址里面的数莫名其妙改变!!!!
请大家帮忙看一下 0X200001C3中的数据 在0X2000018A中 也会出现 但是0X2000018A是一个标志结构体 里面的数据只能等于0或者1
一到有通讯的时候 revTempBuffer 字符串中的数据就会传到 0X2000018A地址中
品读记忆 发表于 2014-11-18 15:37
堆栈 不够用了? 全局变量使用的是 RAM 局部变量(比如 局部的结构体)使用的是堆栈 如果溢出 会出现覆盖的 ...
够用 没有溢出 我特意看了一下 把结构体去掉 变成全局变量就 好使了 堆栈 不够用了? 全局变量使用的是 RAM 局部变量(比如 局部的结构体)使用的是堆栈 如果溢出 会出现覆盖的问题 一到有通讯的时候 revTempBuffer 字符串中的数据就会传到 0X2000018A地址中
检查数组 指针之类的 有没有溢出吧 或者贴上代码 结构体也是全局的吗?另外,看一下MAP文件,这个结构体附近是哪些变量,会不会有溢出的情况。 1.检查引起异常的因素:指针?RAM全局变量?
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag_xxx:1;...}yy;来避开异常的产生。:) 安 发表于 2014-11-18 16:35
结构体也是全局的吗?另外,看一下MAP文件,这个结构体附近是哪些变量,会不会有溢出的情况。 ...
我的结构体也是全局的! Dylan疾风闪电 发表于 2014-11-18 20:06
1.检查引起异常的因素:指针?RAM全局变量?
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag ...
RAM全局变量没有溢出 先试一下方法2能否解决