Роль загрузчика?

турбосквит
Пн 25 июня 2018 г., 21:12
Какова роль загрузчика загрузчика? Требует ли изображение, чтобы его загрузили правильно?

Я собираюсь попробовать небольшую программу с FR22-Library, чтобы увидеть, делаю ли я что-то не так в своем коде или если мой радиомодуль сломан.
У меня есть .У нас с бином есть ST-Link V2 Mini (который я использовал с Eclipse + Openocd).
Я использую Linux (так что программа ST-Link не является вариантом).

Могу ли я загрузить бин-файл без загрузчика с использованием Arduino IDE? Или изображение каким -то образом отличается от «стандартного» изображения? (То, что нужно пропустить в начале или что -то в этом роде.)

Я попытался Google об этих вещах и о инструментах в инструментах arduino_stm32 «.

Сжимать
Пн 25 июня 2018 г., 21:25
Если вы используете ST-Link, нет причин для использования загрузчика, вы можете выбрать метод загрузки из меню (Bootloader и Stlink среди других).
Имейте в виду, что двоичные файлы для загрузчика и методов загрузки Stlink разные. Обычно векторы прерывания расположены в начале флэш -памяти на 0x08000000, но при использовании загрузчика эта память выделяется самой загрузчиком, а векторы прерывания перемещаются по адресу 0x08002000.
Bootloader - это простой способ перепрограммировать MCU USB без какого -либо другого инструмента.

Mrburnette
Пн 25 июня 2018 г. 11:55 вечера
STM32 Bootloader
Хорошее чтение.

В целом, большинство реализаций платы Arduino используют некоторую форму загрузчика, хотя это не уникальная функция Arduino. Давным -давно, в мире микрокомпьютера, загрузчик часто называли процедурами начальной загрузки... Небольшая программа установлена ​​для загрузки основной программы... Часто, используя периферийное устройство, как считыватель бумажной ленты, считыватель программной карты или магнитная лента. После загрузки основной программы загрузчик больше не нужен до загрузки следующей программы... Загрузчик не следует путать с BIOS.

Луча

турбосквит
Вт 26 июня 2018 г., 4:05
Да, я использую BluePills, и у них есть серийный загрузочный загрузчик в системной памяти, но я использовал ST-Link.
Мне интересно, как мне загрузить изображение Arduino (бинарное).
Нужно ли мне генерировать другое изображение для загрузки с помощью ST-Link и без загрузки?
И достаточно ли этого, если я использую «загрузку с использованием программиста» вместо «загрузки»?
И куда, в памяти, идет загрузчик, если используется?

турбосквит
Вт 26 июня 2018 г., 4:58 утра
[Mrburnette - Пн 25 июня 2018 г., 23:55] - STM32 Bootloader
Хорошее чтение.

В целом, большинство реализаций платы Arduino используют некоторую форму загрузчика, хотя это не уникальная функция Arduino. Давным -давно, в мире микрокомпьютера, загрузчик часто называли процедурами начальной загрузки... Небольшая программа установлена ​​для загрузки основной программы... Часто, используя периферийное устройство, как считыватель бумажной ленты, считыватель программной карты или магнитная лента. После загрузки основной программы загрузчик больше не нужен до загрузки следующей программы... Загрузчик не следует путать с BIOS.

Луча
Я знаю. В университете мы написали программу голого металла для PDP11/34. :ржу не могу:

Стивестронг
Вт 26 июня 2018 г., 6:49
Если вы прочитали информацию, указанную Рэем, вы уже получили ответы на некоторые из ваших вопросов, верно?

турбосквит
Вт 26 июня 2018 г., 16:21
Ну, загрузчик, кажется, загружается на 0x08000000, но размер неизвестен. Так же адрес, где этот загрузчик загружает приложение.
Я предполагаю, что загруженное изображение начинается с начала следующей страницы флэш -ки?
Кроме того, неясно, как обрабатываются векторы. Всегда ли arduino переезжает на векторы или обрабатывает векторы по -разному, если загрузчик не используется.
И это «загрузка» против. «Загрузить с помощью программиста» разница или делает «загрузку с использованием программиста»?

По крайней мере, похоже, что «загрузка» используется после «загрузки с использованием программиста» или наоборот, Ардуино, кажется, перекомпилирует материал.
Я считаю, что изображение из «проверки/компиляции» и «Экспорта компилированного двоичного» делает изображение с перемещенными векторами?

[редактировать]
В коде загрузчика я нашел: user_code_flash0x8005000 и user_code_flash0x8002000. Я думаю, это адреса нагрузки. Просто неясно, что используется для чего.
"Я бы предположил, что загруженное изображение начинается с начала следующей страницы Flash?"
Или тогда нет - 1 КБ страницы...

турбосквит
Вт 26 июня 2018 г., 19:38
Попробовал «Загрузка с помощью программиста»...

DMESG говорит: [ 160.348038] usb 6-2: new full-speed USB device number 3 using uhci_hcd [ 160.515122] usb 6-2: New USB device found, idVendor=0483, idProduct=3748 [ 160.515128] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 160.515132] usb 6-2: Product: STM32 STLink [ 160.515135] usb 6-2: Manufacturer: STMicroelectronics [ 160.515137] usb 6-2: SerialNumber: S\xffffffc3\xffffffbf\xffffffbfq\x06P\xffffffc2\xffffff88\xffffff88SQ"\x19\x13\xffffffc2\xffffff87\xffffff87

турбосквит
Вт 26 июня 2018 г., 8:20 вечера
Ага. Голая "загрузка", кажется, работает... Sketch uses 17412 bytes (26%) of program storage space. Maximum is 65536 bytes. Global variables use 2376 bytes (11%) of dynamic memory, leaving 18104 bytes for local variables. Maximum is 20480 bytes. 2018-06-26T23:06:06 INFO src/stlink-usb.c: -- exit_dfu_mode 2018-06-26T23:06:06 INFO src/stlink-common.c: Loading device parameters.... 2018-06-26T23:06:06 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410 2018-06-26T23:06:06 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes 2018-06-26T23:06:06 INFO src/stlink-common.c: Attempting to write 17412 (0x4404) bytes to stm32 address: 134217728 (0x8000000) Flash page at addr: 0x08000000 erased Flash page at addr: 0x08000400 erased Flash page at addr: 0x08000800 erased Flash page at addr: 0x08000c00 erased Flash page at addr: 0x08001000 erased Flash page at addr: 0x08001400 erased Flash page at addr: 0x08001800 erased Flash page at addr: 0x08001c00 erased Flash page at addr: 0x08002000 erased Flash page at addr: 0x08002400 erased Flash page at addr: 0x08002800 erased Flash page at addr: 0x08002c00 erased Flash page at addr: 0x08003000 erased Flash page at addr: 0x08003400 erased Flash page at addr: 0x08003800 erased Flash page at addr: 0x08003c00 erased2018-06-26T23:06:07 INFO src/stlink-common.c: Finished erasing 18 pages of 1024 (0x400) bytes 2018-06-26T23:06:07 INFO src/stlink-common.c: Starting Flash write for VL/F0/F3 core id Flash page at addr: 0x08004000 erased Flash page at addr: 0x08004400 erased 2018-06-26T23:06:07 INFO src/stlink-common.c: Successfully loaded flash loader in sram 0/17 pages written 1/17 pages written 2/17 pages written 3/17 pages written 4/17 pages written 5/17 pages written 6/17 pages written 7/17 pages written 8/17 pages written 9/17 pages written 10/17 pages written 11/17 pages written 12/17 pages written 13/17 pages written 14/17 pages written 15/17 pages written2018-06-26T23:06:08 INFO src/stlink-common.c: Starting verification of write complete 16/17 pages written 17/17 pages written2018-06-26T23:06:09 INFO src/stlink-common.c: Flash written and verified! jolly good!

Сжимать
Вт 26 июня 2018 г., 8:52 вечера
Если вы выбираете загрузку с помощью STLINK, изображение «стандартное», начинается с 0x08000000

турбосквит
Ср 27 июня 2018 г., 4:42
Ах, это волшебство ,,, (метод инструментов/загрузки?)

Кстати, что такое «загрузка с использованием программиста» для?