工具与软件:
您好!
我需要将.out 文件转换为一个 c 数组。 对于 F28、使用 hex2000时、在尝试转换 F29 .out 文件 hex2000时可能会报告错误:
c29clang 工具链似乎没有任何类似的工具。 有没有遗漏的东西?
提前感谢 Dmitri
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.
工具与软件:
您好!
我需要将.out 文件转换为一个 c 数组。 对于 F28、使用 hex2000时、在尝试转换 F29 .out 文件 hex2000时可能会报告错误:
c29clang 工具链似乎没有任何类似的工具。 有没有遗漏的东西?
提前感谢 Dmitri
Unknown 说:]尝试转换 f29 .out 文件 hex2000时报告错误
C2000编译器工具链未进行文档记录或测试、不能与 C29编译器工具链创建的文件一起使用。
Unknown 说:c29clang 工具链似乎没有任何类似的工具。
C29工具链不包含十六进制实用程序。
请考虑另一个解决方案。 此解决方案依赖于编译器的一个特性、该特性称为 #embd. . 以下是有关此功能的一些注意事项:
综上所述、它是解决您的问题的一种极具吸引力的方法。
第一步是将此文件转换为输出文件...
Unknown 说:我需要将.out 文件转换为一个 c 数组。
...二进制文件。 要了解我的术语二 进制文件的含义、请参阅文章二进制文件简介。 这篇文章显示 创建二进制文件的命令类似于...
% c29objcopy -O binary file.out file.bin
使用 #embd. 将此二进制文件集成到 C 文件的指令...
/* embed_example.c */ const unsigned char binary_data[] = { #embed "file.bin" };
当你构建这个文件,你得到一个警告诊断...
% c29clang -c embed_example.c embed_example.c:3:6: warning: #embed is a C23 extension [-Wc23-extensions] 3 | #embed "file.bin" | ^ 1 warning generated.
。 #embd. C 编程语言的 C23标准中介绍了 Feature。 c29clang 编译器不支持 C23。 但它支持这一功能作为扩展。
假定 file.bin 是同一个创建在文章 二进制文件简介. 要查看二进制文件中的字节是否已集成、请使用类似于...的命令检查目标文件。
% c29objdump --full-contents --section=.rodata.binary_data embed_example.o embed_example.o: file format elf32-c29 Contents of section .rodata.binary_data: 0000 bbbbbbbb bbbbbbbb bbbbbbbb bbbbbbbb ................ 0010 00000000 00000000 00000000 00000000 ................ 0020 aaaaaaaa aaaaaaaa ........
阵列中 BINARY_DATA 位于名为 .rodata.binary_data . 以了解有关该命令的信息 c29objdump 及其选项、请查看 c29clang 在线文档中的相应页面。
谢谢。此致、
-George.