我想试试TouchGFX。我已经创建了一个简单的示例。我使用CubeMX并选择X-Cube-TouchGFX 4.13.0作为附加软件。我使用和示例和网络研讨会配置了一切都很好。然后,我使用TouchGFX设计器为我的示例插入了一个简单的UI,所有这些都工作得很好。
我使用Application structure:Advanced and linker Settings : Heap = 200 ; Stack = 800;用CubeIDE生成了一个IAR项目
现在,如果我编译这个项目没有问题,但是如果我Make这个项目,我会看到这个错误:
Error[Lp011]: section placement failed unable to allocate space for
sections/blocks with a total estimated minimum size of 0x17'd129 bytes
(max align 0x4) in <[0x800'0000-0x80f'ffff]> (total uncommitted space
0xf'fe38).稍后,我为STM32CubeIDE生成了项目,并看到以下错误:
闪存区域“c:\st\stm32cubeide_1.2.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610\tools\arm-none-eabi\bin\ld.exe:”溢出了596908字节
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:74: TEST_1.elf] Error 1 "make -j8 all" terminated
with exit code 2. Build might be incomplete.发布于 2020-09-21 15:56:43
CubeMX (和CubeIDE)不会为您生成有效的链接器脚本,因为它们不知道您使用的是哪个闪存芯片,也不知道资源的内存区域从哪里开始。
您可以从TouchGFX设计器中查看一些应用程序模板,以了解链接器脚本(用于IAR、CubeIDE、Keil)是如何根据内存映射(ExtFlashSection是TouchGFX应用程序的重要区域)构建的。
您之所以溢出,是因为您的链接器试图将所有内容都放在内部闪存中(因为链接器脚本没有定义TouchGFX assets公开的区域)。
https://stackoverflow.com/questions/60227276
复制相似问题