国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

您好,歡迎進入深圳市穎特新科技有限公司官方網站!

您現在的位置:首頁 新聞資訊 >> 新聞頭條 >> 嵌入式系統UBOOT
新聞資訊
NEWS INFORMATION

嵌入式系統UBOOT

發(fā)布時間:2019-05-22

一個完整的嵌入式linux系統包含4部分內容:Bootloader、Parameters、Kernel、Root File System。3、4、5、6部分詳細介紹了這4部分的內容,這是Linux底層軟件開發(fā)人員應該掌握的。通過學習這些章節(jié),您可以詳細了解到如何在一個裸板上裁減、移植Linux,如何構造自己的根文件系統,如何編寫適合客戶需求的驅動程序——驅動程序這章將結合幾個經典的驅動程序進行講解。您還可以了解到在用在nand flash上的非常流行的yaffs文件系統是如何工作的,本書將結合yaffs代碼詳細介紹yaffs文件系統。

BIOS、BootLoader、uboot對比

bios

BIOS是英文"Basic Input Output System"的縮略語,直譯過來后中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機后自檢程序和系統自啟動程序。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。

 

 

BootLoader

BootLoader是一段小程序,可以把它想象成PC機linux上的GRUB/LILO引導程序,只不過在嵌入式linux中,沒有BIOS,而是直接從flash中運行,來裝載內核。它可以初始化硬件設備,從而將系統的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統做好準備。

 

一個嵌入式系統從軟件角度來看分為三個層次:
1.引導加載程序
包括固化在固化中的boot程序(可選),和BootLoader兩大部分
2.linux內核
特定于嵌入式平臺的定制內核
3.文件系統
包括了系統命令和應用程序
--------------------------------------------------------------------------------
 BootLoader-->Boot Parameters-->Kernel-->Root Filesystem 
--------------------------------------------------------------------------------
為什么需要進行bootloader移植?
答:1.因為每種不同的CPU體系結構都有不同的BootLoader
2.BootLoader依賴于具體的嵌入式板級設備的配置
--------------------------------------------------------------------------------
BootLoader啟動過程可分為單階段和多階段(stage1、stage2),其中stage1完成初始化硬件,如CPU寄存器、內存控制器,為stage2準備內存空間。一般stage1是可以直接在nor flash中運行的,并將stage2復制到內存RAM中,設置堆棧,然后跳轉到stage2(從這也可以看出stage2是在RAM中運行的,與stage1不同)

BootLoader的stage1通常包括以下步驟:
1.硬件設備初始化  如CPU寄存器、內存控制器
2.為加載BootLoader的stage2準備RAM空間
3.拷貝BootLoader的stage2到RAM空間中
4.設置好堆棧    為什么?為了跳轉到stage2的入口,因為stage2大多數是用C語言寫的
5.跳轉到stage2的C入口點

BootLoader的stage2通常包括以下步驟:
1.初始化本階段要使用到的硬件設備    各種設備,如網卡
2.將內核映像和根文件系統映像從flash上讀到RAM中去
3.調用內核
--------------------------------------------------------------------------------


uboot  

 

Uboot用于多種嵌入式CPU的BootLoader程序
支持多種嵌入式操作系統的引導
UBOOT目錄結構
1.Borad        與開發(fā)板有關的文件。第一個開發(fā)板都以一個子目錄出現在當前目錄中
2.Common    實現Uboot支持的命令
3.Cpu        與特定CPU架構相關的代碼,支持的CPU對應一個子目錄(注意CPU與開發(fā)板的區(qū)別)
3.Disk        對磁盤的支持
4.Doc        文檔目錄
5.Drivers    Uboot支持的設備驅動程序  如各種網卡、串品、USB、支持CFI的Flash
6.Fs         文件系統的支持
7.Iclude    Uboot使用的頭文件。該目錄下configs目錄有與開發(fā)板相關的配置頭文件        該目錄下的asm目錄有與CPU體系結構相關的頭文件
8.Net        與網絡協議相關的代碼    各路協議的實現
9.Tools        生成Uboot的工具,如:mkimage,crc等等

Uboot編譯分為兩步
1.執(zhí)行每種board相關的配置    如:make amdk_2420
2.編譯生成uboot.bin文件        如:make CROSS_COMPILE=arm-linux-(指定正確路徑)
--------------------------------------------------------------------------------

UBOOT基于單板機提供了豐富的命令集操作
UBOOT命令
printenv查看環(huán)境變量(相當全局變量?)
setenv 添加、修改、刪除環(huán)境變量
1.setenv name value
set environment variable 'name' to 'value...'
2.setenv name
delete environment variable 'name'
saveenv保存環(huán)境變量
將當前定義的所有變量及其值存入flash中
--------------------------------------------------------------------------------
---------------------文件下載------------------------------------
tftp 通過網絡下載文件     使用前,配置好網絡
配置網絡:1.setenv ethaddr 12:34:56:78:8A:BC
2.setenv ipaddr 192.168.1.1
3.setenv serverip 192.168.1.254  (tftp服務器的地址)
連接下載:tftp 32000000 uImage
把server(IP=環(huán)境變量中設置的serverip)服務目錄下的uImage通過tftp讀入到0x32000000處

md 顯示內存區(qū)的內容
md[.b,.w,.l]address    如:md.w 1000000

mm[.b,.w,.l]address    如:mm.w 100000
mm 修改內存,地址自動遞增    提供了一種互動修改存儲器內容的方法,如果沒有輸入任何值,按回車內容保持不變,輸入空格然后按下回車,結束輸入

flinfo    查看Flash扇區(qū)信息
--------------------------------------------------------------------------------
protect Flash寫保護  打開或關閉扇區(qū)寫保護
用法:
protect off all        關閉所有扇區(qū)的寫保護
protect on all         打開所有扇區(qū)的寫保護
protect off start end     關閉從start到end扇區(qū)的寫保護-----》protect off 0 1ffff(前一扇區(qū)減去1?)
protect on start end     打開從start到end扇區(qū)的寫保護

--------------------------------------------------------------------------------

erase 擦除flash扇區(qū)
用法: erase start end    如: erase 30000 1efff
在使用cp命令向Nor型Flash寫入數據之前必須先使用erase命令擦除flash

cp 數據拷貝
cp [.b,.w,.l]saddress daddress len
cp提供了一種內存與內存,內存與Flash之間數據拷貝的方法
如:cp.b 31000000 50000 d0000 即是將內存地址0x31000000處的數據(長度為0xd0000)拷貝到地址0x50000處(Flash中)

--------------------------------------------------------------------------------
執(zhí)行程序
go 執(zhí)行內存中的二進制代碼,一個簡單的跳轉到指定地址
go addr[arg...]
start application at address 'addr',
passing 'arg' as arguments

bootm 執(zhí)行內存中的二進制代碼
bootm [addr[arg...]]       要求二進制代碼有固定格式的文件頭
boot application image stored in memory passing arguments 'arg...';
when booting a Linux kernel,'arg' can be the address of an initrd image
bdinfo    顯示開發(fā)板信息  (可用于啟動linux內核)
bdinfo命令將在終端顯示諸如內存地址和大小、時鐘頻率、MAC地址等信息
這些信息在傳遞給LIUNX內核一些參數時可能會用到

設置自動啟動
setenv bootcmd tftp 31000000 uImage \;bootm 31000000
saveenv

 

聯系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

久久99爱爱视频视频| 伊人久久青草地综合婷婷| 亚洲精品有码中文字幕在线观看| 日本午夜免费福利视频| 亚洲黄色在线观看免费高清| 四季精品人妻av一区二区三区 | 久久精品福利在线观看| 在线观看免费视频你懂的| 日韩欧美在线看一卡一卡| 国产精品午夜福利免费阅读| 日本精品中文字幕人妻| 日韩一区二区三区在线日| 国产三级不卡在线观看视频| 91精品国产品国语在线不卡| 国产精品免费自拍视频| 日本午夜免费观看视频| 97人摸人人澡人人人超碰| 高清一区二区三区四区五区| 国产成人精品国产成人亚洲| 精品熟女少妇av免费久久野外| 亚洲另类欧美综合日韩精品| 女厕偷窥一区二区三区在线| 亚洲av日韩av高潮无打码 | 黄色片一区二区在线观看| 国产成人亚洲精品青草天美| 日韩成人动画在线观看| 中文字幕一区二区熟女| 亚洲熟妇熟女久久精品 | 国产一区欧美一区日本道| 91国内视频一区二区三区| 91国内视频一区二区三区| 国产超薄黑色肉色丝袜| 真实偷拍一区二区免费视频| 亚洲中文字幕视频在线观看| 蜜臀人妻一区二区三区| 国产午夜福利在线观看精品| 国产精品午夜一区二区三区 | 国产中文字幕一区二区| 日本在线不卡高清欧美| 精品少妇人妻av一区二区蜜桃| 精品欧美在线观看国产|