官术网_书友最值得收藏!

Binary format conversion

Despite containing all the compiled symbols in binary format, an ELF file is prefixed with a header that contains a description of the content, and pointers to the position where the sections start within the file. All this extra information is not needed to run on an embedded target, so the ELF file produced by the linker has to be transformed into a plain binary file. A tool in the toolchain, called objcopy, converts images from one standard format to others, and what is generally done is a conversion of the ELF into a raw binary image, without altering the symbols. To transform the image from ELF to binary format, invoke:

$ arm-none-eabi-objcopy -I elf -O binary image.elf image.bin

This creates a new file, called image.bin, from the symbol contained in the original ELF executable, which can be uploaded to the target.

Even if not suitable in general for direct upload on the target with third-party tools, it is possible to load the symbols through the debugger and upload them to the flash address. The original ELF file is also useful as the target of other diagnostic tools in the GNU toolchain, such as nm and readelf, which display the symbols in each module, with their type and relative address within the binary image. Furthermore, by using the objdump tool on the final image, or even on single object files, several details about the image can be retrieved, including the visualization of the entire assembly code, using the -d disassemble option:

arm-none-eabi-objdump -d image.elf
主站蜘蛛池模板: 乐安县| 长武县| 甘德县| 宜春市| 五华县| 巴马| 永安市| 商洛市| 赣榆县| 营口市| 陆川县| 合阳县| 张家界市| 祁东县| 肇东市| 宁远县| 康马县| 周宁县| 岢岚县| 乡城县| 建阳市| 阿勒泰市| 灵寿县| 武宁县| 安图县| 新巴尔虎左旗| 镇平县| 田阳县| 黑河市| 普格县| 铜山县| 庆安县| 淳化县| 达拉特旗| 高台县| 彭山县| 鄂伦春自治旗| 尖扎县| 万全县| 察雅县| 平泉县|