Zephyr内核详解,第0篇 开发环境

 

         Zephyr是什么就不赘述,总之是一款遵循GPL的linux基金会的开源RTOS,以下的一系列文章均基于这款系统展开;嵌入式行业只讲理论不是实践就是耍流氓,先介绍下实验环境,

先从如何搭建环境开始说起:

1.开发板:st nucleo-l476rg

2.开发环境:macos mojave (10.14)

3.zephyr版本:v1.13.0

4.交叉编译:gcc-arm-none-eabi-7-2018-q2-update-mac

5.烧录工具:open-ocd V0.10.0

下面逐个说明:

1.关于开发版,建议购买原厂的能大大降低硬件问题导致的各种问题

2.开发环境可以支持windows/linux/mac这里我选择mac,需要注意的是现阶段zephyr sdk是不支持mac的,需要自己搭建环境,下面会介绍详细步骤

3.zephyr版本可以直接在官网下载最新的release版本就行,我用的是v1.13.0。www.zephyrproject.org,也可以使用git clone https://github.com/zephyrproject-rtos/zephyr

下载最新的版本。

4.交叉编译环境,可以在arm的官网下载,我这里用的是gcc-arm-none-eabi-7-2018-q2-update-mac,我的安装目录是:/usr/local/opt/gcc-arm-none-eabi-7-2018-q2-update下载地

址:https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

5.烧录工具open-ocd V0.10.0,安装之前先安装brew(https://brew.sh),然后使用下面命令安装必要等工具。brew install cmake ninja gperf ccache dfu-util qemu dtc python3 openocd minicom

这些工具包默认的安装目录是:/usr/local/Cellar/,open-ocd的安装目录是/usr/local/Cellar/open-ocd

6.安装zephyr必备等工具,pip3 install -r zephyr/scripts/requirements.txt

6.以上工具在我的环境下测试都是可以使用的,成功编译并烧录到开发版。

 

注意事项,需要先设置如下的环境变量,否则会编译或者烧录错误:

注意事项一.也可以把这些命令写成一个shell脚本例:setenv-stm32.sh,使用source setenv-stm32.sh来执行。

export GNUARMEMB_TOOLCHAIN_PATH=~/Applications/gcc-arm-none-eabi-8-2018-q4-major

export ZEPHYR_BASE=~/zephyr14git/zephyrproject/zephyr

export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb

source ~/zephyr14git/zephyrproject/zephyr/zephyr-env.sh

 

注意事项二.

openocd默认支持的board在/usr/local/Cellar/open-ocd/0.10.0/share/openocd/scripts/board如果执行west flash或ninja flash命令的时候提示找不到xxx.cfg文件,可以去网络上找对应脚本放进去,

笔者就是找了一个esp32版本的opeocd(Open On-Chip Debugger v0.10.0-esp32-20190313 (2019-03-13-09:59)),然后直接替换掉homebrew安装目录下ßß的所有文件省得设置环境变量。

 

注意事项三.

如果要重新完全编译或者切换board类型,需要删除cmake生成的所有零时文件,可以使用ninja pristine或west build -t pristine。使用ninja clean或west build -t clean删除除.config文件之外的零时文件。

 

注意事项四。

官方建议使用west init zephyrproject/cd zephyrproject/west update来下载代码到本地,但是国内github访问很慢,这里有一个手动的方法。

1.在官网通过http方式下载整个源码压缩包

 

编译方法一,直接在zephyr原目录编译helloworld:

1.zephyr根目录执行:source zephyr.sh

2.执行:mdkir ./sample/helloword/build && cd ./sample/helloword/build

3.执行:cmake -GNinja -DBOARD=nucleo_l476rg ..

4.执行:ninja

5.执行:连接开发板到mac,执行ninja flash

6.执行:minicom -D /dev/tty.usbmodem143420

6.重启开发版,恭喜你helloworld已经完成。

 

编译方法二,

创建<home>/app目录作为app的主目录,并拷贝ZEPHYR_BASE/sample/helloword全部文件到/app目录下,然后执行west build -b <board>/或者cmake -GNinja -DBOARD=<board> . |_____app

||____CMakeLists.txt

||____prj.conf

||____setenv-stm32.sh

||____sample.yaml

||____build

||____README.rst

||____src

|| |____main.c

|____zephyrproject(zephyr base)

 

Zephyr内核详解,第0篇 开发环境

Zephyr内核详解,第0篇 开发环境

转载请注明出处

[email protected]   //  http://blog.csdn.net/CStyle_0x007

 

 

 

 

 

相关文章: