高效搭建树莓派3b rt-thread的开发环境

2020-03-17 15:00:11 浏览数 (1)

前言

由于电子设备的普及,越来越多人拥有树莓派,不管是作为电子极客,还是作为普通普通人,很多人都会玩一下树莓派,可以学习一些c语言,也可以学习嵌入式。下面我来介绍一下如何在树莓派上运行rt-thread rtos。

01

准备条件

本文主要介绍如何快速高效的搭建树莓派rt-thread的开发环境。按照文章的步骤,可以很方便的将rt-thread运行起来。

准备条件:

1.树莓派3b

2.usb转ttl模块(树莓派串口输出)

3.一台装有Ubuntu16.04的电脑

当准备好这些东西后,就可以开启我们的树莓派rt-thread之旅了。

02

源代码编译

源代码仓库在可以从rt-thread的官网上查看

git clone git@github.com:RT-Thread/rt-thread.git

其中bsp包下已经有三个文件

raspi2:针对树莓派2的bsp,目前功能较少

raspi3-32:树莓派3b,基本上比较完善,支持多核

raspi3-64:树莓派3b 64位版本

目前我们通过raspi3-32来进行相关的演示。

03

开发环境搭建

Linux下推荐使用gcc工具 gcc-arm-none-eabi-5_4-2016q3,如果还没有编译工具,下载后,解开文件。

tar vxf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2

Linux环境下需要修改编译器目录设置,修改bsp/raspi3-32/rtconfig.py中的

EXEC_PATH = r'/opt/gcc-arm-none-eabi-5_4-2016q3/bin'

为编译工具的实际所在目录,这里注意要加上后缀 /bin

进入到rt-thread/bsp/raspi3-32目录中,运行以下命令:

scons

可以看到生成对应的kernel7.img,该文件就是可执行文件。

04

树莓派SD卡的制作

要想编译出来的kernel文件正常的运行在树莓派上,需要制作SD卡镜像。

格式化SD卡

首先准备一张SD卡,然后格式化

这里推荐一个格式化工具gparted。利用这个工具将SD卡格式化成未分配的即可。

此时点击绿色的对勾就可以完全将SD卡格式化了。

烧录树莓派官方镜像

然后从树莓派官网上下载树莓派的镜像,解压后烧录到sd卡上。

sudo dd if=2019-09-26-raspbian-buster-full.img of=/dev/sda bs=4M

当然,官网上下载很慢,所以我将这个镜像也传到了百度网盘上了。

链接: https://pan.baidu.com/s/1IqFiGdZXmLzWgqHTL3B8Vw

提取码: i6wi

去掉Linux镜像

打开制作好的官方的文件,可以看到有几个kernel,这几个最好都删掉。

然后用刚才编译的kernel7.img复制到这里。

准备好串口线

目前版本是使用raspi3的 GPIO 14, GPIO 15来作路口输出,连线情况如下图所示:

串口参数:115200 8N1 ,硬件和软件流控为关。

按上面的方法做好SD卡后,插入树莓派3B,通电可以在串口上看到如下所示的输出信息:

05

通过YMODEM下载RTT

上述步骤中,修改代码后每次都需要重新上电断电。并且每次都需要将电脑上的镜像转移到sd卡上。非常不方便开发调试,为了解决这些问题。可以借助uboot的TFTP和Ymodem将内核镜像转移到树莓派的内存中。

树莓派uboot的制作

编译树莓派的uboot

下载地址https://ftp.denx.de/pub/u-boot/

解压后可以进行相关的操作:

export CROSS_COMPILE=arm-linux-gnueabihf-

export ARCH=arm

make rpi_2_defconfig

输入make后编译uboot。

当然,为了如果不想自己编译,可以用我已经制作好的uboot即可。

链接: https://pan.baidu.com/s/1U3QjIqQDA1lvp236RpRaWA

提取码: 938e

uboot启动设置

将编译好的u-boot.bin放到sd卡中,然后修改树莓派的启动文件

修改config.txt文件

kernel=u-boot.bin

enable_uart=1

通过ymodem下载程序并启动

然后将sd卡放在树莓派上,上电即可看到树莓派正常的启动了。

接着输入loady 0x00008000 115200

然后输入Ctrl A 然后 s的组合键

选择刚才生成的kernel7.img文件即可

下载完成后输入go 0x8000即可看到正常运行

06

总结

通过以上的步骤,可以完全的将树莓派运行起来。并且通过uboot作为下载工具,完全的省去了每次都要用读卡器转移镜像的烦恼,提高工作效率,让开发变得更加高效简洁。

rt-thread的树莓派引入了多核和64位体系架构,可玩性非常的高,而且基本的外设也已经实现,后续开发更加便捷,对于学习嵌入式与rtos多核操作非常方便。

0 人点赞