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.

[参考译文] RM48L952:构建系统之间计算出的 CRC 值差异

Guru**** 2051860 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1000353/rm48l952-difference-in-computed-crc-value-between-build-systems

器件型号:RM48L952

您好!

我们面临一个问题、即基于 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}表示链接选项文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我们现在发现了这个问题、这两个构建之间在代码生成方面存在轻微差异。