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.

[参考译文] Linux/LAUNCHXL2-TMS57012:将 elf 文件上传到 TMS57012微控制器时出现问题

Guru**** 2479895 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/697829/linux-launchxl2-tms57012-problem-uploading-elf-file-into-the-tms57012-microcontroller

器件型号:LAUNCHXL2-TMS57012
主题中讨论的其他器件:UNIFLASH

工具/软件:Linux

您好!  

尝试使用 uniFlash Linux CLI 工具将我自己的.elf 文件上载到 TMS57012板中、但我从 Linux shell 中得到此错误:  

DSLite 版本8.1.0.1275
正在配置调试器(首次启动可能需要几分钟时间)...
正在初始化寄存器数据库...
正在初始化:IcePick
执行启动脚本:IcePick
正在初始化:DAP
执行启动脚本:DAP
正在初始化:CortexR4
执行启动脚本:CortexR4
正在连接...
CortexR4:GEL 输出:闪存的存储器映射设置@地址0x0Fail:无法打开文件:闪存

我在 Linux shell 中输入的命令为:  

dslite.sh flash -c /home/saeed/Desktop/TMS57012_Kernel/TMS570LS12_Configuration.ccxml -e -f -v /home/saeed/Desktop/kernel.elf

当 endianess 标志设置为-msittle-endian 并且我尝试将.EFL 文件上载到基于云的 uniflash 工具(dev.ti.com/uniflash)时、uniFlash 工具会抛出不同的错误: 与目标字节序不匹配、未加载。 检查项目构建选项和目标配置文件(CCXML)。  

如果我尝试在  Makefile 中将 endianess 标志设置为-mbig-endian、然后尝试  make kernel.elf  我从 Linux shell 中获得此错误: arm-linux-gnueabi-ld:kernel.o:为大端系统编译、目标是小端字节序

现在、我将尝试通过将一个非常简单的编译代码上传到板中来开始设计。 我不使用 TI ARM 编译器、但我使用的是开源 ARM-Linux-gnueabi-gcc  编译器。 我怀疑问题可能出在我编写的 Makefile、因此我附加了 Makefile、file.ccxml 和我提到的简单.C 文件(zip 文件夹中的所有文件)。

e2e.ti.com/.../0564.proj.zip

更新:实际上、如果我能获得有关使用 ARM-Linux-gnueabi-gcc 工具为这个简单程序创建 makefile 的指导、那将是很好的。  我在编译时获得的二进制映像似乎不起作用、因为我认为 CFLAGS、LDFLAGS 和字节序存在问题。  此外、我不确定 uniFlash 工具是否会自动提供 startup.asm 来正确读取我上传到电路板中的 bin 映像。

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

    TMS570LS012x 属于大端字节序系列、GCC 不支持大端字节序。 您将无法将小端字节序可执行文件加载到大端字节序器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wang、  

    不确定您所说的内容是否准确、因为此主题(answers.launchpad.net/.../189066) 建议有一个适用于大端字节序支持的补丁。

    此外、这是使 gcc 大端字节序在 TMS570平台上工作的非官方补丁:  

    github.com/.../c8911853738dd5e1fa0d833c317da3806a92464b  

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

    我能够修补 GCC 工具链以生成大端 file.bin 图像。 我还从 HAL 代码生成器(sys_link.ld)生成了链接器脚本、并将其插入到我的 Makefile 中以进行编译链接。 您是否知道 startup.asm 代码是通过 UniFlash 工具自动集成到 file.bin 中,还是必须创建自己的启动文件并将其与映像链接?

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

    unflash 用于擦除闪存、并将映像擦除至闪存。 它无法将 startup.asm 集成到您的 file.bin 文件中。 startup.asm 是您的项目的一部分、应该被编译/链接到您的 file.bin。