以下内容适用于希望修改ODrive固件的开发人员。因此,它假定您了解诸如如何使用Git,什么是编译器之类的知识。如果这听起来很陌生,以下内容对您来说可能不适合。
注意:所使用的 Ubuntu 版本为 Ubuntu18.04
Visual Studio Code 官网下载链接:https://code.visualstudio.com/download
百度网盘下载链接:
链接 https://pan.baidu.com/s/1osfaEsfw5dNKcDjoJhrrRQ
提取码 zxgy
双击下载到的 Visual Studio Code_1.42.0-1580986622_amd64.deb 安装包,按照提示保持默认安装即可。
插件安装方法:
注意: 安装完所需插件后请关闭 Visual Studio Code 再进行下边的步骤
sudo apt install make
sudo apt install make-guile
验证安装是否正确
make --version
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
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa && sudo apt update && sudo apt install gcc-arm-embedded
验证安装是否正确
arm-none-eabi-gcc --version
sudo apt-get install openocd
验证安装是否正确
openocd --version # should be 0.10.0 or later
sudo apt install git
验证安装是否正确
git --version
由于 Ubuntu18.04 默认已安装 python3,所以只需要设置 python3 为默认的 python 即可
sudo rm -f /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python
验证安装是否正确
python --version
推荐使用 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
终端窗口将被打开。VSCode配置会在此终端中运行命令 make -j4
,来编译工程。
终端窗口将被打开。 VSCode配置会在此终端中运行命令make flash
,来烧录固件。
Cortex-Debug 扩展插件,专门用于调试ARM Cortex项目。 您可以在此处阅读有关Cortex-Debug的更多信息:https://github.com/Marus/cortex-debug
pause
(F6) 按钮然后重新设置断点等stop
(Shift+F5) 停止调试。同时它会自动关闭openOCD如果您想构建新的代码分支您可能需要清理构建时生成的文件。
make clean
回车如果您有任何问题或疑问,欢迎您加入ODrive社区或QQ群 851421965 进行交流。