Skip to content

Latest commit

 

History

History
310 lines (194 loc) · 12.4 KB

README.zh-cn.md

File metadata and controls

310 lines (194 loc) · 12.4 KB

#yourfirstpr Build Status NuGet Discord

nanoFramework logo


切换语言: English | 简体中文

欢迎来到.NET nanoFramework 固件刷写工具存储库

这个存储库包含.NET nanoFramework固件刷写工具。
这是一个.NET Core 工具,它能够将固件映像 (nanoBooter和nanoCLR) 刷写进一个.NET nanoFramework 支持的设备,部署应用程序(运行.NET应用程序所需的所有程序集)并恢复先前保存的部署映像。 它是.NET nanoFramework工具集的一部分,与其他用于.NET nanoFramework开发、使用或仓库管理的各种工具一起使用。

它使用了几个第三方工具:

  • 乐鑫 esptool 您可以在存储库中找到esptool和许可信息 链接.
  • STM32 Cube Programmer 您可以找到源代码、许可信息和文档 链接.
  • Texas Instruments Uniflash 您可以找到Uniflash工具和许可信息 链接.

我们还将此工具作为 .NET 库分发,以便它可以集成到第三方应用程序中。请查看“Samples”文件夹中的 README 以获取更多详细信息以及示例应用程序。

安装.NET nanoFramework 固件刷写工具

使用以下.NET Core CLI命令一键安装.NET nanoFramework 固件刷写工具:

dotnet tool install -g nanoff

成功安装后,将显示一条消息,显示将用于调用工具和所安装的版本的命令。 类似于下面的例子:

You can invoke the tool using the following command: nanoff
Tool 'nanoff' (version '9.9.9') was successfully installed.

安装路径相关的问题

⚠️已知在安装路径中包含变音符号(例如:法语中的重音符号(acute accent)用于表示元音应该发/ay/的音)时,使用nanoff为STM32设备运行命令会出现问题。这是由于STM32 Cube Programmer中的一个已知错误引起的。如果您的路径中存在这种情况,您必须将其安装在没有这些字符的位置。为了实现这一点,可以使用以下.NET Core CLI命令,在其中指定工具将安装的路径:

dotnet tool install nanoff --tool-path c:\a-plain-simple-path-to-install-the-tool

请注意,如果您没有在STM32设备中使用'nanoff',则此限制不适用。

对于MacOS

您需要将nanoff添加到您的路径中。安装完成后,运行以下命令:

export PATH=$PATH:~/.dotnet/tools

更新.NET nanoFramework固件flash

要更新.NET nanoFramework 固件刷写工具,请使用.NET Core CLI命令:

dotnet tool update -g nanoff

如果工具安装在特定的路径下,请使用以下.NET Core CLI命令:

dotnet tool update nanoff --tool-path c:\path-where-the-tool-was-installed

使用方法

一旦安装了该工具,你就可以通过命令“nanoff”来调用它,这是该程序名称的简称,以方便输入。

nanoff [command] [args]

该工具包括所有可用命令的帮助,您可以通过输入以下命令来查看:

nanoff --help

ESP32 用法示例

有多个ESP32固件可用,一些是专门为一个设备构建的。 请参阅 列表.

ESP32_PSRAM_REV0固件将只适用于ESP32系列的任何变体,带或不带pram,以及所有silicon版。
你可以阅读更多关于不同固件之间的差异 链接.

FEATHER_S2固件将适用于几乎所有的ESP32-S2系列的变体,暴露嵌入式USB CDC引脚。

你可以阅读更多关于不同固件之间的差异 链接.

当使用'nanoff'时,你可以添加'——target MY_TARGET_NAME_HERE'来使用特定的固件。 如果,相反,您只指定平台与'——platform esp32' 'nanoff'将自动选择最合适的固件,这取决于所连接的设备的功能。 类似于这个的输出将会显示出什么固件将要被使用:

No target name was provided! Using 'ESP32_REV0' based on the device characteristics.

注意:请注意,对于ESP32-S2,不可能安全地确定使用什么是最好的固件。 由于这个原因,它必须提供适当的设备名称与'——target MY_TARGET_NAME_HERE'。

部分ESP32单板进入引导加载模式存在问题。 这通常可以通过按住BOOT/FLASH按钮来解决。
如果' nanoff '检测到这种情况,会显示以下警告:

*** Hold down the BOOT/FLASH button in ESP32 board ***

⚠️ 要更新FeatherS2、TinyS2和一些S3模块,您需要将开发板置于下载模式。具体操作方法是按住[BOOT]按钮,单击[RESET]按钮,然后松开[BOOT]按钮。

更新ESP32版本的设备器固件

更新连接到COM31的ESP32设备器的固件到最新可用的开发版本。

nanoff --update --target ESP32_PSRAM_REV0 --serialport COM31

使用本地CLR文件更新ESP32-S2 KALUGA 1的固件

使用本地CLR文件(例如来自一个构建文件)更新连接到COM31的ESP32-S2 KALUGA 1设备的固件。
这个文件必须是一个二进制文件,且必须是有效且经过构建的CLR。 对文件内容不执行其他检查或验证。

nanoff --update --target KALUGA_1 --serialport COM31 --clrfile "C:\nf-interpreter\build\nanoCLR.bin" 

您可以调整要使用的核心固件的名称。 请参阅前一节以获得完整的列表。

显示所连接的ESP32设备的详细信息

查看与COM31相连的ESP32设备的详细信息。

nanoff --platform esp32 --serialport COM31 --devicedetails 

可选地,可以传递额外的参数 --checkpsram,它会强制检测PSRAM的可用性。

将托管应用程序部署到ESP32设备

将托管应用程序部署到连接到COM31的ESP32_PSRAM_REV0设备上。

Note: 在成功构建之后,可以在Visual Studio项目的Release或Debug文件夹中找到包含部署映像的二进制文件。 此文件包含将托管应用程序部署到设备所需的所有内容(即应用程序可执行文件和所有引用的库和程序集)。

nanoff --target ESP32_PSRAM_REV0 --serialport COM12 --deploy --image "E:\GitHub\nf-Samples\samples\Blinky\Blinky\bin\Debug\Blinky.bin"

更新ESP32设备和托管应用程序的固件

要在连接到COM31的ESP32设备机上部署应用程序,您必须指定托管应用程序的路径。 您也可以提供一个地址,该地址将覆盖默认的部署地址。
本示例使用的是在构建应用程序时可以找到的二进制格式文件。 注意,因为只有应用程序可以运行,所以在构建库时,不会自动创建bin文件,这只针对应用程序。

nanoff --target ESP32_PSRAM_REV0 --update --serialport COM31 --deploy --image "c:\eps32-backups\my_awesome_app.bin" --address 0x1B000

STM32用法示例

更新指定STM32设备的固件

使用JTAG连接将ST_STM32F769I_DISCOVERY设备的固件更新到最新可用的稳定版本。

nanoff --update --target ST_STM32F769I_DISCOVERY --jtag

将托管应用程序部署到ST_STM32F769I_DISCOVERY设备

将托管应用程序部署到ST_STM32F769I_DISCOVERY设备,该设备的部署区域位于0x08080000 Flash地址,并在刷写后复位MCU。

Note: 在成功构建之后,可以在Visual Studio项目的Release或Debug文件夹中找到包含部署映像的二进制文件。 此文件包含将托管应用程序部署到设备所需的所有内容(即应用程序可执行文件和所有引用的库和程序集)。

nanoff --target ST_STM32F769I_DISCOVERY --deploy --image "E:\GitHub\nf-Samples\samples\Blinky\Blinky\bin\Debug\Blinky.bin" --address 0x08040000 --reset

更新ST_STM32F769I_DISCOVERY和托管应用程序的固件

使用JTAG连接和托管应用程序,将ST_STM32F769I_DISCOVERY设备的固件更新到最新可用的预览版本。
您必须指定托管应用程序的路径。
本例使用了Visual Studio在构建任何nanoFramework c#应用程序时生成的二进制格式文件。 因为它是一个二进制文件,所以您还必须指定部署区域的flash地址(这里是0x08000000,注意十六进制格式)。

nanoff --update --target ST_STM32F769I_DISCOVERY --jtag --binfile "c:\dev\my awesome app\bin\debug\my_awesome_app.bin" --address 0x08000000

列出JTAG连接中可用的所有STM32设备

这将列出通过JTAG连接的所有STM32设备。

nanoff --listjtag

列出所有可用的STM32设备与DFU连接

这将列出所有通过DFU连接的STM32设备。

nanoff --listdfu

安装STM32 JTAG驱动程序

为STM32 JTAG连接的设备安装驱动程序。

nanoff --installjtagdrivers

安装STM32 DFU驱动程序

为STM32 DFU连接的设备安装驱动程序。

nanoff --installdfudrivers

TI CC13x2使用示例

更新指定TI CC13x2设备的固件

将TI_CC1352R1_LAUNCHXL设备的固件更新到最新的预览版本。

nanoff --update --target TI_CC1352R1_LAUNCHXL --preview

安装TI LaunchPad设备所需的XDS110 USB驱动程序

安装XDS110 USB驱动。

nanoff --installxdsdrivers

预先检查设备是否与连接的设备相匹配

该工具会尽最大努力检查所请求的设备是否符合已连接的设备。
有时这是不可能的,因为设备名称的差异和变化,或者缺乏所连接设备提供的详细信息,甚至(像DFU所连接的设备),因为根本不可能确切地确定所连接的设备。
这并不一定意味着固件不能工作,所以这只是一个建议。

要禁用此验证,请在命令行中添加'——nofitcheck'选项。

工具输出详细

可以通过' v|verbosity '选项设置工具输出详细。

例如,如果在一个自动化流程中使用该工具,该流程需要最小的输出以简化对执行返回结果的处理,那么这是很方便的。 它可以设置为:

  • q[uiet]
  • m[inimal]
  • n[ormal]
  • d[etailed]
  • diag[nostic]
nanoff -v q

设备列表

翻译结果 您可以列出支持的设备及其版本,用于稳定版本或预览。 --platform 允许您过滤平台。

在预览版本中列出可用于ESP32设备的软件包。

nanoff --listboards --platform esp32

列出可用于STM32设备的包(稳定版本)。

nanoff --listboards --platform stm32

如果你只使用'——listtargets'开关,你会得到所有设备的所有稳定包的列表。

Exit codes

可以查看签入代码 这个源文件.

反馈和文档

如欲提供反馈、报告问题及了解如何作出贡献,请参阅 主储库.

加入我们的Discord社区 这里.

贡献者

此项目的贡献者列表可在以下网站找到 贡献者.

许可证

nanoFramework firmware flash工具使用 MIT许可证.

规范

这个项目采用了贡献者契约所定义的行为准则,以澄清我们社区的预期行为。
知识产权.NET Foundation Code of Conduct.

.NET Foundation

这个项目由.NET Foundation提供支持.