TouchGFX V4.17 Error: L6406E: No space in execution regions with .ANY selector matching touchgfxgene |
您所在的位置:网站首页 › touch文件报错 › TouchGFX V4.17 Error: L6406E: No space in execution regions with .ANY selector matching touchgfxgene |
问题:
将TouchGFX V4.16 升级到 V4.17后,遇到内存不够的问题,困扰了我好久,见图: 经过定位,发现V4.17多出了下面这部分代码: 1、打开.sct文件 2、添加*.o (TouchGFX_Framebuffer),重新编译,问题解决。 我的.sct代码如下: ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *.o (TouchGFX_Framebuffer) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x20000000 0x00020000 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x10000000 0x00010000 { .ANY (+RW +ZI) } } LR_EROM1 0xC0000000 0x02000000 { ; load region size_region ER_EROM1 0xC0000000 0x02000000 { ; load address = execution address *.o (ExtFlashSection) *.o (FontFlashSection) ; *.o (TextFlashSection) } } ------------------------------------------------------------------------------------------------------------------------------------ 20210819更新: 以上方法发现有问题 ,就是生成的代码占RAM非常大,虽然烧写正常,代码运行也正常,对比V4.16和V4.17代码后,将部分代码注释掉或者替换,发现恢复正常: 3、TouchGFXGeneratedHAL.cpp中,注释掉 //namespace //{ // // Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer // LOCATION_PRAGMA("TouchGFX_Framebuffer") // uint32_t frameBuf[(320 * 240 * 2 + 3) / 4] LOCATION_ATTRIBUTE("TouchGFX_Framebuffer"); //} 4、TouchGFXGeneratedHAL.cpp中,替换 // return (uint16_t*)frameBuf; return 0; |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |