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.

[参考译文] MSP432E401Y:用于.bin的SHA256与.txt可执行文件不同

Guru**** 2529600 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1102143/msp432e401y-sha256-for-bin-is-different-than-txt-executable

部件号:MSP432E401Y
主题中讨论的其他部分: UNIFLAASH

嗨,论坛!

我们有一个通过计算SHA256来保护的可执行文件。  这在可执行文件的运行时完成,并报告给我们连接的另一台设备。

遗憾的是,当我使用代码编辑器工作室(版本:MSP432. 0.0.0006万)构建和下载到目标时,bin文件报告的SHA256与使用10.4 引导加载程序通过以太网下载TI-TXT (.txt)文件时报告的SHA256不同。  两个可执行文件都可以工作,但在转换到TI-TXT时,可能需要打开某些填充值或另一个开关?

以下是目前构建的完成方式:

构建目标:"cvrPIM_nortos_cs.out "
调用:ARM链接器
flags:-mv7m4 --code_state=16 --float_support=FPv4SPD16 -me --advisor:power =none --define=DeviceFamily_MSP432E4 --define=__simpl432E4040E40__-g --ccs_warning=225 --diag_warning=255 --diag_wrap=off ---devfamily_MSP432e=1040_span_p_1y_p_p_p_p_my_p_mp_my_mp_my_mp_p_my_p_mp_my_p_p_mp_my_my_sp_my_sp_my_p_mp_my_j_c_c_c_c_c_my_c_sp_sp_c_c_c_c_c_spr.r_c_spr.r.r_sp_c_c_c_spr.r.r_sp_c_c_c_spr.r_sp_c_c_c_r.r.r.r.r_c_ 20.2
"C:/ti/ccs1040/CS/tools/compiler/ti-CGT-arm_CCS.5.LTS/bin/armcl" 20.2 -@"ccsLinker.opt"-o "cvrPIM_nortos_CCS.ut"
链接>
文件:cvrPIM_nortos_cs.out
代码大小(字节):32.4642万
Const大小(字节):2.2248万
数据大小(字节):24.1002万

已完成目标构建:"cvrPIM_nortos_cs.out "

正在构建次要目标:"cvrPIM_nortos_cs.txt"
正在调用:ARM十六进制实用程序
"C:/ti/ccs1040/CS/tools/compiler/ti-CGT-arm_CCS.5.LTS/bin/armhex" 20.2 --diag_wrap=off --ti_txt -o "cvrPIM_nortos_CCS.txt""cvrPIM_nortos_CCS.out"
正在转换为TI-TXT格式...
"cvrPIM_nortos_cs.out ".intvecs ==>.intvecs.
"cvrPIM_nortos_cs.out ".text ==>.text
"cvrPIM_nortos_cs.out ".const ==>.const
"cvrPIM_nortos_cs.out ".cinit =>.cinit
已完成二级目标的构建:"cvrPIM_nortos_cs.txt"

“C:/ti/ccs1040/csutils/tiobj2bin/tiobj2bin.bat”“cvrPIM_nortos_cs.out”“cvrPIM_nortos_cs.bin”“C:20.2 20.2 /ti/ccsti/cs/tools/tools/ti-cgt-arm_arm_cm/bin/smrs/x40/rs/arms/x1040/rs/fs/fs/trs/trls/trls/trls/trls/trls/trls/trls/trls/tran_fxf_gt/f_f_f_f_fxf_f/scrs/trls/trls/scrf_f_gts/trl/f/scrf/scrf_f/scrs/f/f/
certutil.exe -hashfile "cvrPIM_nortos_cs.bin" SHA256
cvrPIM_nortos_cs.bin的SHA256散列值:
{\f1 a2b517c881b7c5948c9c989960f7917ce1fc35b8762def4da3786d45fe472587}98.996万}</s>7917 8762378647.2587万
certutil:-hashtfile命令已成功完成。

****构建已完成****

在Code Composer Studio中从Debug运行后,可执行文件将输出计算出的SHA256:

[信息] SHA256:a2b517c881b7c5948c9c989960f7917ce1fc35b8762def4da3786d45fe472587</s>98.996万 79178762378647.2587万

这与使用Windows "certutil"实用程序在.bin文件上计算的SHA256完全匹配。

但是,如果我下载由"armhex"实用程序生成的TI-TXT .txt文件(例如,通过MSP432 Bootloader BOOTP/TFTP或TI UniFlash实用程序),则报告以下SHA256:

[信息] SHA256:251.1116万a16e8bbee448a1433bb0060e126ef022f65938d181e188842cdf2a9b1.</s>1433 00606.5938万18.8842万

有人遇到过这种情况吗?  是否需要一些额外的开关/参数来确保.txt输出与.bin输出的值匹配?

衷心感谢您的帮助。  谢谢!

--Scott

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

    Scott,

    我不确定应用程序如何计算SHA256,但我有一个关于发生什么的理论。  二进制文件和txt文件不同。  它们中的程序是相同的。  二进制文件没有地址信息,txt文件没有。  请查看本文 https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_an_introduction_to_binary_files.html。 重要部分是讨论孔的零件。  基本上,二进制文件是连续的,而txt文件则不是连续的。

    在对txt文件进行编程之前,内存的状态是什么?  内存是否全部为零?  如果不是,那么在对二进制文件和txt文件进行编程时,这些孔将具有不同的值。  对于二进制文件,值为0,对于txt文件,值为编程之前的值。 这将导致另一个SHA256。

    此致,

    John