MTK平台模拟器编译过了,出现logo后,就停在那里,不能动了,菜单里“power on”是灰色的,不能点击。
以前模拟器开机问题一般都是NV引起的,但这次删除NV并不能解决。
跟代码,发现进入MMI_task,跑了几圈就飞了。
继续看NV问题:
typedef enum {
GPIO_DEV_LED_MAINLCD = 0 , /* Main LCD backlight */
GPIO_DEV_LED_SUBLCD , /* Sub LCD backlight */
...
MAX_GPIO_DEVICE_NUM
}gpio_device_enum;
在这个enum里添加了几个新的,导致MAX_GPIO_DEVICE_NUM变大。
前面有注释:
/* Becareful!!!!
MAX_GPIO_DEVICE_NUM Will impact the size of uem_context_rmi_struct data item !!!!! */
uem_context_rmi_struct中有个gpio_status[MAX_GPIO_DEVICE_NUM];
MAX_GPIO_DEVICE_NUM变化会导致整个结构体变化。
LID_BIT VER_LID(NVRAM_EF_UEM_RMI_DATA_LID)
这个变化,会影响模拟器和真机运行,即使删除模拟器NVRAM,格式化下载,都不能解决模拟器和真机问题。
用GPIO_DEV_RESERVEDxx的几个ID,而不是添加ID,解决问题。