笔者使用的是Ubuntu18.04版本,推荐使用更高版本的Ubuntu。
笔者使用的Ubuntu 18.04,先下载VSCode,然后在拓展中搜索nRF:
直接安装nRF Connect for VS Code Extension Pack这个插件,注意VSCode的版本要新。否则会提示版本低无法安装。这个安装包其实是一个拓展集合,里面包含了8个NCS需要的拓展插件。安装完之后可以在侧边栏看到它:
开发NCS需要使用git、cmake、python、gcc、等等很多工具,安装这些工具可以使用以下指令:
wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh
sudo apt install --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev
安装完成后,可以查看主要几个工具的版本:
cmake --version
python3 --version
dtc --version
如果你的工具安装的很慢,换国内源可以快很多:
在软件和更新中选择其他国内站点:
比如我这里选择的aliyun的国内镜像站点,可以根据你自己IP所在地就近选择站点:
更改后最好重启一下,否则有可能不生效。
然后安装west工具,它是专门用作Zephyr项目的管理工具,有很多方便的功能,安装步骤如下:
pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
因为west里面封装的有git,所以可以使用west更新项目,首先在~目录创建ncs文件夹,然后更新代码:
mkdir ~/ncs
west init -m https://github.com/nrfconnect/sdk-nrf --mr main
这里 --mr 后面跟的是版本tag,比如你要基于1.9.1版本开发,可以使用:
west init -m https://github.com/nrfconnect/sdk-nrf --mr v1.9.1
这个更新速度要看你的具体网速,因为这个项目初始化并不完整,所以一半不会很慢。在初始化完成后,才是下载项目具体文件:
west update
这个更新就比较慢了,更新完成后,整个文件夹我压缩zip有1.7G,如果你的网速很慢,建议用其他方法:
https://www.cnblogs.com/iini/p/14174427.html
但是注意,如果想使用最新的NCS,只能由github上更新。
安装完成后,需要安装python相关模块,在ncs文件夹下使用:
python3 -m pip install --upgrade pip
pip3 install --user -r zephyr/scripts/requirements.txt
pip3 install --user -r nrf/scripts/requirements.txt
pip3 install --user -r bootloader/mcuboot/scripts/requirements.txt
我第一次使用Ubuntu18.04自带的python3.6.9会有很多问题,感觉python版本最好高一点,否则会有很多错误。但是更新python版本也可能带来其他问题。所以推荐使用的Ubuntu版本高一点。
最后是安装工具链:
下载工具链:
Arm GNU Toolchain | Arm GNU Toolchain Downloads – Arm Developer
比如我这里下载的:
下载完成后解压到用户根目录下:
在用户目录下创建一个文件:
touch ~/.zephyrrc
在这个文件内输入:
export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
export GNUARMEMB_TOOLCHAIN_PATH="~/gnuarmemb/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi"
这里第一个变量不要变,第二个变量随你的工具链安装目录来。
这个文件会被ncs/zephyr/zephyr-env.sh所使用。但是这里有很坑的一点,这个脚本每次要编译前都要运行一遍。当然如果加入到系统环境变量中:
sudo vi /etc/environment
这样是可以永久生效,但是使用VSCode在编译工程时会显示在~/gnuarmemb/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/这个文件夹下找不到对应工具。所以这样修改无效,而想要使用VSCode,必须要在使用:
source ~/ncs/zephyr/zephyr-env.sh
的窗口内启动一个VSCode:
code
在侧边栏点击插件,然后打开一个起始页,如果自动打开了一个起始页就不用再打开一个了,然后点击快速启动。
可以看到dtc版本比要求版本低,但是这个是内核自带的版本,如果更改版本不知道会不会有问题,所以就将就着使用了。 而gn这个工具是使用matter才用得上,我这里没有安装。
然后在左侧的APPLICATIONS那里打开一个项目:
选择文件夹:
然后点击构建配置:
主要就是选择开发板和配置文件:
点击应用后会自动构建一次。
然后烧写进单片机即可:
点击连接开发板,一个开发板可能有多个串口,请根据实际情况选择:
在底下终端窗口那里选择对应的终端: