freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于s3c2440的linux操作系統(tǒng)移植本科畢業(yè)設(shè)計(jì)論文(參考版)

2025-07-06 11:28本頁(yè)面
  

【正文】 第二部分: init()函數(shù)作為核心線程,首先鎖定內(nèi)核,然后調(diào)用do_basic_setup()完成外設(shè)及其驅(qū)動(dòng)程序的加載和初始化。 ? 啟動(dòng) init 過(guò)程(創(chuàng)建第一個(gè)核心線程,調(diào)用 init()函數(shù),元執(zhí)行序列調(diào)用 cpu_idle()等待調(diào)度 init())。 相關(guān) cache 初始化()。 ? 內(nèi)存初始化(設(shè)置內(nèi)存上下頁(yè)和頁(yè)表項(xiàng)初始值, mem_init())。 ? 核心 Cache 初始化(描述 Cache 信息的 Cache, kmem_cache_init())。 ? 時(shí)間、定時(shí)器初始化(包括讀取 CMOS 時(shí)鐘、估測(cè)主頻,初始化定時(shí)器中斷等 time_init())。 ? 核心進(jìn)程調(diào)度器初始化(包括初始化幾個(gè)缺省的 Bottonhalf, sched_int())。 ? 設(shè)置系統(tǒng)自陷入口( rrap_init())。 輸出 Linux 版本信息( printk( linux_banner))設(shè)置與體系結(jié)構(gòu)相關(guān)的環(huán)境( setup_arch())頁(yè)表結(jié)構(gòu)初始化( paging_init())。 第一部分:在主函數(shù)中 startkernel()中調(diào)用了一些列的初始化函數(shù),以完成 kernel 本身的設(shè)置。執(zhí)行命令 make conig 如圖 : 基于 S3C2440 的 Linux 操作系統(tǒng)移植 30 圖 字符配置界面 Xwindows 圖形界面,執(zhí)行命令 make xconfig,圖 : 基于 S3C2440 的 Linux 操作系統(tǒng)移植 31 圖 Xwindows 界面配置單 Ncurses 圖形配置界面,執(zhí)行命令 make menuconfig,如圖 : 圖 Ncurses 配置界面 Linux 內(nèi)核啟動(dòng)過(guò)程 匯編代碼執(zhí)行階段 Linux 內(nèi)核啟動(dòng)后首先執(zhí)行三個(gè)匯編代碼: arch/arm/kernel/ arch/arm/kernel/ arch /arm/mm/ 主要功能是檢查內(nèi)核是否支持當(dāng)前處理器架構(gòu)和開(kāi)發(fā)板、禁止 Cache,使能 MMU、設(shè)置棧指針、調(diào)用 startkernel。 Kconfig中使用三種變量 y、 n、 m分別表示編譯,被編 譯,編譯成模塊。編譯從頂層開(kāi)始遞歸到底層。根據(jù) .config 來(lái)決定使用哪些 Makefile。至于到底進(jìn)入哪些子目錄,取決于內(nèi)核基于 S3C2440 的 Linux 操作系統(tǒng)移植 29 的配置。頂層 Makefile 有兩個(gè)主要的任務(wù):產(chǎn)生 vmlinux 文件和內(nèi)核模塊( module)。頂層 Makefile,是整個(gè)內(nèi)核代碼編譯整個(gè)內(nèi)核配置,編譯的總體文件,各個(gè)目錄下的 Makefile:比如 driver/Makefile,負(fù)責(zé)所在子目錄下源代碼的管理 用戶通過(guò) make menuconfig 配置后,產(chǎn)生了 .config。 內(nèi)核文件類型 Makefile Makefile 的作用是根據(jù)配置的情況,構(gòu)造出需要編譯的源文件列表,然后分別編譯,并把目標(biāo)代碼鏈接在一起,最終形成 Linux 內(nèi)核可執(zhí)行的二進(jìn)制文件。 (7) driver: 包括各種塊設(shè)備與字符設(shè)備的驅(qū)動(dòng)程序。 (6) include 目錄: 包含了所有的 .h 文件。每個(gè)目錄分別對(duì)應(yīng)一種文件系統(tǒng)的實(shí)現(xiàn),公用的用于源程序則用于“虛擬文件系統(tǒng)” vfs。這個(gè)目錄包含 換頁(yè)及內(nèi)存的分配和釋放的函數(shù),還有允許用戶進(jìn)程將內(nèi)存區(qū)間映射到它們的地址空間的各種技術(shù)。包括調(diào)度程序,進(jìn)程控制,模塊化,其它操作。在每個(gè) cpu 的子目錄下,進(jìn)一步又包含 boot, mm, kernel等子目錄,分別包含與系統(tǒng)引導(dǎo),內(nèi)存管理,系統(tǒng)調(diào)用的進(jìn)入與返回,中斷處理以及其它內(nèi)核代碼依賴 cpu 和系統(tǒng)結(jié)構(gòu)的底層代碼。網(wǎng)絡(luò)協(xié)議棧負(fù)責(zé)實(shí)現(xiàn)每種可能的網(wǎng)絡(luò)傳輸協(xié)議( TCP/IP 協(xié)議等);網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)與各種網(wǎng)絡(luò)硬件設(shè)備或虛擬設(shè)備進(jìn)行通信。 (5) 網(wǎng)絡(luò)管理:內(nèi)核支持各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議和網(wǎng)絡(luò)設(shè)備。除了處理器、內(nèi)存等少數(shù)的硬件資源之外任何一種設(shè)備控制操作都由設(shè)備特定的驅(qū)動(dòng)代碼來(lái)進(jìn)行。例如, Linux 支持磁盤的標(biāo)準(zhǔn)文件系統(tǒng) ext3 和虛擬的特殊文件系統(tǒng)。內(nèi)核在非結(jié)構(gòu)化的硬件上建立了一個(gè)結(jié)構(gòu)化的虛擬文件系統(tǒng),隱藏了各種硬件的具體細(xì)節(jié),從而在整個(gè)系統(tǒng)的幾乎所有機(jī)制中使用文件的抽象。硬件有關(guān)部分實(shí)現(xiàn)不同體系結(jié)構(gòu)的內(nèi)存管理相關(guān)功能并為內(nèi)存管理提供與硬件無(wú)關(guān)的虛擬接口。內(nèi)核使得多個(gè)進(jìn)程安全而合理的共享內(nèi)存資源,為每個(gè)進(jìn)程在有限的物理資源上建立一個(gè)虛擬地址空間。內(nèi)核還負(fù)責(zé)實(shí)現(xiàn)不通信同進(jìn)程間和其它部件間的。內(nèi)核負(fù)責(zé)創(chuàng)建和銷毀進(jìn)程,而且由調(diào)度程序采取合適的調(diào)度策略,實(shí)現(xiàn)進(jìn)程間的合理且實(shí)時(shí)的處理器資源的共享。 Linux 內(nèi)核的主要模塊分為以下幾個(gè)部分:儲(chǔ)存管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng)絡(luò)通信、以及 系統(tǒng)的初始化、系統(tǒng)的調(diào)用。但是沒(méi)有軟件來(lái)控制或操作它,自身是不能工作的。一個(gè)計(jì)算機(jī)系統(tǒng)是一個(gè)軟件和硬件的結(jié)合體,它們相互依賴,不可分割。 基于 S3C2440 的 Linux 操作系統(tǒng)移植 26 4 操作系統(tǒng)內(nèi)核的的移植 前幾章我們介紹了 Llinux 系統(tǒng)和 s3c2440 的處理器架構(gòu),對(duì)于軟硬件有了基本了解,并且在上一章介紹了引導(dǎo)操作系統(tǒng)的 uboot,這一章主要工作是linux 內(nèi)核的移植:包括制作最小的系統(tǒng)內(nèi)核以及介紹 yaffs 文件系統(tǒng)并且進(jìn)行簡(jiǎn)單的移植。 (9) 修改 include/configs/ 如下。 (7) 在 board/smdk2440/目錄下加入 NandFlash 讀取函數(shù)。 (5) 修改 board/embedsky/smdk2440 下的 Makefile 文件,將COBJS:= 改為 。 (3) 在 include/configs 目錄下,將 復(fù)制為 。 (1) 在 board 下新建一個(gè)目錄 embedsky,將 sansung/smdk2410 目錄復(fù)制到embedsky 目錄下,并將文件夾改成 smdk2440。我們通過(guò)修改部分文件的內(nèi)容,來(lái)配置符合自己開(kāi)發(fā)板的 uboot。 ? tools:用于創(chuàng)建 uboot bin 文件的工具。 ? :各種網(wǎng)絡(luò)協(xié)議。 ? include:系統(tǒng)的頭文件。 ? drivers: uboot 所支持的相關(guān)硬件的驅(qū)動(dòng)程序。 ? cpu:特定 cpu 架構(gòu)的相關(guān)目錄。 ? board:開(kāi)發(fā)板相關(guān)的目錄,每種處理器都有對(duì)應(yīng)的子目錄。如圖 : 基于 S3C2440 的 Linux 操作系統(tǒng)移植 24 圖 顯示版本信息 (5) 如圖所示安裝成功。 (4) 查看交叉編譯器版本。 (3) 使環(huán)境變量生效。 (2) 添加交叉編譯器的環(huán)境變量。本課題使用 的交叉編譯器,使用的 Uboot 的版本基于 S3C2440 的 Linux 操作系統(tǒng)移植 23 為 ,開(kāi)發(fā)板使用 S3C2440 中的 如下 : (1) 命令 :cd /opt 使用解壓命令: tar xvfj /mnt/hgfs/Linux/ –C / 如圖 : 圖 解壓后 總共解壓出來(lái) 的編譯器, 的編譯器和制作文件系統(tǒng)的mkyaffsimage 等工具。 (4) BLOB:基于 LART硬件平臺(tái)的,目前只支持 INTEL的 Strong ARM和 XScale結(jié)構(gòu)的 ARM 芯片。 (2) VIVI:由韓國(guó) MIZI 公司開(kāi)發(fā)的專門用于 SAMSUNG ARM 架構(gòu)開(kāi)發(fā)的一種Bootloader。 ? 為內(nèi)核設(shè)置啟動(dòng)參數(shù)。 ? 檢查系統(tǒng)的內(nèi)存映射 (menmory map)。 ( 2) Bootloader 第二階段的功能。這些并不都是必須的,比如S3C2410/S3C2440 的開(kāi)發(fā)板所使用的 UBoot 中,就將 CPU 的速度和時(shí)鐘的設(shè)置放在第二階段。 ? 跳轉(zhuǎn)到第二階段代碼 C 入口點(diǎn)。 基于 S3C2440 的 Linux 操作系統(tǒng)移植 22 ? 復(fù)制 Bootloader 的第二階段代碼到 RAM 空間。 ? 硬件設(shè)備初始化。一般而言,這兩個(gè)階段完成的功能可以如下分類。而 Nand Flash 并不支持 XIP,所以想執(zhí)行 Nand Flash 上的代碼必須先拷貝到 RAM 中去,然后跳到 RAM 中執(zhí)行。嵌入式系統(tǒng)中廣泛 采取的非易失存儲(chǔ)器通常是Flash,而 Flash 又分為 Nor Flash 和 Nand Flash 兩種。所以系統(tǒng)上電或復(fù)位后執(zhí)行 的第一段程序便是 Bootloader。最終 Bootloader 把操作系統(tǒng)內(nèi)核影響加載到 RAM 中并將控制權(quán)交給它。 簡(jiǎn)單的說(shuō) Bootloader 就是操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序。 基于 S3C2440 的 Linux 操作系統(tǒng)移植 21 3 Bootloader 原理分析和移植 前面介紹了有關(guān)軟件硬件方面的基礎(chǔ)知識(shí),下面幾章將進(jìn)行正式的移植,Bootloader 是操作系統(tǒng)運(yùn)行前首先運(yùn)行的一段代碼,本章將介紹 Bootloader 的原理、啟動(dòng)過(guò)程以及移植過(guò)程。 寫之前必須進(jìn)行擦除操作。 讀操作,一次讀一個(gè)扇區(qū)( 512 字節(jié))。地址范圍: 0x300000000x31000000 程序代碼區(qū),文字常量區(qū) 0x33ff00000x33ff4800 堆區(qū) 0x33ff48000x33ff8000 棧區(qū) 0x33fffff000x34000000 偏移中斷向兩邊 基于 S3C2440 的 Linux 操作系統(tǒng)移植 20 有專門的時(shí)序控制總線,不占用系統(tǒng)總線資源。 寫入、擦除速度慢,讀取速度較快,單位密度低、成本較高。 (1) NOR FLASH 大小: 2M,數(shù)據(jù)長(zhǎng)度: 16bit,連接在 nGCS6 上,它的特點(diǎn)是 : 線性尋址 可按地址直接進(jìn)行讀寫操作。低功耗等特點(diǎn),被廣泛應(yīng)用于手機(jī)、 MP數(shù)碼相機(jī),筆記本電腦等數(shù)據(jù)存儲(chǔ)設(shè)備中。 TQ2440 開(kāi)發(fā)板使用的是型號(hào): K4S561632 的 SDRAM,連接在 BANK6,片選信號(hào) nGCS6,地址范圍是: 0x300000000x33FFFFFF。 (5) 支持大小端(軟件選擇)。 (3) 所有存儲(chǔ)器 bank 的訪問(wèn)周期都是可編程的。如圖 : 圖 內(nèi) 存分布圖 (1) bank0 可以作為引導(dǎo) ROM,其數(shù)據(jù)線寬只能是 16 位和 32 位,其它存儲(chǔ)器的數(shù)據(jù)線寬可以是 8 位、 16 位和 32 位,一般將 Nor Flash 接在 bank0 上。 基于 S3C2440 的 Linux 操作系統(tǒng)移植 18 S3C2440 的存儲(chǔ)器提供了訪問(wèn)外部存儲(chǔ)器的所有控制信號(hào), 27 位的地址信號(hào)、 32 位數(shù)據(jù)信號(hào)、 8 個(gè)片選信號(hào)、以及讀寫控制信號(hào)等。 ? CMOS 攝像頭接口。 ? 電源系統(tǒng): 供電電壓, , 電。 ? 有 LCD 控制器,支持 4K 色的 STN 和 256K 的 TFT,配置有 DMA 通道 ? 具有 PLL 功能的時(shí)鐘發(fā)生器,時(shí)鐘頻率高達(dá) 533MHz。 ? WhathDog。 ? 具有 130 個(gè)通用 I/O 口和 24 通道的外部中斷源。 ? 1 個(gè) 16 位內(nèi)部定時(shí)器和有 4 個(gè)具有 PWM 功能的 16 位定時(shí)器。 ? 具有 2 通道的 SPI,1 個(gè)通道的 IIC 串行總線和 1 個(gè)通道的 IIS 音頻總線接口 。 ? 4 通道的 DMA,并且有外部請(qǐng)求引腳。 ? 外部?jī)?chǔ)存器控制器、可擴(kuò)展 8組,每組 128MB,總?cè)萘窟_(dá) 1GB。 s3c2440 主要特性 S3C2440 是韓國(guó)三星公司推出的 16/32 位 RISC 微控制器,其 處理器 采用的是 ARM920T 內(nèi)核, 可以接豐富的片內(nèi)外設(shè) ,為 PDA 和其它 智能 應(yīng)用,提供了低基于 S3C2440 的 Linux 操作系統(tǒng)移植 17 功耗、低價(jià)格、高性能微控制器的解決方案。 CortexA8 是有史以來(lái) ARM 開(kāi)發(fā)的性能最高、最具功率的處理器。超低門數(shù)還使其能夠用于模擬信號(hào)設(shè)備和混合信號(hào)設(shè)備及 MCU 應(yīng)用中,可望節(jié)約成本。 CortexM3 處理器結(jié)合了執(zhí)行 Thumb2 指令的 32 位哈佛微體系結(jié)構(gòu)和系統(tǒng)外設(shè)?;?v7A 架構(gòu)的稱為“ CortexA 系列”,基于 v7R 架構(gòu)的稱為“ CortexR 系列”,基于 v7M架構(gòu)的稱為“ CortexM 系列”。 ARMv6 指令包含了對(duì) 媒體處理的單指令流多數(shù)據(jù)流擴(kuò)展,采用特殊的設(shè)計(jì)改善視頻處理能力。 ARM11 處理器 ARM1136JS 是第一個(gè)執(zhí)行 ARMv6 結(jié)構(gòu)指令的處理器。 ARM926EJS 是第一個(gè)包含 Jazelle技術(shù),可加速 Java 字節(jié)碼執(zhí)行的 ARM 處理器內(nèi)核。 ARM9E 系列的 ARM926EJS 內(nèi)核為可綜合的處理器。 TCM 和 Cache 的大小可配置。當(dāng)調(diào)試對(duì)時(shí)間敏感的程序段時(shí),這種方法很重要。兩者都執(zhí)行 V5TE 架構(gòu)指令。ARM940T包含一個(gè)更小 的數(shù)據(jù)指令 Cache和一個(gè) 作系統(tǒng)的應(yīng)用而設(shè)計(jì)的。 ARM9 系列的第一個(gè)處理器是 ARM920T,它包括獨(dú)立的數(shù)據(jù)指令Cache 和 MMU。包括 ARM7TDMI
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1