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

正文內(nèi)容

_基于s3c2440的嵌入式linux操作系統(tǒng)內(nèi)核研究-在線瀏覽

2024-10-22 14:59本頁面
  

【正文】 .............................................. 29 致 謝 ........................................................................................................................................... 30 1 第一章 前言 嵌入式系統(tǒng)簡介 根據(jù) IEEE 的定義,嵌入式系統(tǒng)是控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置。嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,具有很強(qiáng)專用性,必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的裁減利用。 嵌入式系統(tǒng) 有以下一些 特點(diǎn) : 。比如 Enea 公司的 OSE 分布式系統(tǒng),內(nèi)核只有 5K。嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件 4 種嵌入式操作系統(tǒng)的調(diào)度機(jī)制 和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。 。 。 ,就必須使用多任務(wù)的操作系統(tǒng)。 。開發(fā)時(shí)往往有主機(jī)和目標(biāo)機(jī)的概念,主機(jī)用于程 2 序的開發(fā),目標(biāo)機(jī)作為最后的執(zhí)行機(jī),開發(fā)時(shí)需要交替結(jié)合進(jìn)行 [23]。 EOS 負(fù)責(zé)嵌入系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動(dòng)。目前,已推出一些應(yīng)用比較成功的 EOS產(chǎn)品系列。 嵌入式 Linux 操作系統(tǒng) 是指對(duì) Linux 經(jīng)過小型化裁剪后,能夠固化在容量只有幾十萬字節(jié)或幾十億字節(jié)的存儲(chǔ)器芯片或單片機(jī)中,應(yīng)用于特定嵌入式場合的專用 Linux操作系統(tǒng)。 本課題選擇了嵌入式 Linux 操作系統(tǒng)作為研究對(duì)象,移植內(nèi)核并下載運(yùn)行。 3 第二章 開發(fā)環(huán)境 搭建 硬件平臺(tái) GT2440 是一 款具有 極高性 價(jià)比的嵌入 式開發(fā)系統(tǒng), 采用高主頻 高性能 的SamsungS3C2440A 處理器作為主控芯片,專業(yè)的電路設(shè)計(jì),優(yōu)秀的 LAYOUT,采用高品質(zhì)的 PCB 板材和元器件,使其具備優(yōu)越的穩(wěn)定性; GT2440 開發(fā)板總體結(jié)構(gòu)如圖 1 所示。在此兩種啟動(dòng)模式下,各個(gè)片選的存儲(chǔ)空間分配是不同的,如 圖 2 所示 。 在進(jìn)行器件地址說明之前,有一點(diǎn)需要注意, nGCS0片選的空間在不同 的啟動(dòng)模式下,映射的器件是不一樣的。 SDRAM 地址空間: 0x30000000~0x34000000[5]。所 以,在進(jìn)行嵌入式開發(fā)時(shí),往往采用交叉編譯的方式。 交叉編譯環(huán)境的建立 Windows 中安裝虛擬機(jī), 虛擬機(jī)版本為 Vmware Workstation 。 Linux 操作系統(tǒng) 中安裝安裝交叉編譯器 armlinuxgcc。 然后輸入 : armlinuxgcc –v 出現(xiàn)如圖 3 所示的信息, 說明 交叉編譯環(huán)境搭建成功 。 8 第三章 嵌入式 Linux 內(nèi) 核 移植 實(shí)現(xiàn) 嵌入式 Linux 內(nèi)核概述 Linux 是最受歡迎的自由電腦 操作系統(tǒng) 內(nèi)核。 Linux 最早是由 芬蘭 黑客 Linus Torvalds 為嘗試在英特爾 x86架構(gòu)上提供自由免費(fèi)的類 Unix 操作 系統(tǒng)而開發(fā)的。 內(nèi)核指的是一個(gè)提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一套基于 Linux 內(nèi)核的完整操作系統(tǒng)叫作Linux 操作系統(tǒng)。 CPU 是計(jì)算機(jī)系統(tǒng)中最核心的資源,調(diào)度程序負(fù)責(zé)在可運(yùn)行進(jìn)程中公平地選擇,使其中之一成為運(yùn)行進(jìn)程,從而充分利用CPU 的資源。 : 標(biāo)準(zhǔn) Linux 的內(nèi)存管理支持虛擬內(nèi)存,進(jìn)程的代碼、數(shù)據(jù)和堆棧的總量可以超過實(shí)際內(nèi)存的大小。 : 隱藏了不同硬件的具體細(xì)節(jié),為所有設(shè)備提供 統(tǒng)一的接口。邏輯文件系統(tǒng)指 Linux 支持的文件系統(tǒng),如 etx jffs 和 nfs 等 。 : 負(fù)責(zé)支持標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議和各種網(wǎng)絡(luò)硬件設(shè)備。而設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)對(duì)網(wǎng)絡(luò)硬件進(jìn)行具體操作。其通信手段主要有 :信號(hào)、文件鎖、管道、等待隊(duì)列、信號(hào)量、消息隊(duì)列、共享內(nèi)存和 套接字。 9 圖 4 Linux 內(nèi)核系統(tǒng)模塊結(jié)構(gòu)及相互依賴關(guān)系 由 上圖 可以看出,所有的模塊都與進(jìn)程調(diào) 度模塊存在依賴關(guān)系。通常,一個(gè)模塊會(huì)在等待硬件操作期間被掛起,而在操作完成后才可繼續(xù)運(yùn)行。另外 3 個(gè)模塊也是由于類似的原因而與進(jìn)程調(diào)度模塊存在依賴關(guān)系。進(jìn)程調(diào)度子系統(tǒng)需要使用內(nèi)存管理來調(diào)整 特定進(jìn)程所使用的物理內(nèi)存空間。這種通信機(jī)制允許兩個(gè)進(jìn)程訪問內(nèi)存的同一區(qū)域以進(jìn)行進(jìn)程間信息的交換。而內(nèi)存管理子系統(tǒng)也會(huì)使用文件系統(tǒng)來支持內(nèi)存數(shù)據(jù)塊的交換操作 [8]。 : 所有與體系結(jié)構(gòu)相關(guān)的代碼都在這個(gè)目錄以及 include/asm*/目錄中, Linux支持的每種體系結(jié)構(gòu)在 arch 目錄下都有對(duì)應(yīng)的子目。 :虛擬文件系統(tǒng) (VFS, Virtual File System)的代碼,和各個(gè)不同文件系統(tǒng)的代碼都在這個(gè)目錄中。 :這個(gè)目錄包含了內(nèi)核中大部分的頭文件,它們按照下面的 子目錄進(jìn)行分組。 內(nèi)存管理 進(jìn)程調(diào)度 網(wǎng)絡(luò)接口 進(jìn)程間 通信 文件系統(tǒng) 虛擬文件系統(tǒng) 10 :內(nèi)核的初始化代碼。 :即進(jìn)程間通信 (interprocess munication)。 :內(nèi)核中最核心部分,包括進(jìn)程的調(diào)度 (kernel/),以及進(jìn)程的創(chuàng)建和撤銷 (kernel/ 和 kernel/) 等,和平臺(tái)相關(guān)的另 外一部分核心的代碼在arch/*/kernel 目錄。與 arch/lib 下的代碼不同,這里的庫代碼都是使用 C 編寫的,在內(nèi)核新的移植版本中可以直接使用。 :網(wǎng)絡(luò)相關(guān)代碼,實(shí)現(xiàn)了各種常見的網(wǎng)絡(luò)協(xié)議,如 TCP/IP、 IPX 等。當(dāng)運(yùn)行make menuconfig 或者 make xconfig 之類的命令配置內(nèi)核時(shí),用戶就是和位于這個(gè)目錄下的腳本進(jìn)行交互的。最初 block 層的代碼一部分位于 drivers 目錄,一部分位于 fs 目錄,從 開始, block 層的核心代碼被提取出來放在了頂層的 block 目錄。 :這 個(gè) 目 錄 包 括 了 不 同 的 Linux 安 全 模 型 的 代 碼 , 比 如 NSA SecurityEnhanced Linux。 :實(shí)現(xiàn)了用于打包和壓縮的的 cpio 等 [9]。需要 windows 和 Linux 之間共享文件 ,實(shí)現(xiàn)如下: 11 (1)安裝 smb 服務(wù)器 。 (3)在 win7 中創(chuàng)建一個(gè)虛擬網(wǎng)卡,設(shè)置 虛擬網(wǎng)卡的靜態(tài) ip 地址,例如: 。sub 的 ip: 。 (6)啟動(dòng) smb 服務(wù)器: service smb start。 , 從官網(wǎng) 下載 , 本課題 用的是 版本的內(nèi)核,即文件 。 arm,交叉編譯器為 linux 修改 下的 Makefile: 183 行: linux ARCH ?=arm 184 行: CROSS_COMPILE ?=armlinux 修改 Makefile 權(quán)限為可寫可執(zhí)行,保存。 make menuconfig 進(jìn)入 Load an Alternate Configuration File 輸入 2440 的默認(rèn)配置文件: arch/arm/configs/s3c2410_defconfig 在 System Type 下, s3c24XX Machine 那部分,只選中 : SMDK2410/A9M2410 SMDK2440 SMDK2440 with S3C2440 cpu moudle 進(jìn)入 Kernel Features 選擇 Use the ARM EABI to pile the kernel 和 Allow old ABI binaries to run with this kernel 保存配置文件改名為: .config 并退出 [10]。 CS8900A 網(wǎng)卡驅(qū)動(dòng)移植 CS8900A 工作流程圖如圖 5 所示。 修改 drivers//,指定 CS8900A 使用的資源: elif defined(CONFIG_ARCH_S3C2410) include asm/ include mach/ define S3C24XX_PA_CS8900 0x19000000 static unsigned int card_portlist[] __initdata ={0,0}。 然后修改入口函數(shù) cs89x0_probe: if defined(CONFIG_ARCH_S3C2410) unsigned int oldval_bwscon。 endif if defined(CONFIG_ARCH_S3C2410) //設(shè)置 MAC,總線寬度等 if(card_portlist[0]) return ENODEV。 devdev_addr[0] = 0x08。 devdev_addr[2] = 0x89。 devdev_addr[4] = 0x89。 oldval_bwscon = *((volatile unsigned int *)S3C2410_BWSCON)。 ~(312)) | S3C2410_BWSCON_DW3_16 | S3C2410_BWSCON_WS3 | S3C2410_BWSCON_ST3。 *((volatile unsigned int *)S3C2410_BANKCON3) = 0x1f7c。 card_portlist[0] = 0。 *((volatile unsigned int *)S3C2410_BANKCON3) = oldval_bankcon3。 注冊(cè)中斷處理程序,指定中斷觸發(fā)方式,修改 _open 函數(shù): if 0 writereg(dev, PP_BusCTL, ENABLE_IRQ | MEMORY_ON)。 if defined(CONFIG_ARCH_S3C2410) ret = request_irq(devirq, amp。 else ret = request_irq(devirq, amp。 endif 在 drivers// 中適當(dāng)?shù)奈恢眉由?CONFIG_ARCH_S3C2410 宏編譯開關(guān) , 14 可以參考: CONFIG_ARCH_PNX010X: _open(struct _device *dev) { struct _local *lp = dev_priv(dev)。 int i。 if !defined(CONFIG_MACH_IXDP2351) amp。 !defined(CONFIG_ARCH_IXDP2X01) amp。 !defined(CONFIG_ARCH_PNX010X) amp。 !defined(CONFIG_ARCH_S3C2410) if (((1 irq) amp。 ret = EAGAIN。 } endif if defined(CONFIG_ARCH_PNX010X) || defined(CONFIG_ARCH_S3C2410) result = A_CNF_10B_T。amp。 最后配置 CS8900A 網(wǎng)卡,在內(nèi)核目錄下執(zhí)行 make menuconfig 后,選中: Device Drivers [*] Network device support [*]Ether (10 or 100Mbit) DM9000support *CS89x0 support UDA1341 聲卡驅(qū)動(dòng)移植 UDA1341 工作流程如圖 6 所示。s3c_device_uda1341, 在 arch/arm/plats3c24xx/ 添加: include mach/ include sound/ static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = { 16 .l3_clk = S3C2410_GPB4, .l3_data = S3C2410_GPB3, .l3_mode = S3C2410_GPB2, .model = UDA134X_UDA1341, }。s3c24xx_uda134x_data, } }。 在 arch/arm/plats3c/include/plat/ 添加 extern struct platform_device s3c_device_uda1341。 配置內(nèi)核,支持 UDA1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1