精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

tiny4412編譯與移植U-Boot

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-08-31 08:59 ? 次閱讀

tiny4412編譯與移植U-Boot

1.uboot簡介

U-Boot 是一個主要用于嵌入式系統的引導加載程序,可以支持多種不同的計算機系統結構,包括PPC、ARM、AVR32、MIPS、x86、68k、Nios與MicroBlaze。這也是一套在GNU通用公共許可證之下發布的自由軟件。

U-Boot本質是一個裸機程序,是一種普遍用于嵌入式系統中的開源的Bootloader,作用是用來引導操作系統,以及給開發人員提供測試調試工具。主要負責基本硬件初始化,導啟動內核啟動。

2.選擇U-Boot理由

① 開放源碼;
② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android
③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS;
④ 較高的可靠性和穩定性;
⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布等;
⑥ 豐富的設備驅動源碼,如串口、以太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;
⑦ 較為豐富的開發調試文檔與強大的網絡技術支持;

3.U-Boot主要功能

系統引導支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統;支持NFS掛載、從FLASH中引導壓縮或非壓縮系統內核;

基本輔助功能強大的操作系統接口功能;可靈活設置、傳遞多個關鍵參數給操作系統,適合系統在不同開發階段的調試要求與產品發布,尤以Linux支持最為強勁;支持目標板環境參數多種存儲方式,如FLASH、NVRAM、EEPROM;

CRC32校驗可校驗FLASH中內核、RAMDISK鏡像文件是否完好;

設備驅動串口、SDRAM、FLASH、以太網、LCD、NVRAM、EEPROM、鍵盤、USB、PCMCIA、PCI、RTC等驅動支持;

上電自檢功能SDRAM、FLASH大小自動檢測;SDRAM故障檢測;CPU型號;

4.U-Boot工作模式

uboot分為啟動加載模式和下載模式。啟動模式即為正常工作模式,嵌入式產品發布時必須工作在啟動模式,此時uboot可以完成操作系統引導,可以將操作系統從flash中拷貝到sram中運行,整個過程自動完成;下載模式即可完成系統更新,可以通過各種通訊方式將PC端數據拷貝到嵌入式產品中。

5.U-Boot啟動流程

uboot多數BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。stage1主要存放依賴于CPU架構代碼,通常是匯編程序。stage2則通常用C語言來實現,這樣可以實現復雜的功能,而且有更好的可讀性和移植性。

  • stage1作用

stage1代碼通過存放在start.S中,和CPU架構相關,例如tiny4412的.S文件存放路徑:uboot_tiny4412-sdk1506\arch\arm\cpu\armv7。

pYYBAGMOIoqAWweoAAFTzdNj8LY073.png#pic_center

stage1匯編代碼實現功能為:

1.定義程序入口,一般入口存放在rom的0x0位置。
2.設置異常向量,初始化內存控制器。
3.拷貝rom中的程序到ram中,初始化堆棧。
4.將指針指向到ram中執行。

stage2作用

stage2存放的為C語言代碼,這也是整個uboot的主程序。該代碼注意實現功能為:

1.完成基本硬件初始化,如初始化flash;
2.初始化系統內存分配函數。
3.如果目標系統擁有 nand 設備,則初始化 nand 設備。
4.如果目標系統有顯示設備,則初始化該類設備。
5.初始化相關網絡設備,填寫 ip地址等。
6.進入命令循環(即整個 boot 的工作循環),接受用戶從串口輸入的命令,然后進行相應的工作。

poYBAGMOIouADhqSAAKDrRuD-iI902.png#pic_center

??tiny4412 從SD卡啟動,數據在SD卡中存儲格式:
??tiny4412從SD卡啟動系統,數據存放是從第一個扇區開始。

pYYBAGMOIouAVB6FAACzR0PdcWM111.png#pic_centerpoYBAGMOIoyAXa7oAAGWhxo-BOU978.png#pic_center


1~16扇區存放bl1.bin文件,由三星提供。大小為固定8KB。
17~49扇區存放bl2.bin文件,該扇區用來存放uboot的前14KB代碼。
49~705扇區存放完整uboot文件。
705~1025扇區存放tzsw.bin簽名文件。
從1025扇區開始存放內核鏡像文件,連續寫12288個扇區。
再往后則是根文件系統rootfs

  • 系統啟動流程

在開發板上電時,首先運行的是Exynos本身自帶的64KB的flash中的程序,讀取簽名文件,加載uboot前14kb代碼到Exynos本身的256KB的SRAM中運行,實現基本硬件初始化(如初始化外擴內存),接著將完整Uboot拷貝到外擴內存中,將PC指針指向外擴內存。完成flash初始化、網卡初始化,讀取內核、加載根文件系統,引導操作系統啟動,最終uboot結束本次工作,將CPU使用權交接操作系統,至此,系統啟動成功。

6.U-Boot移植與燒寫

PC端系統:ubuntu18.04
交叉編譯器:arm-linux-gcc
#解壓uboot源碼
[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/uboot_tiny4412-sdk1506.tar
[wbyq@wbyq uboot_tiny4412-sdk1506]$ make distclean
[wbyq@wbyq uboot_tiny4412-sdk1506]$ make clean #清空配置
[wbyq@wbyq uboot_tiny4412-sdk1506]$ make tiny4412_config #配置開發板
Configuring for tiny4412 board...
[wbyq@wbyq uboot_tiny4412-sdk1506]$ make -j8 #編譯源碼
pYYBAGMOIo2AXpppAAOORkA_tKQ451.png#pic_center

6.1 ubunut編譯uboot報錯

報錯:libz.so.1: cannot open shared object file: No such file or directory
解決辦法:sudo apt-get install lib32ncurses5 sudo apt-get install lib32z1

6.2 make menuconfig報錯

錯誤1:make menuconfig’ requires the ncurses libraries。缺少ncurses庫。
解決辦法:sudo apt-get install libncurses5-dev
錯誤2:

poYBAGMOIo2ABVfuAAE_hMncDjM489.png#pic_center

??將窗口放大即可。

6.3 燒寫uboot到SD卡

[wbyq@wbyq uboot_tiny4412-sdk1506]$ cd sd_fuse/ 
[wbyq@wbyq sd_fuse]$ make  //編譯生成mkbl2
[wbyq@wbyq sd_fuse]$ cd tiny4412/  
//插上SD卡,燒寫U-boot
[xsw@xsw tiny4412]$ sudo ./sd_fusing.sh /dev/sdb 
pYYBAGMOIo6ANymFAAFPGX-Rtj8511.png#pic_center

6.4 開發板運行uboot

??將SD卡插到開發板上,選擇從SD卡啟動,插上串口線。

poYBAGMOIo6ANjPzAAFcUOKYimk326.png#pic_center


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

    關注

    1

    文章

    375

    瀏覽量

    28008
  • u-boot
    +關注

    關注

    0

    文章

    119

    瀏覽量

    38136
  • 編譯
    +關注

    關注

    0

    文章

    646

    瀏覽量

    32664
收藏 人收藏

    評論

    相關推薦

    U-Boot介紹

    移植 Linux之前我們需要先移植一個 bootloader 代碼,這個 bootloader 代碼用于啟動 Linux 內核, bootloader有很多,常用的就是 U-Boot。
    的頭像 發表于 10-08 10:50 ?3635次閱讀

    U-boot的基本介紹

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

    u-boot的Makefile分析

    u-boot的Makefile分析 U-BOOT是一個LINUX下的工程,在編譯之前必須已經安裝對應體系結構的交叉編譯環境,這里只針對ARM,編譯
    發表于 05-17 09:16 ?2028次閱讀

    嵌入式U-BOOT的啟動流程及移植

    S3C44B0開發板上的移植方法和步驟。 u-boot是一個功能強大的bootloader開發軟件,適用的CPU平臺及
    發表于 02-25 16:00 ?59次下載

    exynos4412-uboot移植筆記

    針對迅為4412開發板進行u-boot移植全過程
    發表于 05-17 09:49 ?14次下載

    Mini2440之U-boot使用及移植詳細手冊

    Mini2440之U-boot使用及移植詳細手冊
    發表于 10-30 08:31 ?44次下載
    Mini2440之<b class='flag-5'>U-boot</b>使用及<b class='flag-5'>移植</b>詳細手冊

    S3C6410的u-boot分析與移植

    S3C6410的u-boot分析與移植
    發表于 10-31 14:44 ?28次下載
    S3C6410的<b class='flag-5'>u-boot</b>分析與<b class='flag-5'>移植</b>

    如何進行U-BOOT移植

    本文檔的主要內容詳細介紹的是如何進行U-BOOT移植。說先在把U-BOOT- 1.1.6復制到SMB共享文件里面,然后到虛擬機里面解壓他,執行命令:tar xjvf U-BOOT-1
    發表于 06-14 17:35 ?6次下載
    如何進行<b class='flag-5'>U-BOOT</b>的<b class='flag-5'>移植</b>

    友善之臂Tiny4412核心板介紹

    Tiny4412是一款高性能的四核Cortex-A9核心板,由廣州友善之臂設計、生產和發行銷售。
    的頭像 發表于 11-05 17:40 ?1.1w次閱讀
    友善之臂<b class='flag-5'>Tiny4412</b>核心板介紹

    基于nanoPC-T3的U-Boot移植過程梳理

    ? 導讀:前文對U-Boot架構設計做了分析,本文來梳理一下U-Boot在具體板子上的移植工作,主要記錄整體思路、要點,以觸類旁通而記之。
    的頭像 發表于 12-14 23:14 ?756次閱讀

    剖析基于nanoPC-T3的U-Boot移植過程

    ? 導讀:前文對U-Boot架構設計做了分析,本文來梳理一下U-Boot在具體板子上的移植工作,主要記錄整體思路、要點,以觸類旁通而記之。
    發表于 01-26 17:20 ?3次下載
    剖析基于nanoPC-T3的<b class='flag-5'>U-Boot</b><b class='flag-5'>移植</b>過程

    Linux U-Boot開發指南

    介紹 U-Boot編譯打包、基本配置、常用命令的使用、基本調試方法等, 為 U-BOOT移植及應用開發提供了基礎。
    的頭像 發表于 03-06 10:28 ?1163次閱讀
    Linux <b class='flag-5'>U-Boot</b>開發指南

    U-boot的QSPI驅動移植方法及驗證方法

    本文主要講述了U-boot的QSPI驅動移植方法及驗證方法。在產品調試階段,U-boot的driver子系統包含了豐富的外設驅動,方便外設功能驗證與調試。
    的頭像 發表于 04-14 10:21 ?2537次閱讀
    <b class='flag-5'>U-boot</b>的QSPI驅動<b class='flag-5'>移植</b>方法及驗證方法

    U-boot的DPU驅動移植方法

    本文以ARM Mali系列顯示處理器驅動為例,講述了U-boot的DPU驅動移植方法。
    的頭像 發表于 04-14 10:25 ?1196次閱讀
    <b class='flag-5'>U-boot</b>的DPU驅動<b class='flag-5'>移植</b>方法

    SS524V100 單板移植和燒寫U-boot(一)

    ?U-boot SS524V100?DMEB板上的外圍芯片包括DDR?SDRAM、eMMC、SPI?Nor?Flash和SPINAND?Flash。 1.編譯?U-boot 當所有移植
    的頭像 發表于 08-22 10:31 ?593次閱讀