昨天发帖的账号登不了了,今天又注册了个,我描述的不够清楚,还请继续指导下啊本人还是小白,STM32研究的时间也不是很长1,结构体这里的单字节对齐没研究过,我还无法确定是不是这里会有问题,
2,FLASH读写的话,如果读和写都这这样sizeof计算,保存和读取的数据没有出现问题,
3,FA.Content.Buff和TIMER结构体是互不相干的
timer结构体是定义的定时器,最多有50个定时器,TIMER_Init(void)对这50个定时器初始化(不一定会用这么多);
FA.Content.Buff这里面定义的是几十个数据,从FLASH读取的时候通过这个Buff接收,写的时候直接写整个Buff
程序进入主函数后,先对硬件进行初始化,硬件准备好后就开始初始化定时器,接着开始从FLSAH里面读取数据,然后
直接跑这里了void HardFault_Handler(void);
编译环境是IAR7.3,编译没有警告没有错误,下载运行时才出错,注意:原工程是IAR5.5编译环境下的,IAR5.5环境下编译下载不会出错
反复的添加断点单步跟踪后发现:程序在出错前,已经初始化过的定时器前几个(aTimer[0]到aTimer[5])的初始值被更改了, 然后对出错前的语句逐条的屏蔽排查,发现STMFLASH_Read()屏蔽后就不会出错,如果先执行FLASH读取,后初始化定时器,也不会出错. 就是想知道这道其实咋回事
|