打印
[STM32F1]

在WIN10中搭建Zephyr的开发环境

[复制链接]
2695|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 shaniadolphin 于 2017-7-24 17:50 编辑

Zephyr 是 Linux 基金会于 2016 年 2 月发布的物联网操作系统,主要面向资源受限的物联网设备。类似这样的 RTOS 其实不在少数,像比较知名就有 µC/OS, FreeRTOS, Contiki, mbed OS 等等,Zephyr 可在 RAM 大小为 8KB 的 MCU 上流畅运行,支持多种硬件架构,包括 ARM Cortex-M, Intel x86, ARC(DSP 内核), NIOS II(FPGA 软核) 以及 RISC V 等。Zephyr操作系统操作系统的基本目标是为“子 Linux 设备 (sub-Linux device)”提供一种开源的实时操作系统 (RTOS)。Zephyr操作系统很小、具有扩展性并且专为小型物联网设备设计,它的模块化设计使不论采用哪个架构创建物联网方案,都能满足所有设备的需求。它也包含着强大的开发工具,随着时间的推移,令开发人员可以定制它的新功能。

Zephyr 项目的早期支持者包括英特尔公司(包括收购的Altera Corporation 和 Wind River)、恩智浦半导体公司(包括最近并购的 Freescale)、新思科技有限公司和 UbiquiOS Technology Limited。2017年2月,Runtime.io和Nordic半导体加入Zephyr项目,成为其银牌会员。

以下内容用于记录如何将zephyr的开发环境搭建在WIN10当中。

Win10 版本支持将Ubuntu Linux承载在Windows系统中,将当前的Ubuntu Linux 系统作为Win10的子系统运行。

需要进入命令提示符,运行该子系统:

通过该“命令提示符”操作界面键入以下命令开启:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如图所示:

系统在重启后即可以运行BASH命令:

在打开的BASH命令行界面,输入“y”,确认安装UBUNTU:

经过漫长的等待,UBUNTU安装完成,按照提示,创建UNIX账户,并输入密码,就可以运行UBUNTU下熟悉的命令了,比如

sudo apt-get update

随后便可以安装编译zephyr所需要的工具和软件了:

sudo apt-get install git make

sudo apt-get install gcc g++ dfu-util doxygen ncurses-dev

sudo apt-get install device-tree-compiler

sudo apt-get install python3-yaml

然后需要安装“gcc-arm-embedded”:

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

sudo apt-get update

sudo apt-get install gcc-arm-embedded

接下来安装SDK,需要注意的是选择了默认的安装路径/opt/zephyr-sdk,如果有更改需要对应的修改环境变量里的路径:

wget <>

chmod +x zephyr-sdk-0.9.1-setup.run

sudo ./zephyr-sdk-0.9.1-setup.run

全部安装好,需要添加环境变量,

sudo vi /etc/bash.bashrc

vi的操作可以百度,通过方向键将光标移到文件的最后,按“i”进入编辑状态,加入以下内容后,按“ESC”后输入“wq”保存并退出:

export ZEPHYR_GCC_VARIANT=gccarmemb

export ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk

export GCCARMEMB_TOOLCHAIN_PATH=/usr/arm-none-eabi/

输入"exit"退出当前BASH窗口,再打开一个新的BASH窗口,在窗口中输入“export”来查看是否有添加需要的环境变量:

可以在输出信息中看到新加的环境变量。

到此,安装的工作已经全部完成。

可以获得git服务器上的代码:

git clone <>

cd zephyr

git checkout tags/v1.8.0

我将代码取在了windows下的e盘,所以执行以下操作:

cd /mnt/e/zephyr/

source zephyr-env.sh

然后就可以编译了,我手上有多种目标板,比如:nrf51的开发板,nrf52的开发板,stm32f407的开发板,stm32f103c8的开发板,都试过可以运行对应的程序。

cd /mnt/e/zephyr/samples/basic/blinky

make CROSS_COMPILE=arm-none-eabi- BOARD=nrf51_pca10028

make CROSS_COMPILE=arm-none-eabi- BOARD=nrf52_pca10040

make CROSS_COMPILE=arm-none-eabi- BOARD=stm32f4_disco

make CROSS_COMPILE=arm-none-eabi- BOARD=stm32_min_dev

其中stm32_min_dev只生成BIN文件,在JFLASH里选择对应的BIN文件也可以运行。

也可以通过以下指令生成HEX文件,

arm-none-eabi-objcopy -O ihex outdir/stm32_min_dev/zephyr.elf outdir/stm32_min_dev/zephyr.hex

生成文件的时候会要求指定地址,这里可以直接指定为0x8000000作为起始地址。

以上生成的HEX文件均通过JLASH烧录,打开SEGGER中的JFLASH程序,设置目标的连接参数,通过“Target”下的“Erase chip”和“Program”进行烧录,再点击“Target”下的“Start application”运行。

可以使用slick edit来阅读代码,建立工程,添加文件:

在对应的sample下查看例程的相关功能,比如“basic”下的“blinky”对应的是实现LED的闪烁演示。

可以添加我的公众号一起学习:

zephyr_slide_image.png (18.63 KB )

zephyr_slide_image.png
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

4

粉丝