查看: 5477|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2018-6-21 08:39
  • 签到天数: 8 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    发表于 2018-6-1 23:52:25 | 显示全部楼层 |阅读模式
    分享到:
    有了新潮装备,那就考虑下在他上面布局新潮平台呗。目前各大软硬件厂商纷纷发力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 ../..
    复制代码

    pic1.jpg

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

    编过之后生成了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也是可以的,而且还带有符号表
    pic3.jpg

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

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

    再编一个带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
    复制代码

    pic7.jpg

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

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

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2025-1-12 18:44 , Processed in 0.116627 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.