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.

[参考译文] TMS320F280025:生成二进制文件

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1360751/tms320f280025-generating-binary-files

器件型号:TMS320F280025

1.Bcakground 简介:

  • 操作系统: Windows 10
  • Code Composer Studio 版本:12.5.0.00007
  • 编译器版本:TI v22.6.0.LTS
  • 输出格式:eabi (ELF)
  • 闪存使用 SEC0和 SEC1、2个闪存扇区的最终程序和数据未满。

FLASH_BANK0_SEC0:origin = 0x080000、length = 0x001000

FLASH_BANK0_SEC1:origin = 0x081000、length = 0x001000

  •   由于数据对齐(闪存孔洞)、最终十六进制存在未使用区域
  • 我可以生成十六进制文件(例如、 Intel Hex)向右、使用此文件 通过其他工具生成 bin 文件;
  • 但我在 直接使用 CCS 生成 bin 文件时遇到一些问题。

2.我尝试过的解决方案:

2.1编译后处理

在编译后处理中使用 tiobj2bin.exe (Properties→BuildSteps→Post-Build Steps):

"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin "${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/ofd2000 "${CG_TOOL_ROOT}/bin/hex2000 "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin "

  由于 Project 输出格式 为 eabi (ELF)、因此将出现 ERRO

2.2使用 C2000十六进制实用程序

将输出格式设置为 Binary (--binary、-b)、  --memwidth=8 --order=MS --romwidth=16,并生成 bin FIE。

最后的结果是,闪存孔未被填充,编程/数据被写入到第一个 falsh 孔后的错误位置;

2.3 -图像

根据2.2、我在- image 属性中运行并将-- fill 设置为0xFFFF、添加一个描述如下 ROM 的文件(由于8位和16位原因、地址乘以2):

ROM
{
flash_all:org = 0x00100000、len = 0x004000

这样、bin 可以生成填补空穴0xFFFF 的正确数据、但未使用编程的保留闪存也设置为0xFFFF。

例如、十六进制 结束 地址为0x081500、二进制文件中地址0x081500至0x081FFFF 中的数据也设置为0xFFFF、但十六进制文件中该地址没有数据。

我希望 bin 文件有未被处理的闪存区域、它可以根据编程大小自动更改。

如何获取需要获取的正确 bin 文件?

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

     ︎ TMS320F280039C 的代码:在 CCS12.2中的编译后处理失败- C2000微控制器论坛- C2000微处理器- TI E2E 支持论坛 ,我将相关文件复制到一个文件夹并调用  分页。

    第1步-更改文件的第109行

    %ofdcmd% --obj_display=none,header %outfile% | findstr/c:" ELF " > nul 2>&1

       更改为2条线

         %ofdcmd% --obj_display=none,header %outfile%
         findstr/c:" ELF " > nul 2>&1.

       调用时  ,它将停止并显示以下信息:

    OBJECT FILE:  test.out
    
     Object File Information
    
        File Name:           test.out
        Format:              ELF Version 1
        File Type:           executable file
        Machine:             TI C2000
        Machine Endian:      little endian
        Entry Point:         0x0008173a
        Vendor:              Texas Instruments, Inc.
        Producer:            Linker
        Linker Version:      22.6.1
        Number of Sections:  34
        File Length:         130792
        ELF Class:           32-bit objects
        ELF e_flags:         0

    第2步-更改文件的第109行 ,删除"|"以

    %ofdcmd% --obj_display=none,header %outfile% findstr/c:" ELF " > nul 2>&1

    第3步-设置输出文件格式、更改第163行、共页  

    %hexcmd% -q -memwidth=16 -order=MS -romwidth=16 -fill=0xFFFF -b -image -o %binfile% %hextmp% %outfile%

    这一次我可以获得我需要的最终 bin 文件。 tiobj2bin.bat 不支持 Hehter EABI 文件?  以这种方式更改文件是否会导致其他问题?

    我最终应该如何 获得我需要的 bin 文件?

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

    Bo,

    为什么要这样的 bin 文件? 您只想能够直接编辑 bin 文件吗?

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

    执行 OTA 引导加载程序所需的 bin 文件。

    我搜索了一些 论坛帖子、其中 是:TMS320F280025C:POST build to generate .bin 文件、大小太大- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    我认为 eABI 不受 tiobj2bin.bat 支持。  这是不方便我 使用  一个变通办法 methond 作为以上论坛帖子,我必须更改 ROM 文件每次我编译;  

    现在、我可以通过 脚本使用 hex2000对十六进制文件进行生殖、并使用第三方工具获取 bin 文件。 但有一点 不方便、那就是 使用任何方法 一步通过 CCS 获取 bin 文件。

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

    是的。  更具体地说、C2000和 EABI 的组合不受 tiobj2bin.bat 。   

    我不方便 使用  变通办法 methond 作为上述论坛帖子,我每次编译都必须更改 ROM 文件; [/报价]

    如果您 只想使用 TI 提供的工具、尽管存在不便、但这仍是目前最佳的解决方案。

    我可以通过 脚本使用 hex2000来生成十六进制文件,并使用第三方工具获取 bin 文件。

    这可能是最好的解决方案。

    是否有办法 一步通过 CCS 获取 bin 文件。

    遗憾的是、不能。   

    我需要 bin 文件来执行 OTA 引导加载程序。

    是否要求必须具有单个二进制文件?  多个二进制文件、每个闪存范围一个又如何?  这可行吗?

    谢谢。此致、

    -乔治

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

    感谢您的答复。 多个二进制文件可能 给 文件 管理带来一些不便。

    最后选择使用第三方工具。