STM32L051 进入HardFault中断
本帖最后由 power568 于 2017-7-6 20:43 编辑今天移植的程序有这么个现象:
uint8_t test;
void Fun(uint16_t *para);
uint16_t Read(void);
void Fun(uint16_t *para)
{
*para = Read();
}
调用函数:
Fun((uint16_t)&test);
大家猜,Fun调用会出什么问题?
也许没问题,至少这个程序在STM32F103运行时没有由于这个地方出现问题。
但是在L051上运行时,在Read返回后就进入了HardFault中断。
小菜一碟,慢慢品尝...
之前有见2字节/4字节等的多字节变量转换为单字节访问方式,反过来还真是第一次见, 哈哈哈...
指针的强制转换不应该是:(uint16_t *)的么???你那样会提示语法错误的吧!!!! 当然了,至于会出现什么样的事情,我觉得,应该是数据溢出吧!!!! 编译没有报警和出错提示,数据访问地址出错导致中断产生...
页:
[1]