在樹莓派3b上編譯uboot
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的驅動框架模型,可以很方便的進行開發擴張,設計出自己的產品。