gpt4 book ai didi

stm32 - Objcopy elf 到 bin 文件

转载 作者:行者123 更新时间:2023-12-04 06:35:52 30 4
gpt4 key购买 nike

我有 STM32F404 板,我正在尝试刷新它。我正在关注这个 tutorial .

项目中Makefile

$(PROJ_NAME).elf: $(SRCS)
$(CC) $(CFLAGS) $^ -o $@
$(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex
$(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin

burn: proj
$(STLINK)/st-flash write $(PROJ_NAME).bin 0x8000000

bin 文件是使用 OBJCOPY 生成的然后使用 Make 目标闪烁 burn
我的问题:

问题 1 : 什么 OBJCOPY=arm-none-eabi-objcopy在这种情况下。我打开了那个人,但我并没有完全理解,谁能简单解释一下?

问题 2 : 闪烁 bin 文件给出了预期的结果(LED 闪烁)但是 LED 没有通过闪烁 elf 文件而闪烁 $(STLINK)/st-flash write $(PROJ_NAME).elf 0x8000000所以为什么 ?

最佳答案

Question 1: What does OBJCOPY=arm-none-eabi-objcopy in this case. I opened the man but I didn't fully undrestand can anyone explain it simply ?



它分配值 arm-none-eabi-objcopymake变量 OBJCOPY .

make执行这个命令:
$(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin

运行的实际命令是
arm-none-eabi-objcopy -O binary tim_time_base.elf tim_time_base.bin

Question 2: Flashing the bin file gives the expected result (Leds blinking) However the leds are not blinking by flashing the elf file $(STLINK)/st-flash write $(PROJ_NAME).elf 0x8000000 so why?


tim_time_base.elf是一个 ELF 文件——它具有与之关联的元数据。运行 arm-none-eabi-readelf -h tim_time_base.elf看看这些元数据是什么。

但是当你的处理器跳转到位置 0x8000000重置后,它期望找到可执行指令,而不是元数据。当它发现它不理解的“垃圾”时,它可能只是停止。它当然没有找到使灯闪烁的说明。

关于stm32 - Objcopy elf 到 bin 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680382/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com