8. 发布您的OpenMV Cam脚本以供生产使用

一旦您的 OpenMV Cam 脚本按照您的要求工作,并且您准备好使用 OpenMV 驱动的产品,您需要将您的脚本固化到固件中。为此,您需要编译我们的固件。幸运的是,由于 GitHub 的存在,您可以在云端进行此操作,而无需安装我们的构建系统。

对于高级用户,我们建议设置我们的固件开发环境,以便您可以从源代码构建固件。请参阅 此处 了解如何操作。

对于其他用户,您可以使用GitHub 操作。要这样做,请按照以下步骤操作:

  1. 如果您还没有GitHub账户,请注册一个GitHub账户。

  2. Fork OpenMV 固件 存储库

  3. 在您的fork上启用GitHub操作。

完成以上操作后,您可以在 GitHub 上在线编辑文件,您的 Fork 将自动构建一个新的固件映像用于您的 OpenMV Cam。

8.1. 如何固化您的脚本

将脚本固化到固件中的过程可以确保您的代码不能被最终用户编辑。最重要的是,这意味着您的代码将在不需要内部闪存和/或 SD 卡上的任何文件的情况下运行。此外,任何位于内部闪存或 SD 卡上的文件将被您固化的脚本覆盖。

无论如何,要固化脚本,您只需要执行以下操作:

  1. 将您的自定义脚本添加到 libraries 文件夹

  2. 将您的 main.py 脚本重命名为 boot.py,以便在其他任何操作之前首先运行它。

  3. 确定哪个 board 文件夹 对应于您的 OpenMV Cam。

    • OPENMV2 -> OpenMV Cam M4。

    • OPENMV3 -> OpenMV Cam M7。

    • OPENMV4 -> OpenMV Cam H7。

    • OPENMV4P -> OpenMV Cam H7 Plus。

    • 其他都应该很直接。

  4. 编辑与您的板型对应的 manifest.py 文件,以包含您的脚本。如果您只有一个脚本,那么至少应将 freeze ("$(OMV_LIB_DIR)/", "boot.py") 添加到 manifest.py 文件中。

  5. 编译代码并为您的OpenMV Cam生成固件映像。

一旦您将这个新的固件映像烧录到您的 OpenMV Cam 中,它将自动在执行任何其他操作之前运行您的脚本。在运行您的代码之前,不会查看内部闪存或连接的 SD 卡上的任何文件。也就是说,您的脚本仍然可以确定是否连接了 SD 卡,并读取/写入文件。因此,如果您仍希望能够从闪存和/或 SD 卡执行通用脚本,您可以这样做。

8.2. 如何保护您的代码

一旦您将脚本固化到固件中,您的代码只能被能够转储您的 OpenMV Cam 的程序闪存的工具提取(或者如果你在代码中设置了后门漏洞)。所有现代 MCU 都提供了开发人员可以使用调试工具保护其应用程序免受读取的方式。目前,OpenMV 尚未提供一种通用的方式让您执行此操作。我们将此留给您自己处理。但请放心,如果您真的需要阻止任何人查看您的脚本,这绝对是可能的。