mmap () size_t переполнение для файла ./build/vsarm_firmware.bin - PullRequest
0 голосов
/ 14 июля 2020

Итак, я пытаюсь создать среду кодирования для встроенного программирования (Nucleo-F401RE со встроенной схемой отладки ST-LINK) в VSCode, и одна из вещей, которые мне нужно сделать, это, очевидно, fla sh код MCU. Я следил за некоторым учебником, который я нашел в Интернете, о том, как это сделать, и в основном мне удавалось исправлять вещи, которые не работали, но когда дело доходит до перепрошивки кода, я в значительной степени застрял, так как я не Я действительно не знаю, что здесь происходит. Итак, я использую сценарий tasks. json со следующей задачей:

 {
        "label": "Load Firmware",
        "type": "shell",
        "command": "st-flash write ./build/vsarm_firmware.bin 0x08000000",
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": []
    }

И когда я пытаюсь передать sh свой код в MCU, я получаю следующую ошибку:

st-fla sh 1.6.1 2020-07-14T19: 03: 31 Общая информация. c: F4xx (Dynami c Efficency): 96 KiB SRAM, 512 KiB fla sh минимум на 16 страницах КиБ. mmap () size_t overflow для файла ./build/vsarm_firmware.bin 2020-07-14T19: 03: 31 Обычная ОШИБКА. c: map_file () == -1 stlink_fwrite_fla sh () == -1 Терминальный процесс "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -Command st-fla sh write ./build/vsarm_firmware.bin 0x08000000" завершается кодом выхода: 1.

Я действительно хотел бы рассказать вам, что я пытался исправить, но на самом деле я понятия не имею, с чего начать, поэтому мне действительно нужна помощь.

1 Ответ

0 голосов
/ 02 августа 2020

Мне кажется, я следовал тому же руководству, что и вы. :) Я отказался от программы обновления "st-fla sh", упомянутой в руководстве, и использовал ту, которую можно загрузить с официального сайта STM, под названием "STM32 ST-LINK utility", и использовал их команду CLI, которая входит в пакет.

Я создал задачу. json в VSCode и использовал следующий синтаксис (некоторый забавный синтаксис, потому что у меня есть пробелы на моем пути) и смог начать мигать мою плату. Конечно, вы, вероятно, захотите добавить ST-LILNK_CLI.exe к своему пути, но это всего лишь быстрый пример того, что сработало для меня, прежде чем я начал наводить порядок.

"command": "&'M:/dev/stm32/STM32 ST-LINK Utility/ST-LINK Utility/ST-LINK_CLI.exe' -ME -P ./build/free-rtos-test.bin 0x08000000 -V -HardRst"

К вашему сведению, параметр HardRst, похоже, не работает если только он не в самом конце.

...