英飞凌
直播中

麻酱

8年用户 1196经验值
擅长:MEMS/传感技术
私信 关注

求助,关于PSoC6 DFU问题求解

我正在将代码合并为一个基本的 DFU 结构、UART 接口,
,当我移动我的代码并替换"Blinky" 的 main.c 时。
编译器错误信息将显示如下。
但如果我屏蔽 UART 异步 RX 读取和 cJSON. 编纂者可以通过
请教
谢谢
/Applications/ModusToolbox/tools_3.2/gcc/bin/.../lib/gcc/arm-none-eabi/11.3.1/.../..../....././arm-none-eabi/bin/ld: 地址 0x100301c4 of /Users/andyjery/mtw1/DFU_EV2_PowerKit/blinky_cm4/build/APP_CY8CKIT-062S4/Debug/blinky_cm4.elf section `.text' is not within region `flash_app1'.
/Applications/ModusToolbox/tools_3.2/gcc/bin/.../lib/gcc/arm-none-eabi/11.3.1/.../..../...../arm-none-eabi/bin/ld:/Users/andyjery/mtw1/DFU_EV2_PowerKit/blinky_cm4/build/APP_CY8CKIT-062S4/Debug/blinky_cm4.elf section `.ARM.exidx'不适合区域 "flash_app1"。
/Applications/ModusToolbox/tools_3.2/gcc/bin/.../lib/gcc/arm-none-eabi/11.3.1/.../..../....././arm-none-eabi/bin/ld: 地址 0x100301c4 of /Users/andyjery/mtw1/DFU_EV2_PowerKit/blinky_cm4/build/APP_CY8CKIT-062S4/Debug/blinky_cm4.elf section `.text' is not within region `flash_app1'.
/Applications/ModusToolbox/tools_3.2/gcc/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: section .cy_app_signature LMA [000000001002fffc,000000001002ffff] 与 .text 部分重叠 LMA [0000000010020000,00000000100301c3]
/Applications/ModusToolbox/tools_3.2/gcc/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: `flash_app1'区域溢出 0 个字节
collect2: error: ld returned 1 exit status
make[4]:*** [/Users/andyjery/mtw1/DFU_EV2_PowerKit/blinky_cm4/build/APP_CY8CKIT-062S4/Debug/blinky_cm4.elf] *** 错误 1
make[3]:*** [secondstage_build] 错误 2
make[2]:*** [build] 错误 2
make[1]:*** [build_application_bootstrap] 错误 2
make:*** [secondstage_build] 错误 2



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                      

回帖(1)

神船大幅

2024-5-29 16:47:23
从您提供的错误信息来看,问题出在链接器(ld)上。错误信息表明,您的代码中的某个地址(0x100301c4)不在指定的 flash_app1 区域内。这可能是由于代码大小超出了 flash_app1 区域的限制,或者是内存布局配置不正确。

为了解决这个问题,您可以尝试以下步骤:

1. 检查代码大小:确保您的代码大小没有超过 flash_app1 区域的大小。您可以使用编译器的 -Xlinker --print-memory-usage 选项来查看内存使用情况。

2. 检查内存布局:确保您的 linker script(通常是 .ld 文件)正确配置了 flash_app1 区域的大小和位置。您可以在 ModusToolbox IDE 中找到这个文件,通常位于项目的 "Linker Script" 文件夹中。

3. 优化代码:如果代码大小确实超过了 flash_app1 区域的限制,您可以尝试优化代码,例如移除不必要的功能、使用更紧凑的数据结构等。

4. 调整 flash_app1 区域大小:如果可能的话,您可以尝试增加 flash_app1 区域的大小。这可能需要修改芯片的配置或使用不同的芯片型号。

5. 检查 UART 异步 RX 读取和 cJSON 库:您提到屏蔽这两个部分后,编译器可以通过。请确保这两个部分在您的代码中正确实现,并且没有引入额外的内存占用。

6. 重新编译和链接:在进行上述更改后,重新编译和链接您的项目,以确保问题得到解决。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多关于您的项目和代码的详细信息,以便我能更好地帮助您。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分