天祥ARM9視頻TX2440A全部第三部分,共四個(gè)部分課件_第1頁(yè)
天祥ARM9視頻TX2440A全部第三部分,共四個(gè)部分課件_第2頁(yè)
天祥ARM9視頻TX2440A全部第三部分,共四個(gè)部分課件_第3頁(yè)
天祥ARM9視頻TX2440A全部第三部分,共四個(gè)部分課件_第4頁(yè)
天祥ARM9視頻TX2440A全部第三部分,共四個(gè)部分課件_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第五部分嵌入式系統(tǒng)移植----BootloaderTX-2440A

嵌入式視頻教程更多資料請(qǐng)登錄

出品:天祥電子網(wǎng)址:第十三講bootloader原理和vivi的移植第十三講bootloader原理和vivi的移植1.Bootloader概述2.vivi的啟動(dòng)過程分析3.vivi的配置移植4.vivi命令詳解Bootloader

概述簡(jiǎn)單地說,Bootloader就是在操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立系統(tǒng)的內(nèi)存空間映射圖,從而將系統(tǒng)的軟件硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。最終,Bootloader把操作系統(tǒng)內(nèi)核映像加載到RAM中,并將系統(tǒng)控制權(quán)交給它Bootloader

概述Bootloader的操作模式

大多數(shù)Bootloader都包含兩種不同的操作模式,即啟動(dòng)加載模式和下載模式,二者的區(qū)別僅對(duì)開發(fā)人員才有意義,從最終用戶的角度看,Bootloader的作用就是加載操作系統(tǒng)。常用的bootloaderU-BootU-Boot(UniversalBootLoader)是德國(guó)DENX小組開發(fā)的用于多種嵌入式CPU的BootLoader程序,它可以運(yùn)行于PowerPC、ARM、MIPS等多種嵌入式開發(fā)板上。vivivivi是由韓國(guó)MIZI公司開發(fā)的專門用于SAMSUNGARM架構(gòu)的一種Bootloadervivi的啟動(dòng)過程分析Bootloader的啟動(dòng)過程大多是分兩個(gè)階段,即stage1和stage2。依賴CPU體系結(jié)構(gòu)的代碼通常放在stage1中,而且通常用匯編語(yǔ)言實(shí)現(xiàn)。stage2中的代碼通常用C語(yǔ)言實(shí)現(xiàn),這樣可以實(shí)現(xiàn)更復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和可移植性。vivi的啟動(dòng)過程分析Bootloader的stage1通常包括以下步驟:1、硬件設(shè)備初始化2、為加載stage2準(zhǔn)備RAM空間3、復(fù)制stage2到RAM空間4、設(shè)置好堆棧5、跳轉(zhuǎn)到stage2的C入口點(diǎn)vivi的啟動(dòng)過程分析Bootloader的stage2通常包括以下步驟:1、初始化本階段要用到的硬件設(shè)備2、檢測(cè)系統(tǒng)內(nèi)存映射3、將kernel映像和根文件系統(tǒng)映像從Flash上讀到RAM空間4、為內(nèi)核設(shè)置啟動(dòng)參數(shù)5、調(diào)用內(nèi)核

出品:天祥電子網(wǎng)址:第十四講U-Boot原理分析和移植1.U-Boot簡(jiǎn)介2.U-Boot源碼目錄結(jié)構(gòu)3.U-Boot運(yùn)行代碼分析4.U-Boot在TX2440A開發(fā)板上移植5.U-Boot常用命令講解第十四講U-Boot原理分析和移植U-Boot簡(jiǎn)介UBoot是德國(guó)DENX小組的開發(fā)用于多種嵌入式CPU的bootloader程序,UBoot不僅僅支持嵌入式Linux系統(tǒng)的引導(dǎo),當(dāng)前,它還支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS嵌入式操作系統(tǒng)。UBoot除了支持PowerPC系列的處理器外,還能支持MIPS、x86、ARM、NIOS、XScale等諸多常用系列的處理器。uboot下載地址:

U-Boot源碼目錄結(jié)構(gòu)7.include:頭文件和開發(fā)板配置文件,configs目錄下是開發(fā)板的配置文件8.lib_xxxx:與體系結(jié)構(gòu)相關(guān)的庫(kù)文件。如與ARM相關(guān)的庫(kù)放在lib_arm中。

9.lib_generic:通用的庫(kù)函數(shù)10.net:各種網(wǎng)絡(luò)協(xié)議,TFTP協(xié)議、NFS協(xié)議等。

11.tools:uboot自帶的工具U-Boot第一階段啟動(dòng)過程cpu/arm920t/start.s完成硬件初始化設(shè)置CPU工作模式關(guān)看門狗設(shè)置系統(tǒng)時(shí)鐘關(guān)MMU,CACHE為第二階段準(zhǔn)備RAM空間(調(diào)用board/smdk2410/lowlevel_init.s)設(shè)置堆棧跳轉(zhuǎn)到第二階段代碼的C入口點(diǎn)(lib_arm/board.cstart_armboot())U-Boot第二階段啟動(dòng)過程第二階段代碼:lib_arm/board.c中的start_armboot函數(shù)init_sequence:初始化CPU,設(shè)置系統(tǒng)時(shí)鐘,初始化定時(shí)器,初始化環(huán)境參數(shù),初始化串口控制臺(tái),檢測(cè)內(nèi)存映射flash_init:初始化NORFLASHenv_relocate:初始化環(huán)境變量初始化系統(tǒng)外圍設(shè)備最后調(diào)用main_loop(command/main.c)

出品:天祥電子網(wǎng)址:第十五講Linux內(nèi)核分析和配置1.內(nèi)核源碼目錄結(jié)構(gòu)分析2.Makefile,Kconfig文件分析3.Linux啟動(dòng)過程分析4.配置、編譯內(nèi)核第十五講Linux內(nèi)核分析和配置Linux內(nèi)核的發(fā)展Linux內(nèi)核的最初版本由LinusTorvalds在1991年發(fā)布Linux1.01994年3月僅支持386Linux1.21995年3月多平臺(tái)支持Linux2.01996年6月支持SMPLinux2.21999年1月支持更多的硬件Linux2.42001年1月支持桌面系統(tǒng)和USBLinux2.62003年12月支持更多平臺(tái),使用新的調(diào)度器,內(nèi)核可被搶占,模塊子系統(tǒng)和文件系統(tǒng)做了大量改進(jìn),支持更多的硬件驅(qū)動(dòng)。Linux內(nèi)核的版本目前TX2440A開發(fā)板上使用的內(nèi)核版本:2.6.31在內(nèi)核源碼頂層目錄下Makefile中查看版本號(hào):VERSION=2主版本號(hào)PATCHLEVEL=6主版本號(hào)SUBLEVEL=31次版本號(hào)EXTRAVERSION=擴(kuò)展版本號(hào)內(nèi)核源碼目錄結(jié)構(gòu)分析arch與體系結(jié)構(gòu)相關(guān)的代碼。對(duì)應(yīng)于每個(gè)支持的體系結(jié)構(gòu),有一個(gè)相應(yīng)的子目錄如x86、arm等,每個(gè)體系結(jié)構(gòu)子目錄下包含幾個(gè)主要子目錄:.boot啟動(dòng)內(nèi)核所需的平臺(tái)特有代碼.kernel體系結(jié)構(gòu)特有特征(如SMP)的實(shí)現(xiàn).mm 與體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼.lib 與體系結(jié)構(gòu)相關(guān)的通用函數(shù)的實(shí)現(xiàn)內(nèi)核源碼目錄結(jié)構(gòu)分析drivers所有設(shè)備驅(qū)動(dòng)程序代碼,它占整個(gè)內(nèi)核代碼量一半以上,每一個(gè)子目錄對(duì)應(yīng)一類驅(qū)動(dòng)程序。fs文件系統(tǒng)代碼,每個(gè)支持的文件系統(tǒng)有相應(yīng)的子目錄,如cramfs,yaffs,jffs2等include

包括編譯內(nèi)核所需的大部分頭文件,與平臺(tái)無關(guān)的頭文件放在include/linux子目錄下,平臺(tái)相關(guān)的頭文件如include/asm-arm內(nèi)核配置系統(tǒng)的基本結(jié)構(gòu)Makefile:分布在Linux內(nèi)核源碼中的Makefile定義了Linux內(nèi)核編譯的規(guī)則;配置工具:makeconfig字符界面makemenuconfigNcurses圖形界面makexconfigXwindows圖形界面配置文件:

.config:在配置內(nèi)核時(shí)生成,根據(jù).config來決定使用哪些MakefileMakefile文件分析Makefile的作用:決定編譯哪些文件

怎樣編譯這些文件按什么順序連接這些文件Kconfig文件分析變量:

bool兩種取值:y、ntristate三種取值:y、n、mstring字符串hex十六進(jìn)制數(shù)據(jù)int十進(jìn)制數(shù)據(jù)Kconfig文件分析menuconfig:用于生成菜單config:

生成配置選項(xiàng)dependon依賴關(guān)系default默認(rèn)值select自動(dòng)選擇source讀入另一個(gè)Kconfig文件help幫助信息Linux的啟動(dòng)過程第一階段:

arch/arm/kernel/head.S arch/arm/kernel/head-common.S arch/arm/mm/proc-arm920.S

檢查內(nèi)核是否支持當(dāng)前處理器架構(gòu)和開發(fā)板,禁止Cache,使能MMU,設(shè)置棧指針,調(diào)用start_kernelLinux的啟動(dòng)過程第二階段:

init/main.cstart_kernel

完成內(nèi)核初始化全部工作,最后調(diào)用rest_init函數(shù)啟動(dòng)init進(jìn)程Linux的啟動(dòng)過程內(nèi)核文件:

vmlinux

編譯出來的最原始的內(nèi)核文件,未壓縮zImage是vmlinux經(jīng)過gzip壓縮后的文件

uImageU-boot專用的映像文件,由bootm命令啟動(dòng)

準(zhǔn)備移植修改Makefile:ARCH?=armCROSS_COMPILE?=arm-linux-修改時(shí)鐘arch/arm/mach-s3c2440/mach-smdk2440.c修改機(jī)器碼

內(nèi)核中:arch/arm/tools/mach-types

uboot中:include/asm-arm/mach-types.h載入配置文件

arch/arm/configs/s3c2410_defconfig選擇CPU類型SMDK2440編譯內(nèi)核鏡像

makezImage第六部分嵌入式系統(tǒng)移植----Linux內(nèi)核TX-2440A

嵌入式視頻教程

出品:天祥電子網(wǎng)址:第十六講向內(nèi)核中加入驅(qū)動(dòng)1.支持NAND和yaffs2,掛載文件系統(tǒng)2.基本外圍設(shè)備的配置(LCD、觸摸屏、網(wǎng)卡、聲卡,SD卡、USB設(shè)備、攝像頭)3.向內(nèi)核中加入驅(qū)動(dòng)模塊(LED、按鍵、蜂鳴器、AD、DS18B20)第十六講向內(nèi)核中加入驅(qū)動(dòng)第七部分嵌入式系統(tǒng)移植----構(gòu)建根文件系統(tǒng)TX-2440A

嵌入式視頻教程

出品:天祥電子網(wǎng)址:第十七講用busybox制作根文件系統(tǒng)嵌入式文件系統(tǒng)介紹Linux目錄結(jié)構(gòu)詳解配置,編譯busybox完善根文件系統(tǒng)制作yaffs2鏡像第十七講用busybox制作根文件系統(tǒng)嵌入式文件系統(tǒng)介紹文件系統(tǒng)是操作系統(tǒng)的重要組成部分,所謂文件系統(tǒng)是指操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件機(jī)構(gòu)。Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對(duì)各類文件系統(tǒng)進(jìn)行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(Virtual),為各類文件系統(tǒng)提供一個(gè)統(tǒng)一的操作界面和應(yīng)用編程接口。嵌入式文件系統(tǒng)介紹Linux啟動(dòng)時(shí),第一個(gè)必須掛載的是根文件系統(tǒng);若系統(tǒng)不能從指定設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會(huì)出錯(cuò)而退出啟動(dòng)。之后可以自動(dòng)或手動(dòng)掛載其他的文件系統(tǒng)。因此,一個(gè)系統(tǒng)中可以同時(shí)存在不同的文件系統(tǒng)。不同的文件系統(tǒng)類型有不同的特點(diǎn),因而根據(jù)存儲(chǔ)設(shè)備的硬件特性、系統(tǒng)需求等有不同的應(yīng)用場(chǎng)合。在嵌入式Linux應(yīng)用中,主要的存儲(chǔ)設(shè)備為RAM(DRAM,SDRAM)和ROM(常采用FLASH存儲(chǔ)器),常用的基于存儲(chǔ)設(shè)備的文件系統(tǒng)類型包括:jffs2,yaffs,cramfs,romfs,ramdisk,ramfs/tmpfs等。Cramfs文件系統(tǒng)CRAMFS文件系統(tǒng)是由LinuxTorvalds編寫的專門針對(duì)閃存設(shè)計(jì)的只讀壓縮文件系統(tǒng)。與RAMdisk方式不同,CRAMFS文件系統(tǒng)不需要一次性地將文件系統(tǒng)中的所有內(nèi)容都解壓到內(nèi)存中,而只是在系統(tǒng)需要訪問某個(gè)數(shù)據(jù)時(shí),馬上計(jì)算出該數(shù)據(jù)在CRAMFS中的位置,將其實(shí)時(shí)的解壓到內(nèi)存之中,然后通過對(duì)內(nèi)存的訪問來獲取文件系統(tǒng)中需要讀取的數(shù)據(jù)。Jffs/Jffs2文件系統(tǒng)

jffs文件系統(tǒng)是瑞典的Axis通信公司為嵌入式開發(fā)的日志文件系統(tǒng)。

jffs是針對(duì)以閃存為存儲(chǔ)介質(zhì)的嵌入式系統(tǒng),充分的考慮了閃存的物理局限性,使用了盡可能高效的日志系統(tǒng)

所謂日志文件系統(tǒng),其工作原理是跟蹤記錄文件系統(tǒng)的變化,并將變化內(nèi)容記錄入日志,并保存在磁盤分區(qū)。寫操作中斷,系統(tǒng)重啟時(shí),會(huì)根據(jù)日志記錄來恢復(fù)中斷前的寫操作jffs2是RedHat公司基于jffs開發(fā)的閃存文件系統(tǒng),主要針對(duì)ECos,也可以用于LINUX。提高了對(duì)閃存的利用率,降低了內(nèi)存的損耗Yaffs/Yaffs2文件系統(tǒng)YAFFS文件系統(tǒng)是一種和JFFS2類似的Flash文件系統(tǒng),和JFFS2相比,它減少了一些功能,因此速度更快,占用內(nèi)存更少。此外YAFFS自帶NAND芯片驅(qū)動(dòng),并為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API,用戶可以不使用Linux中的MTD和VFS,直接對(duì)文件進(jìn)行操作。在嵌入式系統(tǒng)設(shè)計(jì)中,NANDFlash大多使用YAFFS文件系統(tǒng),而NORFlash多使用JFFS2文件系統(tǒng)。

YAFFS1只支持小頁(yè)(512b)NAND,YAFFS2兼容YAFFS1,并支持大頁(yè)(2K或更高)NANDLinux文件系統(tǒng)目錄結(jié)構(gòu)/bin

所有用戶都可以使用的基本命令/sbin

只有管理員能夠使用的命令(系統(tǒng)命令)/dev

設(shè)備文件(對(duì)應(yīng)具體硬件設(shè)備)/etc

配置文件/lib

共享庫(kù)和驅(qū)動(dòng)模塊/home

用戶目錄/root

根用戶(root)目錄/varlog文件,臨時(shí)文件/proc

作為proc文件系統(tǒng)的掛載點(diǎn)/mnt

臨時(shí)掛載某個(gè)文件系統(tǒng)的掛載點(diǎn)/tmp

臨時(shí)文件Linux文件系統(tǒng)目錄結(jié)構(gòu)/usr

系統(tǒng)中所有的應(yīng)用程序和文件/usr/bin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論