This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我们面临一个问题、即基于 SPNA235实现 CRC 计算、但虽然使用 CCS 实现、但使用自定义 cmake 编译系统构建时失败。
在 cmake 版本中、映射文件中有 CRC 条目、例如:crc_table_for_flash @ 00029020记录:5、大小/记录:24、表大小:128
intvecs:algoriter=TMS570_CRC64_ISO (ID=10)、load addr=00000000、size=00000020、crc=f190f57dca7724e1
.text:algoriter=TMS570_CRC64_ISO (ID=10)、load addr=00000020、size=00011b78、crc=2e346f3ba662d44e
.const:algoriter=TMS570_CRC64_ISO (ID=10)、load addr=0001eF0、size=000020b8、crc=beaac4588a28b9bd
FEE _CONST_SECTION:algoriter=TMS570_CRC64_ISO (ID=10)、load addr=00020ba8、size=000001a0、crc=c0c0896ff0afc6ab
.cinit:算法=TMS570_CRC64_ISO (ID=10)、加载 addr=00020d48、大小=00000830、crc=9c147b2df23421e6
并且这些值由代码正确读取、但计算得出的 CRC 值与使用 cmake 编译时的预期值不匹配。
我们已检查了编译器选项、它们在两个构建系统之间匹配、--verbose_diagnostics -mv7R4 --code_state=32 --float_support=VFPv3D16 -me -g -O=4 --c99 --diag_warning=warn--abi_state=32 --display_error_number-----map_ram_ram_zh-out-code-ram_is=-ram_ram_ram_zh-out-code_display_ram_is=-ram_zh-out-out-map=-map=-out-map-map_ram_remap_ram_ram_ram_size=-out-out-ins-ins-id=ai-display_ram_ram_zh-out-remap_remap_remap_ SCO_linkInfo.xml
一个不同之处似乎是、cmake 系统使用-z 选项调用链接器作为编译的一部分、但正如编译器手册中所述、它的实现方式为"armcl 文件名[选项]-run_linker [--rom_model |--ram_model]文件名
[options][-output_file= name.out]--library= library [lnk.cmd]"、因此我们在对此进行故障排除时遇到了一些困难。
尊敬的 Soren:
是否可以将链接器文件添加到链接选项?
--run_linker 您的文件.cmd
否则、cmake 系统正常工作、并用于构造代码、但 CRC 值与 CCS 编译相比存在问题时、没有迹象表明存在任何问题。
当然、链接器文件被添加到构建命令中、cmake 中的完整构建指令看起来类似于"命令${CMAKE_C_COMPILER}${CMAKE_ELF_LINKER_FLAGS}$ -library=${Compiler_link_file}-l${Compiler_link_LIB}-l${library_link_LIB}-o${APPL_NAME}.elf"
使用--library=${Compiler_link_file}表示链接选项文件。
好的、我们现在发现了这个问题、这两个构建之间在代码生成方面存在轻微差异。