色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

U-Boot介紹

玩轉單片機 ? 來源:玩轉單片機 ? 作者:noah ? 2022-10-08 10:50 ? 次閱讀

在移植 Linux之前我們需要先移植一個 bootloader 代碼,這個 bootloader 代碼用于啟動 Linux 內核, bootloader有很多,常用的就是 U-Boot。

移植好 U-Boot 以后再移植 Linux 內核,移植完 Linux 內核以后Linux 還不能正常啟動,還需要再移植一個根文件系統(rootfs),根文件系統里面包含了一些最常用的命令和文件。

所以 U-Boot、 Linux kernel 和 rootfs 這三者一起構成了一個完整的 Linux 系統,一個可以正常使用、功能完善的 Linux 系統。一個完整的linux系統,通常包含了Uboot、kernel、設備樹以及根文件系統。

fc6b1e14-45db-11ed-96c9-dac502259ad0.png

| 硬件平臺

綜合了多方開發板,最終選擇的是野火(i.MX6ULL eMMC),板子的顏值也比較高,但是原子的教程會詳細一點,以「野火EBF6ULL Pro開發板教程」「正點原子i.MX6ULL阿爾法開發板教程」為參考,進行學習實踐。

(以具體的開發板為準)

| Uboot介紹

uboot 的全稱是 Universal Boot Loader, uboot 是一個遵循 GPL 協議的開源軟件, uboot 是一個裸機代碼,可以看作是一個裸機綜合例程。現在的 uboot 已經支持液晶屏、網絡USB 等高級功能。

我們一般不會直接用 uboot 官方的 U-Boot 源碼的。uboot 官方的 uboot 源碼是給半導體廠商準備的,半導體廠商會下載 uboot 官方的 uboot 源碼,然后將自家相應的芯片移植進去。也就是說半導體廠商會自己維護一個版本的 uboot,這個版本的 uboot 相當于是他們定制的。

fdb58cdc-45db-11ed-96c9-dac502259ad0.png

| Uboot編譯

編譯前還要在Ubuntu 中「安裝ncurses 庫」,安裝命令如下:

sudoapt-getinstalllibncurses5-dev

提示:有些庫在Ubuntu中已經自帶,如果編譯出錯記得把需要的庫安裝;

獲取原廠的uboot源碼:

通過正點原子官網獲取資源,在01、例程源碼/04、NXP官方原版Uboot和Linux目錄下即可找到uboot(uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2)源碼,然后放到方便找到的目錄下,比如直接放在桌面,本人直接放在桌面/saver目錄下;源碼文件是.bz2格式,需要對文件進行解壓,解壓命令:

tar -vxjf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

解壓后的文件如下圖所示:

fe1f5d24-45db-11ed-96c9-dac502259ad0.png

uboot的目錄結構如下圖所示:

fe5d3c66-45db-11ed-96c9-dac502259ad0.png

首先看下「uboot的配置」,configs目錄下有很多的配置文件,找到與實際開發板相同類似的配置文件。正點原子和野火的I.MX6ULL開發板參考的就是「NXP官方的I.MX6ULL EVK開發板」做的硬件,因為手頭上的開發板是emmc版本的,所以就使用下面這個配置文件。

mx6ull_14x14_evk_emmc_defconfig

ff1a2088-45db-11ed-96c9-dac502259ad0.png

編譯uboot使用的指令:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

命令解析:

ARCH=arm 設置目標為 arm 架構;

CROSS_COMPILE 指定所使用的交叉編譯器。

第1條命令相當于make distclean,目的是清除工程,一般在編譯的時候需要清理一下工程已存在的編譯文件。

第2條指令相當于make mx6ull_14x14_evk_emmc_defconfig,用于配置 uboot,配置文件為 mx6ull_14x14_evk_emmc_defconfig。

第3條指令相當于make -j8,也就是使用8核來編譯uboot。

為了方便使用直接寫個腳本文件,新建一個build.sh文件,寫入相關腳本:

#!/bin/bash


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

ff49a204-45db-11ed-96c9-dac502259ad0.png

運行腳本編譯uboot:

. build.sh

ffb56764-45db-11ed-96c9-dac502259ad0.png

編譯后的文件結構:

006ee252-45dc-11ed-96c9-dac502259ad0.png

編譯后會生成不少中間文件,其中編譯生成的 u-boot.imx文件就是我們最終要燒寫到開發板中的 uboot 鏡像文件;

| 燒寫鏡像

燒寫鏡像的方法有很多,這里采用的是SD卡燒錄的方式,簡單理解就是讓開發板從SD啟動,開發板的啟動方式是通過撥碼開關實現切換的;

配置撥碼開關:

0087fe0e-45dc-11ed-96c9-dac502259ad0.png

(截圖來源于正點原子,具體根據實際開發板配置)

00d3e814-45dc-11ed-96c9-dac502259ad0.png

(截圖來源于野火,具體根據實際開發板配置)

野火使用的是USB OTG或Etcher的方式更新鏡像,但是正點原子專門編寫了一個軟件來將編譯出來的.bin 文件燒寫到 SD 卡中,這個軟件叫做"imxdownload",路徑為:開發板光盤->5、開發工具->2、Ubuntu 下裸機燒寫軟件->imxdownload,注意imxdownlaod 只能在 Ubuntu 下使用;

00e8024a-45dc-11ed-96c9-dac502259ad0.png

使用步驟:

1. 將 imxdownload 拷貝到工程根目錄下,也就是和 **.bin 處于同一個文件夾下,要不然燒寫會失敗的;

010ca0f0-45dc-11ed-96c9-dac502259ad0.png

2.給予 imxdownload 可執行權限,imxdownload 默認是沒有可執行權限的,需要給予 imxdownload 可執行權限;

chmod 777 imxdownload

3. 燒錄到SD卡,注意提前備份數據,燒錄會格式化SD卡;

Ubuntu 下所有的設備文件都在目錄“/dev”里面,所以插上 SD 卡以后也會出現在“/dev”里面,其中存儲設備都是以“/dev/sd”開頭的。

//查看電腦所有存儲設備
ls /dev/sd*

注意:SD卡一定要連接到ubuntu中,如果出現設備無法連接到它的理想主機控制器,就需要把usb兼容性改成3.0;

01432e04-45dc-11ed-96c9-dac502259ad0.png

imxdownload向SD卡燒寫u-boot.bin文件,命令格式如下:

./imxdownload u-boot.bin /dev/sdb

imxdownload:imxdownload工具;

u-boot.bin:需要燒寫到SD卡的文件;

/dev/sdb:插入的SD卡設備;

注意:不要選擇錯設備,一定要保證是自己插入的SD卡設備;

0178ef4e-45dc-11ed-96c9-dac502259ad0.png

注意這個燒寫速度,如果這個燒寫速度在幾百 KB/s 以下那么就是正常燒寫,如果這個燒寫速度大于幾十 MB/s、甚至幾百 MB/s 那么肯定是燒寫失敗了! 燒寫完成以后會在當前工程目錄下生成一個 load.imx 的文件,load.imx 這個文件就是軟件 imxdownload 根據 NXP 官方啟動方式介紹的內容,在 u-boot.bin文件前面添加了一些數據頭以后生成的。最終燒寫到 SD 卡里面的就是這個 load.imx 文件,而非boot.bin。

01a41f48-45dc-11ed-96c9-dac502259ad0.png

0267ae72-45dc-11ed-96c9-dac502259ad0.png

|驗證效果

把啟動方式切換到SD卡啟動,重新上電啟動開發板,當出現倒計時時(串口打印上出現Hit any key to stop autoboot)按下回車,就可以進行uboot面板,默認倒計時3秒,3秒內沒有按下按鍵就會啟動內核;

使用MobaXterm工具查看開發板數據,波特率設置為115200;

04b8503c-45dc-11ed-96c9-dac502259ad0.png

| uboot命令 輸入help或?,然后按下回車即可查看當前 uboot 所支持的命令,不同版本的uboot支持的命令會有一點出入:

04e2083c-45dc-11ed-96c9-dac502259ad0.png

uboot支持的命令比較多,具體使用可以去官網看看文檔。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • u-boot
    +關注

    關注

    0

    文章

    121

    瀏覽量

    38222
  • LINUX內核
    +關注

    關注

    1

    文章

    316

    瀏覽量

    21644

原文標題:i.MX6ULL|uboot初探

文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    U-boot的基本介紹

    從本文開始,將陸續推送“手把手教你移植U-boot”系列文章,目標是由淺入深地講解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默認硬件開發平臺為ARM,操作系統為Linux。
    發表于 07-14 16:52 ?2867次閱讀
    <b class='flag-5'>U-boot</b>的基本<b class='flag-5'>介紹</b>

    u-boot-1.2.0移植手冊》(轉載)

    U-Boot移植手冊目錄: 寫在前面的話... 2 目 錄... 3 1. u-boot介紹... 4 1.1 U-Boot的來源... 4 1.2
    發表于 11-17 08:46

    U-Boot介紹1

    U-Boot介紹1
    發表于 08-04 00:23

    基于U-boot的EB44B0開發板移植

    嵌入式系統來說,引導程序比較復雜,一般采用在基本符合硬件體系要求的現有引導程序的基礎上進行修改,然后通過應用的方法設計引導程序,這就是引導程序的移植。1 U-boot介紹U-boot
    發表于 06-20 06:28

    U-boot的特點是什么

    Bootloader的操作模式常用bootloader介紹?U-boot介紹U-boot的特點:U-boot命令
    發表于 12-14 09:22

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    發表于 01-25 15:45 ?13次下載

    U-Boot結構功能介紹

      U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目。從FADSROM、8xxROM、PPCBOOT逐步發展演化而來。其源碼目錄、編譯形式與Linux內核很相似,事實上,不少U-Boot
    發表于 07-30 09:17 ?1178次閱讀
    <b class='flag-5'>U-Boot</b>結構功能<b class='flag-5'>介紹</b>

    使用U-boot運行測試程序

    本內容介紹了使用U-boot運行測試程序
    發表于 06-16 16:12 ?49次下載
    使用<b class='flag-5'>U-boot</b>運行測試程序

    BootLoader與u-boot介紹

    發表于 10-20 18:11 ?0次下載

    u-boot簡介

    U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目。U-Boot的作用是系統引導。U-Boot從FADSROM、8xxROM、PPCBOOT
    發表于 10-14 11:17 ?3560次閱讀

    fireflyAIO-3399C主板U-Boot介紹

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-04 10:31 ?1434次閱讀

    fireflyAIO-3288C主板U-Boot介紹

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-16 13:52 ?1147次閱讀
    fireflyAIO-3288C主板<b class='flag-5'>U-Boot</b><b class='flag-5'>介紹</b>

    微雪電子AIO-3128C主板U-Boot使用介紹

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-23 16:08 ?1356次閱讀
    微雪電子AIO-3128C主板<b class='flag-5'>U-Boot</b>使用<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板U-Boot使用介紹

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-24 10:00 ?1642次閱讀
    fireflyAIO-3399J主板<b class='flag-5'>U-Boot</b>使用<b class='flag-5'>介紹</b>

    Linux U-Boot開發指南

    介紹 U-Boot 的編譯打包、基本配置、常用命令的使用、基本調試方法等, 為 U-BOOT 的移植及應用開發提供了基礎。
    的頭像 發表于 03-06 10:28 ?1311次閱讀
    Linux <b class='flag-5'>U-Boot</b>開發指南
    主站蜘蛛池模板: 激情综合色| 99久久精品费精品国产| 婷婷久久综合九色综合伊人色| 两个奶头被吃得又翘又痛| 九九热在线观看| 精品国产成人a区在线观看| 国语自产拍大学生在线观看| 国产免费变态视频网址网站| 国产精品VIDEOSSEX久久发布| 国产99久久亚洲综合精品西瓜tv| www.青青草.com| 爱看吧孕妇网| 高傲教师麻麻被同学调教123| 帝王被大臣们调教高肉| 初中XXXXXL| 国产激情文学| 国产午夜a理论毛片在线影院| 国产午夜永久福利视频在线观看 | 无码观看AAAAAAAA片| 谁有成人网站地址| 午夜伦理电影在线观免费| 午夜男人免费福利视频| 亚洲精品www久久久久久| 夜夜骑夜夜欢| 最近日本字幕MV免费观看在线| 99精品国产免费观看视频| 扒开女人下面使劲桶视频| 国产99久久久国产精品成人| 国产喷水1区2区3区咪咪爱AV| 好紧好湿太硬了我太爽了文字| 久久AV国产麻豆HD真实| 蜜桃麻豆WWW久久囤产精品免费| 欧美6O老妪与小伙交| 日韩中文字幕欧美在线视频| 小777论坛| 在线免费中文字幕| bl(高h)文| 国产免费福利在线视频| 久久大香萑太香蕉av| 漂亮的保姆3集电影免费观看中文| 色偷偷网址|