<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 主線Uboot ## Uboot基礎編譯 ### 安裝交叉編譯器 網盤地址:http://pan.baidu.com/s/1hsf22fq 國外用戶:https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/ ~~~ wget https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz tar xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf /opt/ vim /etc/bash.bashrc # add: PATH="$PATH:/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin" arm-linux-gnueabihf-gcc -v sudo apt-get install device-tree-compiler ~~~ ### 下載編譯Uboot ~~~ git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current #or git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental cd u-boot make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig make ARCH=arm menuconfig time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log ~~~ 編譯完成后,在當前目錄下生成了u-boot-sunxi-with-spl.bin,可以燒錄到8K偏移處啟動。 ### Uboot結構簡介 * 下面來看看該uboot中的目錄結構 ~~~ ├── api 存放uboot提供的API接口函數 ├── arch 平臺相關的部分我們只需要關心這個目錄下的ARM文件夾 │ ├──arm │ │ └──cpu │ │ │ └──armv7 │ │ └──dts │ │ │ └──*.dts 存放設備的dts,也就是設備配置相關的引腳信息 ├── board 對于不同的平臺的開發板對應的代碼 ├── cmd 顧名思義,大部分的命令的實現都在這個文件夾下面。 ├── common 公共的代碼 ├── configs 各個板子的對應的配置文件都在里面,我們的Lichee配置也在里面 ├── disk 對磁盤的一些操作都在這個文件夾里面,例如分區等。 ├── doc 參考文檔,這里面有很多跟平臺等相關的使用文檔。 ├── drivers 各式各樣的驅動文件都在這里面 ├── dts 一種樹形結構(device tree)這個應該是uboot新的語法 ├── examples 官方給出的一些樣例程序 ├── fs 文件系統,uboot會用到的一些文件系統 ├── include 頭文件,所有的頭文件都在這個文件夾下面 ├── lib 一些常用的庫文件在這個文件夾下面 ├── Licenses 這個其實跟編譯無關了,就是一些license的聲明 ├── net 網絡相關的,需要用的小型網絡協議棧 ├── post 上電自檢程序 ├── scripts 編譯腳本和Makefile文件 ├── spl second program loader,即相當于二級uboot啟動。 ├── test 小型的單元測試程序。 └── tools 里面有很多uboot常用的工具。 ~~~ 了解了uboot的基本結構,我們可以知道一些相關的配置在什么地方了。 * lichee的uboot配置文件放在confgs文件目錄下面,名稱為 ~~~ LicheePi_Zero_480x272LCD_defconfig LicheePi_Zero_800x480LCD_defconfig LicheePi_Zero_defconfig ~~~ 這3個配置是根據不同的Zero顯示設備進行的配置,使用其中之一即可,可以在uboot目錄下執行命令 `make LicheePi_Zero_defconfig` 這樣配置就生效了。 ### 開機logo替換 Uboot的開機logo默認情況(只定義了 CONFIG_VIDEO_LOGO)是企鵝logo,這個是存在于uboot代碼中的一個頭文件(include/video_logo.h或 bmp_logo.h),這個是一個巨大的結構體,其中保存著圖片每個像素點的色彩數據。: #### 準備一張jpeg圖片,通過命令行處理為8bit BMP圖片。 ~~~ #!/bin/sh #install Netpbm first jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2 ~~~ 使用方法: (腳本名) ( 待處理的JPG圖片名) (輸出文件名) //這種方式出來的圖不如用專業圖片處理軟件的好 #### 將bmp文件放入/tools/logos中,并修改/tools/下的Makefile ~~~ # Generated LCD/video logo LOGO_H = $(OBJTREE)/include/bmp_logo.h LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H) LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H) ifeq ($(LOGO_BMP),) LOGO_BMP= logos/mylogo.bmp endif ifeq ($(VENDOR),atmel) LOGO_BMP= logos/atmel.bmp endif ifeq ($(VENDOR),esd) LOGO_BMP= logos/esd.bmp endif ifeq ($(VENDOR),freescale) LOGO_BMP= logos/freescale.bmp endif ifeq ($(VENDOR),ronetix) LOGO_BMP= logos/ronetix.bmp endif ifeq ($(VENDOR),syteco) LOGO_BMP= logos/syteco.bmp endif ~~~ 將mylogo.bmp替換成你生成的logo #### 確認配置文件 在include/configs/sun8i.h?中加入兩個宏定義: ~~~ #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO ~~~ 編譯的時候,你的bmp文件會被tools/bmp_logo.c編譯出的工具bmp_logo 制作成include/bmp_logo.h,并編譯進uboot中。 四、重新編譯u-boot即可得到顯示新logo的u-boot。 注: 相關代碼在drivers/video/cfb_console.c下 ~~~ #ifdef CONFIG_VIDEO_LOGO /* Plot the logo and get start point of console */ debug("Video: Drawing the logo ...\n"); video_console_address = video_logo(); ~~~ drv_video_init -> cfg_video_init
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看