我正在努力将项目从Kail迁移到Gcc。
Makefile http://www.copypastecode.com/73860/ .ld文件http://www.copypastecode.com/73856/
我有一个Makefile和一个platform.ld脚本以及一些.c和.h文件。 当我制作时,一切都编译和链接,它看起来很好。
arm-none-eabi-size -B输出/ stm32_gps_test.elf
text data bss dec hex filename
0 0 2048 2048 800 Output/stm32_gps_test.elf
但是当我检查生成的文件时,我看到了:
输出/
7327274 2011-07-02 04:28 stm32_gps_test.elf
0 2011-07-02 04:28 stm32_gps_test.bin
34 2011-07-02 04:28 stm32_gps_test.hex
和
tail Output / stm32_gps_test.hex
:0400000508000000EF
:00000001FF
关于精灵档案的一些信息:
arm-none-eabi-readelf -h输出/ stm32_gps_test.elf
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Entry point address: 0x8000000
Start of program headers: 52 (bytes into file)
Start of section headers: 7323752 (bytes into file)
Flags: 0x5000002, has entry point, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 1
Size of section headers: 40 (bytes)
Number of section headers: 18
Section header string table index: 15
有什么问题?我试图运行objcopy来创建binfile和hexfile,但结果总是一样。
答案 0 :(得分:0)
当你拆卸它时你看到了什么? (objdump -D)如果你有例如0x80000000的rom图像和0x20000000的ram,来自objcopy的.bin文件将至少为0x60000000字节加上rom中图像的大小。 intel hex文件或srec应该可以工作。
答案 1 :(得分:0)
选项--set-section-flags .bss=alloc,load,contents
是否有效?使用此选项,.bss部分将包含在stm32_gps_test.bin中。