![第八章嵌入式系統(tǒng)BootLoader技術(shù)_第1頁(yè)](http://file4.renrendoc.com/view/d53bb6385350f37109a3644c73b346ac/d53bb6385350f37109a3644c73b346ac1.gif)
![第八章嵌入式系統(tǒng)BootLoader技術(shù)_第2頁(yè)](http://file4.renrendoc.com/view/d53bb6385350f37109a3644c73b346ac/d53bb6385350f37109a3644c73b346ac2.gif)
![第八章嵌入式系統(tǒng)BootLoader技術(shù)_第3頁(yè)](http://file4.renrendoc.com/view/d53bb6385350f37109a3644c73b346ac/d53bb6385350f37109a3644c73b346ac3.gif)
![第八章嵌入式系統(tǒng)BootLoader技術(shù)_第4頁(yè)](http://file4.renrendoc.com/view/d53bb6385350f37109a3644c73b346ac/d53bb6385350f37109a3644c73b346ac4.gif)
![第八章嵌入式系統(tǒng)BootLoader技術(shù)_第5頁(yè)](http://file4.renrendoc.com/view/d53bb6385350f37109a3644c73b346ac/d53bb6385350f37109a3644c73b346ac5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章 嵌入式系統(tǒng)Boot Loader技術(shù)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院祝勇主要內(nèi)容Boot Loader的概念Boot Loader的主要任務(wù)Boot Loader的框架結(jié)構(gòu)Boot Loader的安裝過(guò)程引言在專(zhuān)用的嵌入式開(kāi)發(fā)板運(yùn)行 GNU/Linux 系統(tǒng)已變得越來(lái)越流行。一個(gè)嵌入式 Linux 系統(tǒng)從軟件的角度看通常能分為四個(gè)層次: 1. 引導(dǎo)程序加載。包括固化在固件(firmware)中的 boot 代碼(可選),和 Boot Loader 兩大部分。2. Linux 內(nèi)核。特定于嵌入式開(kāi)發(fā)板的制定內(nèi)核及內(nèi)核的啟動(dòng)參數(shù)。3. 文件系統(tǒng)。包括根文件系統(tǒng)和建立于 Flash 內(nèi)存設(shè)備之上文件系統(tǒng)。
2、通常用 ram disk 來(lái)作為 root fs。4. 用戶(hù)應(yīng)用程序。特定于用戶(hù)的應(yīng)用程序。有時(shí)在用戶(hù)應(yīng)用程序和內(nèi)核層之間可能還會(huì)包括一個(gè)嵌入式圖形用戶(hù)界面。常用的嵌入式 GUI 有:Micro視窗系統(tǒng) 和 MiniGUI 。引言引導(dǎo)程序加載是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。在嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)通常都從地址0 x00000000 處開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的 Boot Loader程序。 8.1 Boot Loader的基本概念簡(jiǎn)單地說(shuō),Boot Loader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,我們能初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,
3、從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。8.1.1 Boot Loader的相關(guān)設(shè)備和機(jī)制通常,Boot Loader 是嚴(yán)重地依賴(lài)于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個(gè)通用的Boot Loader 幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?duì)Boot Loader 歸納出一些通用的概念來(lái),以指導(dǎo)用戶(hù)特定的Boot Loader 設(shè)計(jì)與實(shí)現(xiàn)。8.1.1 Boot Loader的相關(guān)設(shè)備和機(jī)制Bootloader是一段可執(zhí)行程序,完成的主要功能是將可執(zhí)行文件(一般是操作系統(tǒng))搬移到內(nèi)存中,然后將控制權(quán)交給這段可執(zhí)行文件(操作系統(tǒng)
4、)。cpuloaderflashOSmemoryOSBoot Loader的設(shè)計(jì)和實(shí)現(xiàn)1、 Boot Loader 所支持的 CPU 和嵌入式板每種不同的 CPU 體系結(jié)構(gòu)都有不同的 Boot Loader。有些 Boot Loader 也支持多種體系結(jié)構(gòu)的 CPU,比如 U-Boot 就同時(shí)支持 ARM 體系結(jié)構(gòu)和MIPS 體系結(jié)構(gòu)。除了依賴(lài)于 CPU 的體系結(jié)構(gòu)外,Boot Loader 實(shí)際上也依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置。Boot Loader的設(shè)計(jì)和實(shí)現(xiàn)2、 Boot Loader 的安裝媒介(Installation Medium)系統(tǒng)加電或復(fù)位后,所有的 CPU 通常都從某個(gè)
5、由 CPU 制造商預(yù)先安排的地址上取指令固態(tài)存儲(chǔ)設(shè)備的典型空間分配結(jié)構(gòu)Boot Loader的設(shè)計(jì)和實(shí)現(xiàn)3、用來(lái)控制 Boot Loader 的設(shè)備或機(jī)制主機(jī)和目標(biāo)機(jī)之間一般通過(guò)串口建立連接,Boot Loader 軟件在執(zhí)行時(shí)通常會(huì)通過(guò)串口來(lái)進(jìn)行 I/O,比如:輸出打印信息到串口,從串口讀取用戶(hù)控制字符等Boot Loader的設(shè)計(jì)和實(shí)現(xiàn)經(jīng)典2410開(kāi)發(fā)平臺(tái)硬件UART網(wǎng)卡NANDSDRAMS3C2410JTAGBoot Loader的設(shè)計(jì)和實(shí)現(xiàn)4. Boot Loader 的啟動(dòng)過(guò)程是單階段(Single Stage)還是多階段(Multi-Stage通常多階段的 Boot Loader
6、能提供更為復(fù)雜的功能,以及更好的可移植性。從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的 Boot Loader 大多都是 2 階段的啟動(dòng)過(guò)程,也即啟動(dòng)過(guò)程可以分為stage 1 和 stage 2 兩部分Boot Loader的設(shè)計(jì)和實(shí)現(xiàn)5. Boot Loader 的操作模式 (Operation Mode)大多數(shù) Boot Loader 都包含兩種不同的操作模式:?jiǎn)?dòng)加載模式和下載模式Boot Loader 的操作模式啟動(dòng)加載模式嵌入式產(chǎn)品發(fā)布的時(shí)候,Bootloader必須工作在該模式下。這種情況下,Bootloader必須完成硬件自檢、配置,并從Flash中將內(nèi)核拷貝到SDRAM中,并跳轉(zhuǎn)到內(nèi)核入口,實(shí)現(xiàn)自
7、啟動(dòng),而不需要人為的干預(yù)。Boot Loader 的操作模式下載模式對(duì)研發(fā)人員來(lái)說(shuō),Bootloader一般需要工作在這種模式下,特別是調(diào)試內(nèi)核或者Bootloader本身的時(shí)候。通過(guò)串口終端與Bootloader進(jìn)行交互,可以操作系統(tǒng)硬件。比如通過(guò)網(wǎng)口或者串口下載內(nèi)核,燒寫(xiě)Flash等等。Boot Loader的設(shè)計(jì)和實(shí)現(xiàn)6. BootLoader 與主機(jī)之間進(jìn)行文件傳輸所用的通信設(shè)備及協(xié)議1、通過(guò)串口與主機(jī)之間進(jìn)行文件傳輸,傳輸協(xié)議通常是 xmodemymodemzmodem 協(xié)議中的一種。2、通過(guò)以太網(wǎng)連接并借助 TFTP 協(xié)議來(lái)下載文件。8.1.2 Boot Loader 的主要任務(wù)與
8、典型結(jié)構(gòu)框架Boot Loader的總目標(biāo)就是正確地調(diào)用內(nèi)核來(lái)執(zhí)行由于 Boot Loader 的實(shí)現(xiàn)依賴(lài)于 CPU 的體系結(jié)構(gòu),因此大多數(shù) Boot Loader都分為 stage1 和 stage2 兩大部分。依賴(lài)于 CPU 體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在 stage1 中,而且通常都用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以達(dá)到短小精悍的目的。而 stage2 則通常用C語(yǔ)言來(lái)實(shí)現(xiàn),這樣可以實(shí)現(xiàn)給復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和可移植性。Boot Loader 的 階段1(stage1)1、硬件設(shè)備初始化2、為加載 Boot Loader 的 stage2 準(zhǔn)備 RAM 空間3、拷貝
9、 Boot Loader 的 stage2 到 RAM 空間中4、設(shè)置好堆棧5、跳轉(zhuǎn)到 stage2 的 C 入口點(diǎn)基本的硬件初始化屏蔽所有的中斷設(shè)置 CPU 的速度和時(shí)鐘頻率RAM 初始化初始化 LED關(guān)閉 CPU 內(nèi)部指令數(shù)據(jù) cache加載 stage2 準(zhǔn)備 RAM 空間分配的空間大小最好是 memory page 大小(通常是 4KB)的倍數(shù)。確保所安排的地址范圍是可讀寫(xiě)的 RAM 空間將所安排的 RAM 空間范圍進(jìn)行清零操作拷貝 stage2 到 RAM 中stage2 的可執(zhí)行映象在固態(tài)存儲(chǔ)設(shè)備的存放起始地址和終止地址 RAM 空間的起始地址設(shè)置堆棧指針 sp堆棧指針的設(shè)置是為了
10、執(zhí)行 C 語(yǔ)言代碼作好準(zhǔn)備,通常把sp的值設(shè)置為state2_end-4系統(tǒng)物理內(nèi)存布局如下圖所示跳轉(zhuǎn)到 stage2 的 C 入口點(diǎn)在ARM 系統(tǒng)中,可以通過(guò)修改 PC 寄存器為合適的地址來(lái)實(shí)現(xiàn)Boot Loader 的 階段2(stage2)1、初始化本階段要使用到的硬件設(shè)備2、檢測(cè)系統(tǒng)內(nèi)存映射(memory map)3、將kernel映像和根文件系統(tǒng)映像從Flash上讀到RAM空間中4、為內(nèi)核設(shè)置啟動(dòng)參數(shù)5、調(diào)用內(nèi)核初始化本階段要使用到的硬件設(shè)備初始化至少一個(gè)串口初始化計(jì)時(shí)器等檢測(cè)系統(tǒng)的內(nèi)存映射(memory map)所謂內(nèi)存映射就是指在整個(gè) 4GB 物理地址空間中有哪些地址范圍被分配用
11、來(lái)尋址系統(tǒng)的 RAM 單元內(nèi)存映射的描述內(nèi)存映射的檢測(cè) 加載內(nèi)核映像和根文件系統(tǒng)映像規(guī)劃內(nèi)存占用的布局(1)內(nèi)核映像所占用的內(nèi)存范圍(2)根文件系統(tǒng)所占用的內(nèi)存范圍從 Flash 上拷貝設(shè)置內(nèi)核的啟動(dòng)參數(shù)在嵌入式 Linux 系統(tǒng)中,通常需要由 Boot Loader 設(shè)置的常見(jiàn)啟動(dòng)參數(shù)有:ATAG_CORE、ATAG_MEM、ATAG_CMDLINE、ATAG_RAMDISK、ATAG_INITRD等調(diào)用內(nèi)核Boot Loader 調(diào)用 Linux 內(nèi)核的方法是直接跳轉(zhuǎn)到內(nèi)核的第一條指令處,也即直接跳轉(zhuǎn)到 MEM_START0 x8000 地址處。調(diào)用內(nèi)核內(nèi)核啟動(dòng)的條件(1)CPU寄存器設(shè)置
12、R0=0;R1=機(jī)器類(lèi)型ID;R2=啟動(dòng)參數(shù)標(biāo)記列表在RAM中的起始基地址(2)CPU模式必須禁止中斷(IRQs和FIQs);CPU必須使用SVC模式 ;(3)cache和MMU的設(shè)置MMU必須關(guān)閉;指令cache可以打開(kāi)也可以關(guān)閉;數(shù)據(jù)cache必須關(guān)閉 8.2 Boot Loader(vivi)的代碼分析Vivi 是韓國(guó)MIZI公司專(zhuān)門(mén)為三星公司S3C24XX芯片設(shè)計(jì)的Boot Loader。源碼樹(shù)如下:Vivi-+-arch-+-s3c24xx|-Documentation|-drivers-+-serial| -mtd-+-maps| |-nor| -nand|-include-+-p
13、latform| |-mtd| proc|-init|-lib-+-priv_data|-scripts-+-lxdialog|-test|-util8.2 Boot Loader(vivi)的代碼分析階段1階段1從程序arch/s3c24xx/head.S開(kāi)始,按照head.S的代碼執(zhí)行順序,依次完成了下面幾個(gè)任務(wù):(1)關(guān)閉看門(mén)狗(2)禁止所有中斷(3)初始化系統(tǒng)時(shí)鐘(4)初始化內(nèi)存控制寄存器(5)檢查是否從掉電模式喚醒(6)點(diǎn)亮所有LED(7)初始化UART0,設(shè)置工作方式、波特率等(8)跳到內(nèi)存測(cè)試函數(shù)(9)如果定義以NAND Flash方式啟動(dòng),則將vivi所有代碼從NAND Fla
14、sh復(fù)制到SDRAM中(10)跳到Boot Loader的階段2運(yùn)行。8.2 Boot Loader(vivi)的代碼分析階段2階段2從init/main.c中的main函數(shù)開(kāi)始執(zhí)行,一次完成:(1)reset_handler,內(nèi)存清零(lib/reset_handle.c)(2)board_init(),初始化定時(shí)器和設(shè)置GPIO引腳功能(arch/s3c24xx/smdk.c)(3)建立頁(yè)表和啟動(dòng)MMU(/arch/s3c24xx/mmu.c)mem_map_init();mmu_init();(4)heap_init,申請(qǐng)內(nèi)存區(qū)域(5)mtd_dev_init,掃描所使用的NAND Fl
15、ash型號(hào),構(gòu)造MTD設(shè)備。U-Boot簡(jiǎn)介 1999年由德國(guó)DENX軟件工程中心的Wolfgang Denk發(fā)起,全稱(chēng)Universal Bootloader。特點(diǎn):支持多種硬件構(gòu)架:包括ARM、x86、PPC、MIPS、m68k、NIOS、Blackfin支持多種操作系統(tǒng):包括Linux、VxWorks、NETBSD、QNX、RTEMS、ARTOS、LynxOS支持多達(dá)216種以上的開(kāi)發(fā)板開(kāi)放源代碼,遵循GPL條款易于移植、調(diào)試官方網(wǎng)站:http:/www.denx.de/wiki/U-Boot/WebHomeU-Boot 啟動(dòng)分析U-Boot目錄結(jié)構(gòu)board 目標(biāo)板相關(guān)文件,主要包含硬
16、件初始化、SDRAM初始化common 獨(dú)立于處理器體系結(jié)構(gòu)的通用代碼 cpu 與處理器相關(guān)的文件,包含cpu初始化、串口初始化、中斷初始化等代碼doc U-Boot的說(shuō)明文檔drivers 設(shè)備驅(qū)動(dòng)代碼,如Flash驅(qū)動(dòng)、網(wǎng)卡驅(qū)動(dòng)、串口驅(qū)動(dòng)等f(wàn)s U-Boot支持的文件系統(tǒng)的實(shí)現(xiàn),如cramfs、fat、ext2、jffs2等include U-Boot使用的頭文件,包括不同硬件構(gòu)架的頭文件lib_xxx 處理器相關(guān)文件,如我們要使用的lib_arm,與arm體系結(jié)構(gòu)相關(guān)的文件net 網(wǎng)絡(luò)功能的上層文件,實(shí)現(xiàn)各種協(xié)議,如nfs、tftp、arp等U-Boot 啟動(dòng)分析U-Boot啟動(dòng)流程之s
17、tage1第一階段的代碼位于cpu/arm920t/start.S中,依次完成以下功能:1、系統(tǒng)上電,進(jìn)入svc模式2、關(guān)閉看門(mén)狗,禁止所有中斷3、進(jìn)行初級(jí)硬件初始化4、將自身代碼拷貝到SDRAM中5、設(shè)置堆棧6、清空bss段7、跳轉(zhuǎn)到C語(yǔ)言實(shí)現(xiàn)的stage2中U-Boot 啟動(dòng)分析程序跳轉(zhuǎn)的實(shí)現(xiàn)ldr pc, _start_armboot _start_armboot: .word start_armboot_start_armboot和start_armboot都是symbol,程序鏈接時(shí)由連接器使用。上面程序的第二行表示在symbol處放置一個(gè)值,這個(gè)值就是start_armboot的鏈
18、接地址,也是程序代碼存放的地址。將這個(gè)地址放入PC中,從而實(shí)現(xiàn)程序的跳轉(zhuǎn)。U-Boot 啟動(dòng)分析U-Boot啟動(dòng)流程之stage2start_armboot 函數(shù)是c語(yǔ)言的入口函數(shù),定義在lib_arm/board.c中。調(diào)用初始化序列:init_fnc_t *init_sequence = board_init, / board/up2410/up2410.c中實(shí)現(xiàn),主要更新GPIO和PLL設(shè)置 還包括內(nèi)核啟動(dòng)參數(shù)存放地址設(shè)置、ARCH_NUMBER設(shè)置interrupt_init, /在cpu/arm920t/s3c24x0/interrupts.c實(shí)現(xiàn),初始化時(shí)鐘中斷env_init,
19、/在common/env_nand.c中實(shí)現(xiàn),設(shè)置缺省環(huán)境變量init_baudrate, /在lib_arm/board.c中實(shí)現(xiàn),設(shè)置環(huán)境變量中的串口波特率serial_init, /在common/serial.c中實(shí)現(xiàn),初始化串口(硬件層面)display_banner, /在lib_arm/board.c中實(shí)現(xiàn),打印U-Boot的bannerdram_init, / 在board/up2410/up2410.c中實(shí)現(xiàn),初始化SDRAMNULL,;U-Boot 啟動(dòng)分析U-Boot啟動(dòng)流程之stage2進(jìn)入無(wú)限循環(huán):for (;) main_loop ();main_loop在comm
20、on/main.c中實(shí)現(xiàn)。它通過(guò)串口和U-Boot進(jìn)行交互,以便引導(dǎo)內(nèi)核或進(jìn)行其他參數(shù)的修改、設(shè)置。U-Boot 啟動(dòng)分析U-Boot啟動(dòng)Linux內(nèi)核(1/3)ARM Linux Kernel Boot Requirements :U-Boot 啟動(dòng)分析設(shè)置machine type number定義在include/asm-arm/mach-types.h中#define MACH_TYPE_SMDK2410 193賦值在board_init函數(shù)中g(shù)d-bd-bi_arch_number = MACH_TYPE_SMDK2410;把該值設(shè)置到環(huán)境變量中。U-Boot 啟動(dòng)分析U-Boot啟動(dòng)
21、Linux內(nèi)核(2/3)do_bootm_linux函數(shù),在lib_arm/armlinux.c中實(shí)現(xiàn)。由u-boot命令do_bootm函數(shù)調(diào)用 (common/cmd_bootm.c)設(shè)置內(nèi)核啟動(dòng)參數(shù):setup_start_tag (bd);setup_serial_tag (¶ms);setup_revision_tag (¶ms);setup_memory_tags (bd);setup_commandline_tag (bd, commandline);setup_videolfb_tag (gd_t *) gd);setup_end_tag (bd);內(nèi)核啟動(dòng)參數(shù)
22、存放地址:0 x30000100,在board_init函數(shù)(board/uptech_2410class/smdk2410.c) 中設(shè)置。U-Boot 啟動(dòng)分析U-Boot啟動(dòng)Linux內(nèi)核(3/3)theKernel函數(shù)指針:聲明:void (*theKernel)(int zero, int arch, uint params);賦值:theKernel = (void (*)(int, int, uint)ntohl(hdr-ih_ep);U-Boot 啟動(dòng)分析跳轉(zhuǎn)到內(nèi)核入口處前面已經(jīng)從環(huán)境變量中讀出了machine type number,設(shè)置好了內(nèi)核啟動(dòng)所需參數(shù),只需要跳轉(zhuǎn)到內(nèi)核入
23、口處就可以了:theKernel (0, machid, bd-bi_boot_params);根據(jù)AAPCS,r0、r1和r2中分別放置了0、machid和啟動(dòng)參數(shù)的地址。U-Boot 啟動(dòng)分析一、建立板級(jí)支持包BOARD支持:目前U-boot支持上百種不同架構(gòu)CPU生產(chǎn)廠(chǎng)商的開(kāi)發(fā)板,如Marvell、atmel、altera、pxa255、omap、smdk2410等。根據(jù)S3C2410處理器,在board目錄下依照smdk2410目錄配置,創(chuàng)建自己開(kāi)發(fā)板的板級(jí)資源目錄,相應(yīng)的在include/configs目錄下創(chuàng)建頭文件。修改規(guī)則文件Makfile,添加開(kāi)發(fā)板編譯參數(shù)支持。U-Boot
24、 移植的一般步驟二、添加外設(shè)支持添加存儲(chǔ)設(shè)備支持:NANDFLASH啟動(dòng)支持添加網(wǎng)絡(luò)設(shè)備支持DM9000A添加USB接口支持添加文件系統(tǒng)支持U-Boot 移植的一般步驟三、設(shè)置環(huán)境變量U-Boot中提供了豐富的命令,smdk2410開(kāi)發(fā)板配置了一部分命令,我們需要通過(guò)相應(yīng)的環(huán)境變量為自己的開(kāi)發(fā)板增加一些命令: #define CONFIG_CMD_NAND#define CONFIG_CMD_PING#define CONFIG_CMD_DLF#define CONFIG_CMD_ENV#define CONFIG_CMD_NET#define CONFIG_BOOTDELAY 3#defin
25、e CFG_LOAD_ADDR 0 x30008000 #define CFG_TFTP_LOAD_ADDR 0 x30008000 以上環(huán)境變量在開(kāi)發(fā)板的頭文件中定義U-Boot 移植的一般步驟四、編譯U-boot配置開(kāi)發(fā)板:# make uptech_2410class_configConfiguring for uptech_2410class board. 編譯:# make 編譯成功后會(huì)在源碼目錄下生成U-Boot 二進(jìn)制文件u-boot.binU-Boot 移植的一般步驟五、燒寫(xiě)U-boot安裝PC機(jī)端GIVEIO驅(qū)動(dòng),使用并口JTAG連接ARM設(shè)備,利用sjf2410.exe軟件
26、燒寫(xiě)u-boot.bin文件U-Boot 移植的一般步驟U-Boot的使用(1/3)1、printenv 打印環(huán)境變量打印U-Boot的環(huán)境變量,包括串口波特率、ip地址、mac地址、內(nèi)核啟動(dòng)參數(shù)、服務(wù)器ip地址等等。2、setenv 設(shè)置環(huán)境變量對(duì)環(huán)境變量的值進(jìn)行設(shè)置,保存在SDRAM中,但不寫(xiě)入Flash。這樣系統(tǒng)掉電以后設(shè)置的環(huán)境變量就不存在了。3、saveenv 保存環(huán)境變量將環(huán)境變量寫(xiě)入Flash,永久保存。掉電以后不消失。U-Boot 的使用U-Boot的使用(2/3)4、ping 測(cè)試網(wǎng)絡(luò)命令ping命令用于測(cè)試目標(biāo)板的網(wǎng)絡(luò)是否通暢。格式:ping + ipaddr5、tftp 通過(guò)tftp協(xié)議下載文件至SDRAM將tftp服務(wù)器上的文件下載到指定的地址,速度快。格式:tftp + 存放地址 + 文件名6、loadb 通過(guò)串口下載二進(jìn)制文件在目標(biāo)板不具備網(wǎng)絡(luò)功能的時(shí)候,可以配合超級(jí)終端下載二進(jìn)制文件至內(nèi)存中。缺點(diǎn)是速度慢。格式:loadb + 存放地址U-Boot 的使用U-Boot的使用(3/3)7、nandflash
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代農(nóng)技在醫(yī)療保健領(lǐng)域的創(chuàng)新應(yīng)用以煙草種植為例
- 匯報(bào)在項(xiàng)目管理中的重要作用
- 現(xiàn)代市場(chǎng)營(yíng)銷(xiāo)中的網(wǎng)絡(luò)直播工具選擇與應(yīng)用
- 現(xiàn)代商業(yè)項(xiàng)目中的綠色建筑策略
- Unit 3 Transportation Period 1(說(shuō)課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語(yǔ)四年級(jí)上冊(cè)
- 2024-2025學(xué)年高中地理上學(xué)期第十三周 中國(guó)地理分區(qū) 第一節(jié) 北方地區(qū)說(shuō)課稿
- 2024年三年級(jí)品社下冊(cè)《這周我當(dāng)家》說(shuō)課稿 遼師大版
- 5 數(shù)學(xué)廣角 - 鴿巢問(wèn)題(說(shuō)課稿)-2023-2024學(xué)年六年級(jí)下冊(cè)數(shù)學(xué)人教版
- 16 表里的生物(說(shuō)課稿)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)下冊(cè)
- 2023九年級(jí)數(shù)學(xué)下冊(cè) 第24章 圓24.4 直線(xiàn)與圓的位置關(guān)系第2課時(shí) 切線(xiàn)的判定定理說(shuō)課稿 (新版)滬科版
- 2025-2030年中國(guó)納米氧化鋁行業(yè)發(fā)展前景與投資戰(zhàn)略研究報(bào)告新版
- 教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)要點(diǎn)解讀(教育是強(qiáng)國(guó)建設(shè)民族復(fù)興之基)
- 2025年度正規(guī)離婚協(xié)議書(shū)電子版下載服務(wù)
- 2025年貴州蔬菜集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 煤礦安全生產(chǎn)方針及法律法規(guī)課件
- 2025年教科室工作計(jì)劃樣本(四篇)
- 2024年版古董古玩買(mǎi)賣(mài)合同:古玩交易稅費(fèi)及支付規(guī)定
- 幼兒園費(fèi)用報(bào)銷(xiāo)管理制度
- 【7歷期末】安徽省宣城市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試歷史試題
- 進(jìn)入答辯環(huán)節(jié)的高職應(yīng)用技術(shù)推廣中心申報(bào)書(shū)(最終版)
- 三位數(shù)乘一位數(shù)練習(xí)題(精選100道)
評(píng)論
0/150
提交評(píng)論