跳轉到內容

非官方 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 表示衷心的感謝,感謝他們讓這款偉大的裝置真正開源!

華夏公益教科書