回答

收藏

【野火i.MX RT1052学习笔记】2.新潮RTOS了解一下

其他 其他 5987 人阅读 | 0 人回复 | 2018-06-01

有了新潮装备,那就考虑下在他上面布局新潮平台呗。目前各大软硬件厂商纷纷发力IoT,各自推出了适用于IoT开发的RTOS和云平台,amazon的FreeRTOS+AWS,阿里的AliOS Things+AliCloud,华为的LiteOS+HWCloud。。。这其中zephyr虽然是一个独立RTOS,没有相应的云平台支撑,但是其活跃性和开放性形成了鲜明的特色,还得到了Linux基金会的支持。所以我打算在板子上跑个zephyr试试看。
废话不多说,先上zephyr的官网,按官方的说明文档搭建Linux开发环境
http://docs.zephyrproject.org/getting_started/getting_started.html
1. 先在VirtualBox上安装Ubuntu16.04的虚拟机
2. 按照文档中的步骤安装Linux下的开发环境,我这里的步骤就相当于把官方文档翻译了一遍,除了步骤d,一般不会出大问题
    a. 首先更新Ubuntu packages
  1. sudo apt-get update
  2. sudo apt-get upgrade
复制代码

    b. 然后安装必要的软件包
  1. sudo apt-get install --no-install-recommends git cmake ninja-build gperf \
  2.   ccache doxygen dfu-util device-tree-compiler \
  3.   python3-ply python3-pip python3-setuptools python3-wheel xz-utils file \
  4.   make gcc-multilib autoconf automake libtool
复制代码

    c. 在你指定的目录下clone zephyr的代码,我放在了自己的用户目录下
  1. cd ~
  2. git clone https://github.com/zephyrproject-rtos/zephyr.git
复制代码

    d. 如果此时直接按照文档中的要求装requirements,可能会报什么pip not upgrated,没关系,按照错误提示升级即可
  1. pip install --upgrade pip
  2. sudo apt install python-pip
复制代码

    e. 安装zephyr开发所需的additional packages
  1. cd ~/zephyr  # or to your directory where zephyr is cloned
  2. pip3 install --user -r scripts/requirements.txt
复制代码

    f. 如果需要用pyocd加载和调试CortexM系列的MCU,需要再安装下面的additional packages
  1. pip2 install --user -r scripts/py2-requirements.txt
复制代码

    g. 安装CMake
  1. mkdir $HOME/cmake && cd $HOME/cmake
  2. wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh
  3. yes | sh cmake-3.8.2-Linux-x86_64.sh | cat
  4. echo "export PATH=$PWD/cmake-3.8.2-Linux-x86_64/bin:\$PATH" >> $HOME/.zephyrrc
  5. source <zephyr git clone location>/zephyr-env.sh
  6. cmake --version
复制代码

然后就可以开始zephyr的开发了。目前zephyr支持的board中,已经有对NXP官方的MIMXRT1050-EVK的支持,不过支持的驱动很少
http://docs.zephyrproject.org/boards/arm/mimxrt1050_evk/doc/mimxrt1050_evk.html
那我们就按文档中的说明来编译一下试试呗
1. 首先设置环境变量
  1. export ZEPHYR_GCC_VARIANT=zephyr
  2. export ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk
  3. cd zephyr
  4. source zephyr-env.sh
复制代码

2. 然后找一个最简单的sample——hello world执行CMake
  1. cd $ZEPHYR_BASE/samples/hello_world/
  2. mkdir -p build/mimxrt1050_evk && cd build/mimxrt1050_evk
  3. cmake -GNinja -DBOARD=mimxrt1050_evk ../..
复制代码


3. 最后使用ninja工具进行编译

编过之后生成了zephyr.elf和zephyr.bin,要不放到我们的板子上试试?可惜zephyr官方的sdk中目前对于MIMXRT1050-EVK仅限于用板载的OpenSDA烧录JLink固件后再进行加载和调试,没办法直接在Linux中利用sdk对我们的板子加载镜像和调试了,只好转寻他法。。。网上高手云集,还真有这么搞的
https://blog.csdn.net/hwnd_windows/article/details/52863725?locationNum=5&fps=1
链接中是烧写hex,我试了一下,直接用elf也是可以的,而且还带有符号表

因为官方的镜像是链接到内部TCM中的,所以使用base_demo_ram_debug模式直接调试,只是调试起来只能看汇编

竟然直接可以用,看来野火的开发板兼容性还是很好的

再编一个带shell的sample试试
  1. cd $ZEPHYR_BASE/samples/subsys/shell/shell_module
  2. mkdir -p build/mimxrt1050_evk && cd build/mimxrt1050_evk
  3. cmake -GNinja -DBOARD=mimxrt1050_evk ../..
  4. ninja
复制代码


也没问题,zephyr的shell demo中只支持几个简单的命令

目前zephyr中对官方开发板支持的驱动很少,若用keil加载elf文件进行调试,只能对着汇编调,不是得方便,所以我决定再跑一下FreeRTOS试试,在上面调试其他的驱动和模块应该会比较方便些吧

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条