objdump -d fileName
,并且返回未知的体系结构,但是它可以识别fileName: file format srec
。 我已经尝试过
objdump --help
objdump -d -M srec myFile
解决此问题的最佳方法是什么?替代品?
#1 楼
SREC(aka S-Record)格式类似于原始二进制文件-它仅包含字节值,但与ELF不同,它不包含有关所使用的CPU或OS的元数据。可以使用objdump
开关将其传递给-m
,例如: br />与这些文件一起使用的通用CPU包括以前的Motorola系列,例如6800/6812(以及飞思卡尔的HC12),68K / Coldfire,但有时也包括其他一些,例如8051 使用
objdump -m arm -D file.srec
列出构建所支持的处理器和文件格式。您可能需要构建自定义的binutils构建以支持目标CPU。#2 楼
万一这最终对其他人有用,我有相同的确切错误,但这是在交叉编译项目中。我的问题是我的CMake工具链错误地将CMAKE_OBJDUMP设置为/ usr / bin / objdump而不是/ usr / bin / arm-none-eabi-objdump。我通过强制我的toolchain.cmake文件使用/ usr / bin / arm-none-eabi-objdump和/ usr / bin / arm-none-eabi-objcopy来解决此问题,方法是在调用之前将这些行添加到我的toolchain.cmake中to find_program(...):unset(CMAKE_OBJCOPY CACHE)
unset(CMAKE_OBJDUMP CACHE)
我的CMake版本是3.16.3。我为此提交了一个错误报告:https://gitlab.kitware.com/cmake/cmake/-/issues/20787
评论
非常感谢您的宝贵时间,事实上,我的目标是Motorola系列。使用objdump -i我没有看到它,所以我可能不得不走自定义构建路径...
–0siris
18年5月23日在21:17