ODrive乾貨 #2 Ubuntu下開發環境搭建

Ubuntu 下 ODrive 固件開發環境搭建

以下內容適用於希望修改ODrive固件的開發人員。因此,它假定您瞭解諸如如何使用Git,什麼是編譯器之類的知識。如果這聽起來很陌生,以下內容對您來說可能不適合。

注意:所使用的 Ubuntu 版本爲 Ubuntu18.04

1 Visual Studio Code

1.1 安裝 Visual Studio Code

雙擊下載到的 Visual Studio Code_1.42.0-1580986622_amd64.deb 安裝包,按照提示保持默認安裝即可。

1.2 安裝 Visual Studio Code 擴展插件

  • 所需擴展插件:
    • C/C++
    • Cortex-Debug
  • 推薦安裝的擴展插件:
    • Include Autocomplete
    • Path Autocomplete
    • Auto Comment Blocks

插件安裝方法:

  1. 啓動 Visual Studio Code
    1. 點擊紅框
      在這裏插入圖片描述
    2. 在紅框內輸入 vscode Enter
      在這裏插入圖片描述
    3. 單擊 Visual Studio Code 圖標已啓動
      在這裏插入圖片描述
  2. 點擊紅框打開插件管理視圖
    在這裏插入圖片描述
  3. 在紅框中輸入要安裝插件的名稱 (如:C/C++) 回車
    在這裏插入圖片描述
  4. 點擊紅框中的 Install 安裝
    在這裏插入圖片描述
  5. 等待安裝完成即可
    在這裏插入圖片描述

注意: 安裝完所需插件後請關閉 Visual Studio Code 再進行下邊的步驟

2 安裝 make & make-guile

sudo apt install make      
sudo apt install make-guile

驗證安裝是否正確

make --version

3 安裝 tup

sudo add-apt-repository ppa:jonathonf/tup && sudo apt-get update && sudo apt-get install tup

驗證安裝是否正確

tup --version				# should be 0.7.5 or later

4 安裝 gcc-arm-embedded 工具鏈

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa && sudo apt update && sudo apt install gcc-arm-embedded

驗證安裝是否正確

arm-none-eabi-gcc --version

5 安裝 openocd

sudo apt-get install openocd

驗證安裝是否正確

openocd --version			# should be 0.10.0 or later

6 安裝 git

sudo apt install git

驗證安裝是否正確

git --version

7 設置 python3 爲默認 python

由於 Ubuntu18.04 默認已安裝 python3,所以只需要設置 python3 爲默認的 python 即可

sudo rm -f /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

驗證安裝是否正確

python --version

8 嘗試編譯固件源碼

推薦使用 git clone ODrive 固件源碼到本地,但是由於政策問題 clone 會非常慢,因此,下面提供了額外的百度網盤下載鏈接。

注意:以下使用百度網盤下載地址下載的固件進行編譯

解壓 ODrive-fw-v0.4.11-19-g1c947631.zip

進入 ODrive-fw-v0.4.11-19-g1c947631 文件夾,鼠標右鍵單擊 ODrive_Workspace.code-workspace 文件,點選 Open With Other Application,然後選擇 Visual Studio Code 打開
在這裏插入圖片描述
單擊紅框中的 tup.config.default 文件,配置硬件版本,修改爲如下代碼:

# Copy this file to tup.config and adapt it to your needs
# make sure this fits your board
CONFIG_BOARD_VERSION=v3.5-24V
CONFIG_USB_PROTOCOL=native
CONFIG_UART_PROTOCOL=ascii
CONFIG_DEBUG=false

# Uncomment this to error on compilation warnings
#CONFIG_STRICT=true

然後將 tup.config.default 文件重命名爲 tup.config 然後保存。

依次點擊菜單中的 Terminal -> Run Build Task… 等待構建、編譯完成
在這裏插入圖片描述
雖然編譯完成了,但是上邊的構建過程存在一些問題,這是由於我們使用的源碼包而不是通過 git clone 到本地的(如果是通過 git clone 到本地則不存在這個問題),所以執行 version.py 腳本時無法正確獲取固件版本信息。可以修改一下 version.py 內部代碼,不通過 git 命令獲取版本信息而是手動填寫版本信息。修改 version.py 內第22行 get_version_from_git() 函數如下:

修改前:

def get_version_from_git():
    script_dir = os.path.dirname(os.path.realpath(__file__))
    try:
        # Determine the current git commit version
        git_tag = subprocess.check_output(["git", "describe", "--always", "--tags", "--dirty=*"],
            cwd=script_dir)
        git_tag = git_tag.decode(sys.stdout.encoding).rstrip('\n')

        (major, minor, revision, is_prerelease) = version_str_to_tuple(git_tag)

        # if is_prerelease:
        #     revision += 1
        return git_tag, major, minor, revision, is_prerelease

    except Exception as ex:
        print(ex)
        return "[unknown version]", 0, 0, 0, 1

修改後:

def get_version_from_git():
    return "fw-v0.4.11-19-g1c947631*", 0, 4, 11, True

9 完成開發環境搭建

9.1 構建工程

  • Terminal -> Run Build Task…

終端窗口將被打開。VSCode配置會在此終端中運行命令 make -j4 ,來編譯工程。

9.2 燒錄固件

  • Terminal -> Run Task… -> flash

終端窗口將被打開。 VSCode配置會在此終端中運行命令make flash,來燒錄固件。

9.3 調試

Cortex-Debug 擴展插件,專門用於調試ARM Cortex項目。 您可以在此處閱讀有關Cortex-Debug的更多信息:https://github.com/Marus/cortex-debug

  • 確保將固件源碼文件夾作爲當前文件夾
  • 用最新固件加載到ODrive (如果使用調試模式可以不需要此操作)
  • 點擊Debug -> Start Debugging (或鍵盤 F5)
  • 處理器將重置並進入暫停
  • 設置斷點。注意: 您只能在處理器暫停時設置斷點,如果在運行模式下設置斷點,則不會應用它們
  • 運行 (F5)
  • Stepping over/in/out, 重新運行, 按下pause (F6) 按鈕然後重新設置斷點等
  • 當調試完畢後,您可以按下stop (Shift+F5) 停止調試。同時它會自動關閉openOCD

9.4 清除構建文件

如果您想構建新的代碼分支您可能需要清理構建時生成的文件。

  • 打開命令終端 (View -> Terminal) 然後在命令終端中輸入 make clean 回車

如果您有任何問題或疑問,歡迎您加入ODrive社區或QQ羣 851421965 進行交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章