非官方 Numworks 擴充套件指南/設定開發環境
Numworks 做了一件很棒的事情 - 他們在 GitHub 上釋出了計算器的完整原始碼和 SDK,並透過最新的釋出和錯誤修復積極地維護它。任何曾經想過為圖形計算器編寫自己的程式碼的人都知道,這與典型的計算器製造商相比,是一個驚人的 180° 轉變。可以在 Numworks SDK 頁面 上找到概述和 GitHub 連結,但文件不可避免地很稀疏,因此讓我們幫助你設定一個功能完善的開發環境。
Windows 可能不是理想的開源嵌入式開發平臺,但它確實很流行,並且是一個簡單的起點。得益於 Msys2 專案,為 Epsilon(Numworks 作業系統)設定一個類似 Linux 的開發環境非常容易。
按照 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 編譯器不屬於 Msys2,但可以在 ARM 下載頁面 免費獲得。
- 轉到 ARM 下載頁面 並下載 Windows 32 的 .ZIP 檔案(沒有 64 位版本)。
- 開啟 .ZIP 檔案並將所有內容解壓縮到一個新的資料夾
C:/arm/中。 - 你現在應該擁有幾個資料夾,其中一個資料夾是
C:/arm/bin。由於我們之前已經將此目錄新增到你的 PATH 中,因此它已準備就緒。
你需要使用 git 從 GitHub 下載 SDK,以及在開發新程式碼時管理你的版本。
- 安裝使用 HTTPS 的 git 所需的 SSL 證書。
pacman -S mingw-w64-x86_64-ca-certificates ca-certificates - 告訴 git 使用這些證書。
git config --system http.sslcainfo /mingw64/ssl/certs/ca-bundle.crt - 如果你需要使用代理,則執行
export http_proxy=<在此處插入 http 代理地址:埠>和export https_proxy=<在此處插入 https 代理地址:埠>。如果你不確定,請先嚐試不使用代理。如果失敗,請聯絡執行網路的人員獲取正確的代理資訊。 - 克隆 SDK 儲存庫時,它將被建立在當前目錄中的名為
epsilon的資料夾中,因此請建立你想要從中工作的目錄並移動到該目錄。例如:mkdir numworks然後cd numworks。 - 現在你可以使用
git clone https://github.com/numworks/epsilon.git克隆 SDK 儲存庫
終於到了構建韌體的時候了!
- 切換到 epsilon 目錄
cd epsilon make MODEL=n01x0 cleanmake MODEL=n01x0其中 x 為 0 或 1。你可以在計算器背面找到你的型號。
你的計算機將花費一段時間來編譯所有程式碼。你可能會在編譯期間看到一些警告,但你很可能可以忽略它們。如果你遇到錯誤,你需要閱讀錯誤訊息,看看是否能找出問題所在。如果一切都不奏效,請嘗試回到儲存庫中的最後一個標記版本。
注意:如果你遇到名為“ft2build.h”的檔案問題或任何包含“pkg-config”的錯誤,你應該考慮執行 pacman -S mingw-w64-x86_64-pkg-config
片刻之後,你將使用名為 dfu-util 的程式將新編譯的韌體下載到你的計算器。但是,你第一次將計算器插入 USB 時安裝並繫結到計算器的預設驅動程式將不適用於開發,因此我們將使用名為 Zadig 的程式告訴 Windows 將你的計算器指向標準 Windows USB 驅動程式。
- 在我們開始之前,讓我們完成最簡單的步驟,使用回形針或鉛筆按下計算器背面的復位按鈕。不要忘記,這將刪除所有自定義指令碼!
- 安裝驅動程式。
- 在 Google 上搜索 'Numworks Workshop'。
- 官方網站將要求你登入。如果需要,請建立一個帳戶並登入。
- 你將看到一個名為 '更新我的裝置' 的按鈕,請點選它。
- 點選下一頁,點選 '下載驅動程式' 按鈕並安裝驅動程式。
- 下載 Zadig 的最新版本並執行它。
- 將計算器重新插入 USB 並按下 RESET 按鈕。(是的,再次按下。在測試程式碼時,你將經常這樣做。)
- 在 Zadig 的選項選單中,確保選中了 '列出所有裝置'。
- 在裝置下拉列表中,選擇 'NumWorks 計算器'(也可能顯示為 'STM32 BOOTLOADER')。
- USB ID 應為 0483 DF11 或 A291,驅動程式可能顯示為 STTub30。
- 你需要將 STTub30 替換為 WinUSB,因此請在綠色箭頭右側選擇它。
- 點選 '替換驅動程式',Zadig 將安裝新的驅動程式。
- 成功訊息顯示後,你可以關閉 Zadig。
- 從 USB 上拔下計算器並按下 RESET 按鈕。
最後,你終於可以將新構建的韌體下載到計算器...在我們安裝了另一個部分:dfu-util 之後。
- 從 http://dfu-util.sourceforge.net/releases/ 下載最新的 Windows 版本的 .ZIP 檔案。
- 解壓縮 .ZIP 檔案,並將 dfu-util-static.exe 複製到 Msys2 的
/usr/local/bin目錄中。如果需要,請建立bin目錄。 - 將複製的檔案重新命名為
dfu-util.exe。 - 將計算器連線到 USB,並按重置按鈕。(是的,再次按。我告訴過你,這將經常發生。)
- 現在,您終於可以從 epsilon 目錄中執行
make MODEL=n01x0 epsilon_flash,其中 x 為 0 或 1。您可以在計算器背面找到您的型號編號。
在命令列中,您應該看到一條簡短的訊息,提示您的裝置即將刷入韌體,並給出重置裝置的說明。然後是有關開啟和宣告 DFU 裝置的幾條訊息,然後是下載進度條。完成後,計算器將自行重置並啟動您新下載的韌體!您可能不會看到任何差異,因為您可能已經在執行最新的韌體,但是執行在計算器上的韌體是在您的計算機上直接從原始碼構建的,現在您可以修改它了。
恭喜您!您現在是一位 Epsilon 開發人員。花幾分鐘時間訪問 http://numworks.com 和 https://www.reddit.com/r/numworks,並向 Numworks 表示衷心的感謝,感謝他們讓這款偉大的裝置真正開源!
ARM 編譯器可以在 ARM 下載頁面 免費獲得。
- 訪問 ARM 下載頁面 並下載適用於 Linux 64 位的 .tar.bz2 檔案(沒有 32 位版本)。
- 將所有內容解壓縮到
/opt:sudo tar xvjpf /path/to/downloaded/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 -C /opt。如果您沒有 sudo 許可權,可以解壓縮到~。 - 現在您應該有幾個資料夾,其中一個是
/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,以及在開發新程式碼時管理你的版本。
- 安裝 git 和 dfu-util
- 在 Gentoo 和基於 Gentoo 的系統(funtoo、calculate 等)上:
emerge -v git dfu-util freetype bison flex fltk - 在 Debian 和基於 Debian 的系統(Ubuntu 等)上:
apt-get install git dfu-util build-essential libfreetype6-dev bison flex libfltk1.3-dev您可能需要安裝其他依賴項。 - 在 Arch Linux 上:
sudo pacman -S git dfu-util freetype2 base-devel fltk libpng - 其他系統...
- 在 Gentoo 和基於 Gentoo 的系統(funtoo、calculate 等)上:
- 克隆 SDK 儲存庫時,它將被建立在當前目錄中的名為
epsilon的資料夾中,因此請建立你想要從中工作的目錄並移動到該目錄。例如:mkdir numworks然後cd numworks。 - 現在你可以使用
git clone https://github.com/numworks/epsilon.git克隆 SDK 儲存庫
終於到了構建韌體的時候了!
- 切換到 epsilon 目錄
cd epsilon,其中 x 為 0 或 1,取決於您的型號。型號可以在計算器背面找到。 make MODEL=n01x0 cleanmake MODEL=n01x0 USERNAME="yourusername"用您想要在“關於”螢幕上顯示的名稱替換使用者名稱。引號是必需的。
你的計算機將花費一段時間來編譯所有程式碼。你可能會在編譯期間看到一些警告,但你很可能可以忽略它們。如果你遇到錯誤,你需要閱讀錯誤訊息,看看是否能找出問題所在。如果一切都不奏效,請嘗試回到儲存庫中的最後一個標記版本。
最後,您終於可以將新構建的韌體上傳到計算器。
- 將計算器連線到 USB,並按重置按鈕。
- 從 epsilon 目錄執行
make app_flash。 - 從 epsilon 目錄執行
make epsilon_flash,將新的 SDK 上傳到計算器(擦除所有程式和資料 : 首先將您的工作儲存在 Numworks 網站上)。
在命令列中,您應該看到一條簡短的訊息,提示您的裝置即將刷入韌體,並給出重置裝置的說明。然後是有關開啟和宣告 DFU 裝置的幾條訊息,然後是下載進度條。完成後,計算器將自行重置並啟動您新下載的韌體!您可能不會看到任何差異,因為您可能已經在執行最新的韌體,但是執行在計算器上的韌體是在您的計算機上直接從原始碼構建的,現在您可以修改它了。
恭喜您!您現在是一位 Epsilon 開發人員。花幾分鐘時間訪問 http://numworks.com 和 https://www.reddit.com/r/numworks,並向 Numworks 表示衷心的感謝,感謝他們讓這款偉大的裝置真正開源!