首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NRF52840 PlatformIO编程

从NRF52840 PlatformIO编程
EN

Stack Overflow用户
提问于 2020-05-23 22:32:50
回答 2查看 805关注 0票数 0

我正在跟踪dk.html,但实际上我没有DK,我有一个NRF52840 "Dongle“。有人知道这是否有可能直接与PlatformIO一起工作吗?它有一个内置的引导加载程序,但我不认为它模仿的是正确的程序员。我安装了nrfutil,但这需要一个软件包(.zip),而platformio正在生产.精灵/.十六进制.不知道如何连接这些工具。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-01 20:14:25

您可以使用nrfutil pkg generate将十六进制文件转换为包:

pkg.html

FYI,由于您没有调试接口,所以使用PlatformIO可能不会有多大好处。根据所使用的框架,可能还有其他选项,如Zephyr的文档:

doc 52840/doc/index.html

票数 0
EN

Stack Overflow用户

发布于 2020-11-29 16:44:23

platformio.ini配置:

代码语言:javascript
复制
[env:nrf52840_dongle]
platform = nordicnrf52
board = nrf52840_dk
framework = zephyr
board_build.zephyr.variant = nrf52840dongle_nrf52840
extra_scripts = dfu_upload.py
upload_protocol = custom

添加到项目根dfu_upload.py脚本:

代码语言:javascript
复制
import sys
import os
from os.path import basename
Import("env")

platform = env.PioPlatform()

def dfu_upload(source, target, env):
    firmware_path = str(source[0])
    firmware_name = basename(firmware_path)


    genpkg = "".join(["nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application ", firmware_path, " --application-version 1 firmware.zip"])
    dfupkg = "nrfutil dfu serial -pkg firmware.zip -p COM14 -b 115200"
    print( genpkg )
    os.system( genpkg )
    os.system( dfupkg )

    print("Uploading done.")


# Custom upload command and program name
env.Replace(PROGNAME="firmware", UPLOADCMD=dfu_upload)
  • 恩弗蒂位置添加到系统配置"path“变量
  • 在上传固件切换到dfu模式(按钮重置)之前
  • 在线设置dongle COM号码:dfupkg = "nrfutil dfu serial -pkg firmware.zip -p COM14 -b 115200" in dfu_upload.py

您可以在这里找到许多示例:Zephyr github

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61979408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档