У меня стоит плата STM32F404, и я пытаюсь ее прошить. Я следую этому руководству.
Objcopy elf в bin файл
Мои вопросы :
Вопрос 1: что означает OBJCOPY=arm-none-eabi-objcopy
в этом случае. Я открыл человека, но не полностью раскрыл, и может ли кто-нибудь просто объяснить?
Вопрос 2: мигание файла bin дает ожидаемый результат (светодиоды мигают) Однако светодиоды не мигают при перепрошивке файла elf $(STLINK)/st-flash write $(PROJ_NAME).elf 0x8000000
, так почему?
Ответы (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
после сброса, он ожидает найти исполняемые инструкции, не метаданные. Когда он находит «мусор», он не понимает, он, вероятно, просто останавливается. Он, конечно, не находит инструкций, как мигать огнями.