|
请教下,guix 资源文件放在外部 spi flash 里面,开机后读出放在 sdram 运行,程序运行到 gx_system_start(); 出现错误 ?
void MainTask(void)
{
GX_THEME *theme = GX_NULL;
INT theme_id = 0;
GX_STRING **language_table = GX_NULL;
uint8_t *buf;
GX_UBYTE *root_address;
.... ..
PWM_BackLightInit();
/* 避免上电后瞬间的撕裂感 */
LCD_SetBackLight(0);
/* 初始化配置 */
gx_initconfig();
{
// guix 资源文件 从 qspi flash 读出来放在 外部 sdram 里面运行
/* 加载SPI Flash中的数据到SDRAM */
buf = (uint8_t *)SDRAM_LTDC_USER_ADDR_1; 这个地方直接给出固定的 sdram 地址
QSPI_ReadBuff(buf, 0, 10447676UL);
buf[10447676UL+1] = 0;
root_address = (GX_UBYTE *)buf;
/* 加载主题 */
gx_binres_theme_load(root_address, theme_id, &theme);
//gx_display_theme_install(&display_1_control_block, theme);
stm32H7x_guix_chinese_main_display_table[0].theme_table = (const GX_THEME **)&theme;
/*
加载字体
加载 外部 spi flash 到 外部 sdram 2021.04.12 add
这 里 特 别 注 意 language_table_size = DISPLAY_1_LANGUAGE_TABLE_SIZE 和 string_table_size = DISPLAY_1_STRING_TABLE_SIZE 从 那
里 来 的 ? 这 个 是 由 guiapp_resources.h 文件中如下的两个定义决定的:
#define DISPLAY_1_STRING_TABLE_SIZE 4 这个值得看具体的定义即可,系统定义的值不可随意修改
#define DISPLAY_1_LANGUAGE_TABLE_SIZE 1
*/
gx_binres_language_table_load_ext(root_address, (GX_STRING ***)&language_table);
stm32H7x_guix_chinese_main_display_table[0].language_table = (GX_CONST GX_STRING **)language_table;
stm32H7x_guix_chinese_main_display_table[0].language_table_size = DISPLAY_1_LANGUAGE_TABLE_SIZE;
stm32H7x_guix_chinese_main_display_table[0].string_table_size = DISPLAY_1_STRING_TABLE_SIZE;
}
... ....
gx_system_start(); 程序运行到这一步就会出现硬件错误 ???
}
|
|