今天移植的程序有这么个现象:
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字节等的多字节变量转换为单字节访问方式,反过来还真是第一次见, 哈哈哈...
|