跳转到内容

非官方 Numworks 扩展指南/设置开发环境

来自维基教科书,开放世界的开放书籍

Numworks SDK

[编辑 | 编辑源代码]

Numworks 做了一件很棒的事情 - 他们在 GitHub 上发布了计算器的完整源代码和 SDK,并通过最新的发布和错误修复积极地维护它。任何曾经想过为图形计算器编写自己的代码的人都知道,这与典型的计算器制造商相比,是一个惊人的 180° 转变。可以在 Numworks SDK 页面 上找到概述和 GitHub 链接,但文档不可避免地很稀疏,因此让我们帮助你设置一个功能完善的开发环境。

使用 Msys2 的 Windows 10

[编辑 | 编辑源代码]

Windows 可能不是理想的开源嵌入式开发平台,但它确实很流行,并且是一个简单的起点。得益于 Msys2 项目,为 Epsilon(Numworks 操作系统)设置一个类似 Linux 的开发环境非常容易。

安装和配置 Msys2

[编辑 | 编辑源代码]

按照 http://www.msys2.org/ 上的所有说明下载并运行 Msys2 安装程序。本节将假设你将 64 位 Msys2 环境安装在 c:/msys64,如果安装在其他位置,则需要调整列出的路径。这将为你提供一个功能完善的命令行,但没有任何开发工具(甚至没有 vi)。所以接下来是通过输入以下命令来安装开发工具链

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-fltk git make bison python vim

接下来,你需要将 mingw64 工具添加到你的路径中,以及为计算器使用的 ARM M4 处理器添加 ARM 编译器。你将在几个步骤中安装编译器,但我们将在此时添加路径。

分步进行

  • 转到 'c:\msys64\etc\skel'。
  • 打开 '.bash_profile' 文档。
  • 在文档末尾添加以下命令 export PATH=/mingw64/bin:/c/arm/bin:$PATH
  • 保存文档。
  • 转到 'c:\msys64\home\[YOUR USERNAME]'。
  • 打开 '.bash_profile' 文档。
  • 在文档末尾添加以下命令 export PATH=/mingw64/bin:/c/arm/bin:$PATH
  • 保存文档。

重新打开 Msys2 终端并键入 echo $PATH。如果一切正常,你应该在其他几个路径中看到 /mingw64/bin 和 /c/arm/bin 路径。

安装 ARM 编译器

[编辑 | 编辑源代码]

ARM 编译器不属于 Msys2,但可以在 ARM 下载页面 免费获得。

  1. 转到 ARM 下载页面 并下载 Windows 32 的 .ZIP 文件(没有 64 位版本)。
  2. 打开 .ZIP 文件并将所有内容解压缩到一个新的文件夹 C:/arm/ 中。
  3. 你现在应该拥有几个文件夹,其中一个文件夹是 C:/arm/bin。由于我们之前已经将此目录添加到你的 PATH 中,因此它已准备就绪。

设置 Git 并克隆源代码

[编辑 | 编辑源代码]

你需要使用 git 从 GitHub 下载 SDK,以及在开发新代码时管理你的版本。

  1. 安装使用 HTTPS 的 git 所需的 SSL 证书。 pacman -S mingw-w64-x86_64-ca-certificates ca-certificates
  2. 告诉 git 使用这些证书。 git config --system http.sslcainfo /mingw64/ssl/certs/ca-bundle.crt
  3. 如果你需要使用代理,则执行 export http_proxy=<在此处插入 http 代理地址:端口>export https_proxy=<在此处插入 https 代理地址:端口>。如果你不确定,请先尝试不使用代理。如果失败,请联系运行网络的人员获取正确的代理信息。
  4. 克隆 SDK 存储库时,它将被创建在当前目录中的名为 epsilon 的文件夹中,因此请创建你想要从中工作的目录并移动到该目录。例如:mkdir numworks 然后 cd numworks
  5. 现在你可以使用 git clone https://github.com/numworks/epsilon.git 克隆 SDK 存储库

你的第一个构建

[编辑 | 编辑源代码]

终于到了构建固件的时候了!

  1. 切换到 epsilon 目录 cd epsilon
  2. make MODEL=n01x0 clean
  3. make MODEL=n01x0 其中 x 为 0 或 1。你可以在计算器背面找到你的型号。

你的计算机将花费一段时间来编译所有代码。你可能会在编译期间看到一些警告,但你很可能可以忽略它们。如果你遇到错误,你需要阅读错误消息,看看是否能找出问题所在。如果一切都不奏效,请尝试回到存储库中的最后一个标记版本。

注意:如果你遇到名为“ft2build.h”的文件问题或任何包含“pkg-config”的错误,你应该考虑执行 pacman -S mingw-w64-x86_64-pkg-config

设置 USB 驱动程序

[编辑 | 编辑源代码]

片刻之后,你将使用名为 dfu-util 的程序将新编译的固件下载到你的计算器。但是,你第一次将计算器插入 USB 时安装并绑定到计算器的默认驱动程序将不适用于开发,因此我们将使用名为 Zadig 的程序告诉 Windows 将你的计算器指向标准 Windows USB 驱动程序。

  1. 在我们开始之前,让我们完成最简单的步骤,使用回形针或铅笔按下计算器背面的复位按钮。不要忘记,这将删除所有自定义脚本!
  2. 安装驱动程序。
    1. 在 Google 上搜索 'Numworks Workshop'。
    2. 官方网站将要求你登录。如果需要,请创建一个帐户并登录。
    3. 你将看到一个名为 '更新我的设备' 的按钮,请点击它。
    4. 点击下一页,点击 '下载驱动程序' 按钮并安装驱动程序。
  3. 下载 Zadig 的最新版本并运行它。
  4. 将计算器重新插入 USB 并按下 RESET 按钮。(是的,再次按下。在测试代码时,你将经常这样做。)
  5. 在 Zadig 的选项菜单中,确保选中了 '列出所有设备'。
  6. 在设备下拉列表中,选择 'NumWorks 计算器'(也可能显示为 'STM32 BOOTLOADER')。
  7. USB ID 应为 0483 DF11 或 A291,驱动程序可能显示为 STTub30。
  8. 你需要将 STTub30 替换为 WinUSB,因此请在绿色箭头右侧选择它。
  9. 点击 '替换驱动程序',Zadig 将安装新的驱动程序。
  10. 成功消息显示后,你可以关闭 Zadig。
  11. 从 USB 上拔下计算器并按下 RESET 按钮。

上传你的固件

[编辑 | 编辑源代码]

最后,你终于可以将新构建的固件下载到计算器...在我们安装了另一个部分:dfu-util 之后。

  1. http://dfu-util.sourceforge.net/releases/ 下载最新的 Windows 版本的 .ZIP 文件。
  2. 解压缩 .ZIP 文件,并将 dfu-util-static.exe 复制到 Msys2 的 /usr/local/bin 目录中。如果需要,请创建 bin 目录。
  3. 将复制的文件重命名为 dfu-util.exe
  4. 将计算器连接到 USB,并按重置按钮。(是的,再次按。我告诉过你,这将经常发生。)
  5. 现在,您终于可以从 epsilon 目录中运行 make MODEL=n01x0 epsilon_flash,其中 x 为 0 或 1。您可以在计算器背面找到您的型号编号。

在命令行中,您应该看到一条简短的消息,提示您的设备即将刷入固件,并给出重置设备的说明。然后是有关打开和声明 DFU 设备的几条消息,然后是下载进度条。完成后,计算器将自行重置并启动您新下载的固件!您可能不会看到任何差异,因为您可能已经在运行最新的固件,但是运行在计算器上的固件是在您的计算机上直接从源代码构建的,现在您可以修改它了。

恭喜您!您现在是一位 Epsilon 开发人员。花几分钟时间访问 http://numworks.comhttps://www.reddit.com/r/numworks,并向 Numworks 表示衷心的感谢,感谢他们让这款伟大的设备真正开源!

OS X(需要作者)

[编辑 | 编辑源代码]

安装 ARM 编译器

[编辑 | 编辑源代码]

ARM 编译器可以在 ARM 下载页面 免费获得。

  1. 访问 ARM 下载页面 并下载适用于 Linux 64 位的 .tar.bz2 文件(没有 32 位版本)。
  2. 将所有内容解压缩到 /opt : sudo tar xvjpf /path/to/downloaded/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 -C /opt。如果您没有 sudo 权限,可以解压缩到 ~
  3. 现在您应该有几个文件夹,其中一个是 /opt/gcc-arm-none-eabi-6-2017-q2-update/bin。将此文件夹添加到您的 PATH 中:export PATH=$PATH:/opt/gcc-arm-none-eabi-6-2017-q2-update/bin

安装其他必需的软件并克隆源代码

[编辑 | 编辑源代码]

你需要使用 git 从 GitHub 下载 SDK,以及在开发新代码时管理你的版本。

  1. 安装 git 和 dfu-util
    1. 在 Gentoo 和基于 Gentoo 的系统(funtoo、calculate 等)上:emerge -v git dfu-util freetype bison flex fltk
    2. 在 Debian 和基于 Debian 的系统(Ubuntu 等)上:apt-get install git dfu-util build-essential libfreetype6-dev bison flex libfltk1.3-dev 您可能需要安装其他依赖项。
    3. 在 Arch Linux 上:sudo pacman -S git dfu-util freetype2 base-devel fltk libpng
    4. 其他系统...
  2. 克隆 SDK 存储库时,它将被创建在当前目录中的名为 epsilon 的文件夹中,因此请创建你想要从中工作的目录并移动到该目录。例如:mkdir numworks 然后 cd numworks
  3. 现在你可以使用 git clone https://github.com/numworks/epsilon.git 克隆 SDK 存储库

你的第一个构建

[编辑 | 编辑源代码]

终于到了构建固件的时候了!

  1. 切换到 epsilon 目录 cd epsilon,其中 x 为 0 或 1,取决于您的型号。型号可以在计算器背面找到。
  2. make MODEL=n01x0 clean
  3. make MODEL=n01x0 USERNAME="yourusername" 用您想要在“关于”屏幕上显示的名称替换用户名。引号是必需的。

你的计算机将花费一段时间来编译所有代码。你可能会在编译期间看到一些警告,但你很可能可以忽略它们。如果你遇到错误,你需要阅读错误消息,看看是否能找出问题所在。如果一切都不奏效,请尝试回到存储库中的最后一个标记版本。

将固件上传到计算器

[编辑 | 编辑源代码]

最后,您终于可以将新构建的固件上传到计算器。

  1. 将计算器连接到 USB,并按重置按钮。
  2. 从 epsilon 目录运行 make app_flash
  3. 从 epsilon 目录运行 make epsilon_flash,将新的 SDK 上传到计算器(擦除所有程序和数据 : 首先将您的工作保存在 Numworks 网站上)。

在命令行中,您应该看到一条简短的消息,提示您的设备即将刷入固件,并给出重置设备的说明。然后是有关打开和声明 DFU 设备的几条消息,然后是下载进度条。完成后,计算器将自行重置并启动您新下载的固件!您可能不会看到任何差异,因为您可能已经在运行最新的固件,但是运行在计算器上的固件是在您的计算机上直接从源代码构建的,现在您可以修改它了。

恭喜您!您现在是一位 Epsilon 开发人员。花几分钟时间访问 http://numworks.comhttps://www.reddit.com/r/numworks,并向 Numworks 表示衷心的感谢,感谢他们让这款伟大的设备真正开源!

华夏公益教科书