zephyr在Ubuntu18.04安装使用
1. 安装
参考官网:https://docs.zephyrproject.org/latest/getting_started/index.html
首先:
sudo apt update //查看哪些可以更新
sudo apt upgrade //进行实际的更新
然后:安装依赖项
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的版本,版本不能低于3.13.1
cmake --version
如果版本低于3.13(一般Ubuntu都是低于这个版本的)执行下面四条
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
sudo apt update
sudo apt install cmake
再执行一次cmake --version查看是否更新完成
然后得到zephyr源文件安装python依赖项
1. 安装west并添加环境变量(注释:west是西风的意思,zephyr是西风之神,west是zephyr团队为zephyr开发的一个小工具)
pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
2. 得到zephyr的源代码
west init ~/zephyrproject
cd ~/zephyrproject
west update
**!!请注意**上面的命令主要做了三件事,在根目录下新建了一个文件夹名字叫做zephyrproject,然后切换到这个目录里面,然后从github上下载源码下来,但是这个文件太大了,速度非常慢,不然我也不会写这篇文章,你也不会来看,所以请使用下面的方法,如果你不小心执行了上面的命令,只需要rm -r zephyproject即可!!,然后再使用west update下载必须的包
首先需要做的是把GitHub上的代码导入到码云上面比如我导入了一个仓库:
地址是:https://gitee.com/shuiyihang/zephyr.git
下面只需要在根文件下这样做:【其中-m参数表示指定下载路径】
mkdir zephyrproject
cd zephyrproject/
west init -m https://gitee.com/shuiyihang/zephyr.git
稍微等待几秒就发现文件夹下已经有文件了
等到west update这一步,还是很慢,没办法,方法依旧是把库导入码云
举个例子:
你现在文件夹下/zephyrproject应该有几个文件夹分别是:bootloader modules tools zephyr
cd zephyr&&ls
你会发现一个west.yml文件,打开这个文件,会发现现在
url-base:https://github.com/zephyrproject-rtos
看到默认是从这个地址下载包的,我们要做的就是一个一个把必须的包,像是mucboot给导入码云
然后把上面的地址换成你的码云库地址
我的mcuboot地址是:https://gitee.com/shuiyihang/mcuboot
也就是说只需要把west.yml中路径替换为https://gitee.com/shuiyihang
然后就。。。。。芜湖起飞~
west zephyr-export
pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt【这一步如果出错,请更新pip3,命令是:sudo pip3 install --upgrade pip】
安装工具链
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.12.3/zephyr-sdk-0.12.3-x86_64-linux-setup.run
[这个速度也不快,并且文件挺大,等我上传百度云盘吧【链接:https://pan.baidu.com/s/1t4zazs0kTwOMNDXfSp3yVg
提取码:5k42
复制这段内容后打开百度网盘手机App,操作更方便哦】,我偶然一次使用这个命令,速度飙升到4,5M,三分钟就下好了]
chmod +x zephyr-sdk-0.12.3-x86_64-linux-setup.run //给一个运行权限
./zephyr-sdk-0.12.3-x86_64-linux-setup.run -- -d ~/zephyr-sdk-0.12.3 //安装到这个文件夹下
sudo cp ~/zephyr-sdk-0.12.3/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
2.运行第一个闪烁灯程序
zephyr对stm32支持是非常好的,我们以这个为例
如果有想使用esp32的朋友,需要再去下载esp32自己的编译器,同样在官网,给大家放个地址(https://docs.zephyrproject.org/latest/boards/xtensa/esp32/doc/index.html)这里我们就以stm32f103_mini
这个版型来试验自带的闪灯程序
cd ~/zephyrproject/zephyr
west build -p auto -b stm32f103_mini samples/basic/blinky【-p auto 意思是自动清理build文件夹,-b选择板型,后面是编译的文件】
编译成功之后,大家试着烧录吧,我手头没有板子,就先不试了,下一次讲解zephyr闪灯程序的运行原理