ODrive干货 #2 Ubuntu下开发环境搭建

Ubuntu 下 ODrive 固件开发环境搭建

以下内容适用于希望修改ODrive固件的开发人员。因此,它假定您了解诸如如何使用Git,什么是编译器之类的知识。如果这听起来很陌生,以下内容对您来说可能不适合。

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

文章目录

  • Ubuntu 下 ODrive 固件开发环境搭建
  • 1 Visual Studio Code
    • 1.1 安装 Visual Studio Code
    • 1.2 安装 Visual Studio Code 扩展插件
  • 2 安装 make & make-guile
  • 3 安装 tup
  • 4 安装 gcc-arm-embedded 工具链
  • 5 安装 openocd
  • 6 安装 git
  • 7 设置 python3 为默认 python
  • 8 尝试编译固件源码
  • 9 完成开发环境搭建
    • 9.1 构建工程
    • 9.2 烧录固件
    • 9.3 调试
    • 9.4 清除构建文件

1 Visual Studio Code

1.1 安装 Visual Studio Code

  • Visual Studio Code 官网下载链接:https://code.visualstudio.com/download

  • 百度网盘下载链接:

    链接 https://pan.baidu.com/s/1osfaEsfw5dNKcDjoJhrrRQ
    提取码 zxgy

双击下载到的 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. 点击红框
      ODrive干货 #2 Ubuntu下开发环境搭建_第1张图片
    2. 在红框内输入 vscode Enter
      ODrive干货 #2 Ubuntu下开发环境搭建_第2张图片
    3. 单击 Visual Studio Code 图标已启动
      ODrive干货 #2 Ubuntu下开发环境搭建_第3张图片
  2. 点击红框打开插件管理视图
    ODrive干货 #2 Ubuntu下开发环境搭建_第4张图片
  3. 在红框中输入要安装插件的名称 (如:C/C++) 回车
    ODrive干货 #2 Ubuntu下开发环境搭建_第5张图片
  4. 点击红框中的 Install 安装
    ODrive干货 #2 Ubuntu下开发环境搭建_第6张图片
  5. 等待安装完成即可
    ODrive干货 #2 Ubuntu下开发环境搭建_第7张图片

注意: 安装完所需插件后请关闭 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 会非常慢,因此,下面提供了额外的百度网盘下载链接。

  • github
  • 百度网盘下载:
    链接 https://pan.baidu.com/s/1RVbYDL99u2blRTe4mNc5dQ
    提取码 mjq4

注意:以下使用百度网盘下载地址下载的固件进行编译

解压 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 打开
ODrive干货 #2 Ubuntu下开发环境搭建_第8张图片
单击红框中的 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… 等待构建、编译完成
ODrive干货 #2 Ubuntu下开发环境搭建_第9张图片
虽然编译完成了,但是上边的构建过程存在一些问题,这是由于我们使用的源码包而不是通过 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 进行交流。

你可能感兴趣的:(ODrive)