Objcopy elf в bin файл

У меня стоит плата STM32F404, и я пытаюсь ее прошить. Я следую этому руководству.

В проекте

Мои вопросы :

Вопрос 1: что означает OBJCOPY=arm-none-eabi-objcopy в этом случае. Я открыл человека, но не полностью раскрыл, и может ли кто-нибудь просто объяснить?

Вопрос 2: мигание файла bin дает ожидаемый результат (светодиоды мигают) Однако светодиоды не мигают при перепрошивке файла elf $(STLINK)/st-flash write $(PROJ_NAME).elf 0x8000000, так почему?


person Mouin    schedule 05.04.2018    source источник


Ответы (1)


Вопрос 1: Что в данном случае означает OBJCOPY = arm-none-eabi-objcopy. Я открыл человека, но не полностью раскрыл, и может ли кто-нибудь просто объяснить?

Он присваивает значение arm-none-eabi-objcopy make переменной 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

Вопрос 2: Перепрограммирование файла bin дает ожидаемый результат (светодиоды мигают) Однако светодиоды не мигают при перепрошивке файла elf $ (STLINK) / st-flash write $ (PROJ_NAME) .elf 0x8000000, так почему?

tim_time_base.elf - это файл ELF, с ним связаны метаданные. Запустите arm-none-eabi-readelf -h tim_time_base.elf, чтобы узнать, что это за метаданные.

Но когда ваш процессор переходит в позицию 0x8000000 после сброса, он ожидает найти исполняемые инструкции, не метаданные. Когда он находит «мусор», он не понимает, он, вероятно, просто останавливается. Он, конечно, не находит инструкций, как мигать огнями.

person Employed Russian    schedule 06.04.2018
comment
Спасибо @Employed Russian, за вопрос 1, цель вопроса - подробнее объяснить, как работает objcopy - person Mouin; 06.04.2018
comment
Как objcopy переводит эти метаданные в корзину? - person Mouin; 06.04.2018
comment
@Mouin вообще нет. он не нужен для выполнения программы, поэтому просто отбрасывает его - person Lennon McLean; 25.04.2021