最近在IAR(51单片机)上写了个程序(C++),重载了一个纯虚函数,但是不能正确执行,每次执行到虚函数时,程序就跳到地址0重新执行了(相当于复位)。
后来发现是设置问题:
Option->General->Target->Location...
如果设为:RAM memory就可以正常重载虚函数;
如果设为:CODE memory就发生前述现像(貌似vtbl被定义到FLASH里了,但是程序仍然到RAM里取vtbl)。
我的IAR是:IAR Embedded Workbench for 8051 8.10
我的RAM空间有限,很想设为CODE memory模式,不知道有没有和我遇到同样问题的兄弟?还望高手不吝赐教! |