donkeygl 发表于 2011-4-9 19:13:16

iar for stm8,局部变量运算完全被编译器忽略掉了

代码如下:

001 void write_high4bit_to_LCD_dataport(uint8_t data)
002 {
003    uint8_t output_status,vdata;
004     vdata=(data&0x0f)

发表于 2011-4-9 19:39:34

RE:iar for stm8,局部变量运算完全被编译器忽略掉了

output_status=GPIO_ReadOutputData(LCD_PORT);
读取出状态,如果LCD_PORT是全0的,那么output_status=0;我没有IAR不能仿真,MDK没有问题。

cycloid 发表于 2013-6-17 01:13:52

回复:iar for stm8,局部变量运算完全被编译器忽略掉了

我用stvd软仿真STM8也遇到过类似的问题,某些简单的赋值语句在汇编中没显示,仿真时被赋值变量不及时更新,直到下次被调用时才更新。
很诡异,但想必只是仿真软件的bug,程序代码的运行应该是正常的。
我找到个土办法可以让被忽略的变量X现身:在被忽略的行后面加X+=0。譬如004行后面加一句vdata+=0,或许就能在调试时看到vdata的真实值了。
 
页: [1]
查看完整版本: iar for stm8,局部变量运算完全被编译器忽略掉了