【问题标题】:mmap() size_t overflow for file ./build/vsarm_firmware.bin文件 ./build/vsarm_firmware.bin 的 mmap() size_t 溢出
【发布时间】:2020-07-14 17:14:41
【问题描述】:

所以,我正在尝试在 VSCode 中为嵌入式编程(带有板载调试电路 ST-LINK 的 Nucleo-F401RE)创建一个编码环境,而我需要做的一件事显然是刷新代码到单片机。 我一直在关注一些我在网上找到的关于如何做到这一点的教程,并且我大部分时间都能够修补那些不起作用的东西,但是当涉及到刷新代码时,我几乎被卡住了,因为我没有对这里发生的事情真的没有足够的了解。所以,我使用 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": []
    }

当我尝试将我的代码闪存到 MCU 时,我收到以下错误:

st-flash 1.6.1 2020-07-14T19:03:31 INFO common.c: F4xx (Dynamic Efficiency): 96 KiB SRAM, 512 KiB flash in at least 16 KiB pages。 文件 ./build/vsarm_firmware.bin 的 mmap() size_t 溢出 2020-07-14T19:03:31 错误 common.c: map_file() == -1 stlink_fwrite_flash() == -1 终端进程“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command st-flash write ./build/vsarm_firmware.bin 0x08000000”以退出代码终止:1。

我真的很想告诉你我尝试解决这个问题的方法,但事实是我不知道从哪里开始,所以我真的很想在这里得到一些帮助。

【问题讨论】:

  • 联系上游并让他们知道。消息来自stlink common.c./build/vsarm_firmware.bin 文件的大小是多少?是否超过 4 GB?
  • @KamilCuk 它是 5 KB
  • 我投票结束这个问题,因为它不是一个编程问题,只是关于其他软件错误或使用。只需将错误(问题)报告给程序作者。我们帮不了你。
  • @p__j__ 问题是:我不知道是编程问题还是需要报告的错误,也许是我搞砸了?

标签: c arm embedded stm32


【解决方案1】:

我想我和你学的教程一样。 :) 我放弃了教程中提到的“st-flash”更新程序,并使用了可从 STM 官方网站下载的名为“STM32 ST-LINK 实用程序”的更新程序,并使用了软件包中的 CLI 命令。

我在 VSCode 中创建了一个 tasks.json 并使用了以下语法(一些时髦的语法,因为我的路径中有空格)并且已经能够开始刷新我的板。当然,您可能希望将 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 参数似乎失败了,除非它在最后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多