你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
品读记忆 发表于 2014-11-18 15:37 堆栈 不够用了? 全局变量使用的是 RAM 局部变量(比如 局部的结构体)使用的是堆栈 如果溢出 会出现覆盖的 ...
安 发表于 2014-11-19 14:32 你的结构体怎么定义的?使用的时候如何定义的?
安 发表于 2014-11-18 16:35 结构体也是全局的吗?另外,看一下MAP文件,这个结构体附近是哪些变量,会不会有溢出的情况。 ...
Dylan疾风闪电 发表于 2014-11-18 20:06 1.检查引起异常的因素:指针?RAM全局变量? 2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag ...
Dylan疾风闪电 发表于 2014-11-19 10:09 先试一下方法2能否解决
wxh0000mm 发表于 2014-11-19 14:04 没解决。现在这个问题 为什么会把结构体去掉 改成全局变量就可以呢?? ...
够用 没有溢出 我特意看了一下
typedef struct
{
uint8_t Flag_Switch;
uint8_t Flag_SwitchAnswer;
uint8_t Flag_Waddr;
uint8_t Flag_Wthistime;
uint8_t Flag_Rstatus;
uint8_t Flag_Raddr;
uint8_t Flag_Rthistime;
uint8_t Flag_Ropentime_random;
uint8_t Flag_Heatcyclestart;//Flag_Apportioncyclestart
uint8_t Flag_Heatcycleend;
uint8_t Flag_Apportioncycle_Wheat;
.
.
.
.
}Flag_InitTypeDef;
使用的时候
if(.....)
Flag_InitStructure.Flag_Heatcycleend=0
if(Flag_InitStructure.Flag_Heatcycleend==0)
{
.
.
.
.
}
这种结构
检查数组 指针之类的 有没有溢出吧 或者贴上代码
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag_xxx:1;...}yy;来避开异常的产生。
我的结构体也是全局的!
RAM全局变量 没有溢出
不好用
没解决。现在这个问题 为什么会把结构体去掉 改成全局变量就可以呢??
按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct。
-------------------------------------------------------------------
我的理解是:结构体变量必定是一组连续的内存地址;单独的全局变量他们的地址不要求连续。