• Zephyr学习(二)开发环境搭建


    一.概述

    Zephyr支持在Windows、Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境。

    二.步骤

    2.1安装msys2

    msys2是一个Linux模拟环境,类似于ArchLinux。

    安装完成后,要添加源(这与Linux环境是类似的),这里我添加的是清华大学的源,修改C:msys64etcpacman.dmirrorlist.mingw32,在开始处加入以下一行:

    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

    修改C:msys64etcpacman.dmirrorlist.mingw64,在开始处加入以下一行:

    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

    修改C:msys64etcpacman.dmirrorlist.msys,在开始处加入以下一行:

    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

    安装完成后会看到有三种启动方式,分别是MSYS2 MinGW 32-bit、MSYS2 MinGW 64-bit和MSYS2 MSYS,这里要选择MSYS2 MSYS这种。

     2.2安装依赖

    启动MSYS2 MSYS后,分别执行以下命令:

    pacman -Syu
    pacman -S git cmake make gcc dtc diffutils ncurses-devel python3 gperf
    

    2.3编译安装Ninja

    分别执行以下命令:

    git clone git://github.com/ninja-build/ninja.git && cd ninja
    git checkout release
    ./configure.py --bootstrap
    cp ninja.exe /usr/bin/
    

    2.4下载Zephyr源码

    这里下载到~/work目录下,执行以下命令:

    cd ~/work
    git clone --config core.autocrlf=false https://github.com/zephyrproject-rtos/zephyr.git

    2.5安装相关python模块

    zephyr里有很多python脚本,因此需要安装所需的模块:

    curl -O 'https://bootstrap.pypa.io/get-pip.py'
    ./get-pip.py
    rm get-pip.py
    cd ~/work/zephyr
    pip install --user -r scripts/requirements.txt

    2.6安装交叉工具链

    这里我以ARM(Cortex M系列)平台作为学习,所以需要安装arm交叉工具链,建议安装7.x版本的,用最新的8.x版本的会编译出错。我选择安装在C:gnuarmemb目录下。

    2.7编译应用

    设置环境变量:

    export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
    export GNUARMEMB_TOOLCHAIN_PATH=/c/gnuarmemb
    unset ZEPHYR_SDK_INSTALL_DIR

    如果不想每次运行MSYS2 MSYS后都手动输入以上命令,那么可以将以上命令添加到C:msys64homelkn.bash_profile文件。

    我的开发板主控是nrf52832,这里以编译最简单的hello_world程序(串口打印出hello world等字符)为例:

    cd ~/work/zephyr
    source zephyr-env.sh
    cd samples/hello_world
    mkdir build
    cd build
    cmake -GNinja -DBOARD=nrf52_pca10040 ..
    ninja

     编译成功的话会如下图所示:

    编译生成的文件在./zephyr目录下,可以看到有zephyr.elf、zephyr.bin和zephyr.hex三种格式的固件。

    2.8安装固件下载、调试工具

    2.8.1安装Jlink

    2.8.2安装nRF5x-Command-Line-Tools

    这是Nordic对Jlink的封装,是专门针对Nordic的芯片的,主要用于擦除flash、烧写固件等操作。安装后会有nrfjprog.exe文件,然后将该文件所在的目录添加到系统环境变量中。

    2.9在开发板上运行zephyr

    打开cmd窗口,进入到固件生成的目录下,给开发板上电,连接好jlink调试器,连接好串口。

    下载固件到开发板:

    nrfjprog -f nrf52 --program zephyr.hex --sectorerase

    让程序跑起来(复位系统):

    nrfjprog -f nrf52 --reset

    这时可以看到串口输出如下:

    说明zephyr系统已经在开发板上成功跑起来了。

  • 相关阅读:
    LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 1022. 从根到叶的二进制数之和(Sum of Root To Leaf Binary Numbers)
    LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)
    LeetCode 617. 合并二叉树(Merge Two Binary Trees)
    LeetCode 206. 反转链表(Reverse Linked List) 16
    LeetCode 104. 二叉树的最大深度(Maximum Depth of Binary Tree)
    LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
    LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
  • 原文地址:https://www.cnblogs.com/lknlfy/p/10225796.html
Copyright © 2020-2023  润新知