在树莓派3b上编译uboot

在树莓派3b上编译uboot

toc

1.说明

最近想研究一下树莓派3b的一些底层驱动的代码,比较好的就是直接可以看树莓派3b的实现。因为usb驱动,网卡驱动,以及lcd驱动,都可以在uboot中直接找到。有了这些东西,对于我们直接写树莓派3b的驱动程序,提供了极大的帮助,所以现在先在树莓派3b上编译运行起来uboot。

后面个人有计划会在rtt上完善以下驱动:

1.网络驱动(网口)

2.spi的lcd屏(目前spi驱动已经实现,需对接屏和触摸)

3.spi接口的wifi驱动

3.hdmi的lcd屏(目前驱动已经基本实现)

4.树莓派在rt-thread多核使用

5.usb驱动

6.音频驱动

7.摄像头驱动

以上推进计划会在个人工作之余中进行,如果有想法和我一起推进,可以给我公众号留言,一起推进树莓派驱动工作,完善树莓派rt-thread功能。

2.代码编译

2.1 交叉编译工具链下载

交叉编译工具链,主要可以从下面的链接地址下载

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

我的是Ubuntu系统,相关的window系统的交叉编译工具链可以类似找到

文件有1.4G左右,我已经放到网盘中提供下载

链接: https://pan.baidu.com/s/1GR-IQlCcqu1APvmu_MLkCg

提取码: fgby

2.2 源代码下载

首先需要下载源代码,可以通过下面的网页进行访问

https://github.com/u-boot/u-boot.git

将其导入的gitee可以加速clone速度。

接着进入u-boot目录文件夹,依次输入下面两条命令

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make rpi_3_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make

此时就可以看到编译出来的文件了

3.固件下载与使用

对于树莓派固件的下载,主要是通过sd卡进行搬运工作,关于树莓派的启动方式,可以看我之前的文章描述,这里不多说。

当制作好树莓派的sd卡启动盘后,需要将u-boot.bin的代码放到sd卡中并且修改config.txt文件如下

kernel=u-boot.bin
arm_64bit=1
kernel_address=0x00080000
enable_uart=1

将sd卡启动盘放到树莓派中,用串口工具连接树莓派串口引脚

接着就可以进行上电操作。

此时,uboot就可以正常运行了。

4.待完善的功能

实时上,树莓派的uboot最接近裸机操作,在学习使用树莓派非常的有用,对于外设开发来说,由于树莓派有着非常强大的功能,可以玩的功能非常的多。有了lcd驱动之后,我们可以去做嵌入式gui,有了网络,我们可以玩嵌入式网络,有了摄像头,可以进行图像的开发与采集,有了usb,可以学习usb协议。

总之,树莓派由于其成本了性能的优势,让这个开发板学习嵌入式非常有价值,结合国产物联网操作系统,一定会让其发挥出很多效果,可玩性更高。

所以希望有更多的人参与进来,一起推进,目前uboot的一些驱动已经实现,结合rt-thread的驱动框架模型,可以很方便的进行开发扩张,设计出自己的产品。





posted @ 2020-04-11 13:35  bigmagic  阅读(1682)  评论(0编辑  收藏  举报