【野火i.MX RT1052学习笔记】2.新潮RTOS了解一下
其他
5987 人阅读
|
0 人回复
|
2018-06-01
TA的每日心情 | 开心 2018-6-21 08:39 |
|---|
签到天数: 8 天 连续签到: 2 天 [LV.3]偶尔看看II
秀才
- 积分
- 335
|
有了新潮装备,那就考虑下在他上面布局新潮平台呗。目前各大软硬件厂商纷纷发力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
- sudo apt-get update
- sudo apt-get upgrade
复制代码
b. 然后安装必要的软件包
- sudo apt-get install --no-install-recommends git cmake ninja-build gperf \
- ccache doxygen dfu-util device-tree-compiler \
- python3-ply python3-pip python3-setuptools python3-wheel xz-utils file \
- make gcc-multilib autoconf automake libtool
复制代码
c. 在你指定的目录下clone zephyr的代码,我放在了自己的用户目录下
- cd ~
- git clone https://github.com/zephyrproject-rtos/zephyr.git
复制代码
d. 如果此时直接按照文档中的要求装requirements,可能会报什么pip not upgrated,没关系,按照错误提示升级即可
- pip install --upgrade pip
- sudo apt install python-pip
复制代码
e. 安装zephyr开发所需的additional packages
- cd ~/zephyr # or to your directory where zephyr is cloned
- pip3 install --user -r scripts/requirements.txt
复制代码
f. 如果需要用pyocd加载和调试CortexM系列的MCU,需要再安装下面的additional packages
- pip2 install --user -r scripts/py2-requirements.txt
复制代码
g. 安装CMake
- mkdir $HOME/cmake && cd $HOME/cmake
- wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh
- yes | sh cmake-3.8.2-Linux-x86_64.sh | cat
- echo "export PATH=$PWD/cmake-3.8.2-Linux-x86_64/bin:\$PATH" >> $HOME/.zephyrrc
- source <zephyr git clone location>/zephyr-env.sh
- cmake --version
复制代码
然后就可以开始zephyr的开发了。目前zephyr支持的board中,已经有对NXP官方的MIMXRT1050-EVK的支持,不过支持的驱动很少
http://docs.zephyrproject.org/boards/arm/mimxrt1050_evk/doc/mimxrt1050_evk.html
那我们就按文档中的说明来编译一下试试呗
1. 首先设置环境变量
- export ZEPHYR_GCC_VARIANT=zephyr
- export ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk
- cd zephyr
- source zephyr-env.sh
复制代码
2. 然后找一个最简单的sample——hello world执行CMake
- cd $ZEPHYR_BASE/samples/hello_world/
- mkdir -p build/mimxrt1050_evk && cd build/mimxrt1050_evk
- 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试试
- cd $ZEPHYR_BASE/samples/subsys/shell/shell_module
- mkdir -p build/mimxrt1050_evk && cd build/mimxrt1050_evk
- cmake -GNinja -DBOARD=mimxrt1050_evk ../..
- ninja
复制代码
也没问题,zephyr的shell demo中只支持几个简单的命令
目前zephyr中对官方开发板支持的驱动很少,若用keil加载elf文件进行调试,只能对着汇编调,不是得方便,所以我决定再跑一下FreeRTOS试试,在上面调试其他的驱动和模块应该会比较方便些吧
|
|
|
|
|
|
|
|
|