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

正文內(nèi)容

基于arm的嵌入式linux內(nèi)核的研究與移植畢業(yè)論文-在線瀏覽

2025-05-01 08:33本頁(yè)面
  

【正文】 SDRAM 的情況,以盡可能相一致為原則,先找出一個(gè)與所移植目標(biāo)板為同一個(gè)或同一系列處理器的 UBoot 支持板為移植參考板。在實(shí)際移植過(guò)程中,可用 Linux命令查找移植參考板的特定代碼,如 grep –r EmbedSky ./ 可確定出在 UBoot中與 EmbedSky 板有關(guān)的代碼,依此對(duì)照目標(biāo)板實(shí)際進(jìn)行屏蔽或修改。 2. UBoot 燒寫地址 不同目標(biāo)板,對(duì) UBoot 在 FLASH中存放地址要求不盡相同。也就是說(shuō), UBoot 燒寫具體位置是由硬件決定的,而不是程序設(shè)計(jì)來(lái)選擇的。 3. CPU寄存器參數(shù)設(shè)置 根據(jù)處理器系列、類型不同,寄存器名稱與作用有一定差別。一個(gè)較為可行和有效的方法,就是借鑒參考移植板的配置,再根據(jù)目標(biāo)板實(shí)際,進(jìn)行合理修改。 4. 串口調(diào)試 能從串口輸出信息 ,即使是亂碼,也可以說(shuō) UBoot 移植取得了實(shí)質(zhì)性突破。因?yàn)?UBoot 是從 FLASH 中被引導(dǎo)啟動(dòng)的,如果 FLASH 設(shè)置不正確, UBoot代碼讀取和執(zhí)行就會(huì)出現(xiàn)一些問(wèn)題。同時(shí),要注意串口收發(fā)芯片相關(guān)引腳工作波形。 5. 與啟動(dòng) FLASH相關(guān)的寄存器 BR0、 OR0 的參數(shù)設(shè)置 應(yīng)根據(jù)目標(biāo)板 FLASH 的數(shù)據(jù) 手冊(cè)與 BR0 和 OR0 的相關(guān)位含義進(jìn)行合理設(shè)置。 6. 關(guān)于 CPLD 電路 目標(biāo)板上是否有 CPLD 電路絲毫不會(huì)影響 UBoot 的移植與嵌入式操作系統(tǒng)的正常運(yùn)行。其本身所起的作用就是實(shí)現(xiàn)一些目標(biāo)板所需的脈沖信號(hào)和電路邏輯,其功能完全可以用一些邏輯電路與 CPU口線來(lái)實(shí)現(xiàn)。與串口調(diào)試相比 ,這部分工作更為核心,難度更大。一是相關(guān)寄存器的設(shè)置;二是 UPM 表;三是 SDRAM 上電初始化過(guò)程。所以說(shuō), SDRAM 的驅(qū)動(dòng)不僅關(guān)系到 UBoot 本身能否正常運(yùn)行,而且還與后續(xù)部分相關(guān),是相當(dāng)關(guān)鍵的部分。如以太網(wǎng)、 LCD、 NVRAM 等。大多只是在參考現(xiàn)有源碼的基礎(chǔ)上,進(jìn)行一些修改和配置。如原理設(shè)計(jì)、 PCB 布線、元件好壞。 第 4 章 Linux 內(nèi)核的研究與移植 Linux 內(nèi)核移植是開(kāi)發(fā)適合于自己特定硬件平臺(tái)系統(tǒng)的重要部分,只有在bootloader 引導(dǎo)內(nèi)核啟動(dòng)之后,才能運(yùn)行自己的應(yīng)用程序,所 以掌握內(nèi)核移植技術(shù)是系統(tǒng)開(kāi)發(fā)的重要基礎(chǔ)。 ? 進(jìn)程調(diào)度模塊( SCHED)用來(lái)負(fù)責(zé)控制進(jìn)程對(duì) CPU 資源的使用。 Linux 使用了簡(jiǎn)單的基于優(yōu)先級(jí)的進(jìn)程調(diào)度算法選擇新的進(jìn)程。并可以利用文件系統(tǒng)把暫時(shí)不用的內(nèi)存數(shù)據(jù)塊交換到外部存儲(chǔ)設(shè)備上去,當(dāng)需要時(shí)再交換回來(lái)。硬件無(wú)關(guān)部分提供了進(jìn)程的映射和邏輯內(nèi)存的對(duì)換;硬件有關(guān)部分為內(nèi)存管理硬件提供了虛擬接口。虛擬文件系統(tǒng)模塊通過(guò)向所有的外部存儲(chǔ)設(shè)備提供一個(gè)通用的文件接口,隱藏了各種硬件設(shè)備的不同細(xì)節(jié)。 ? 進(jìn)程間通信模塊子系統(tǒng) (IPC)用于支持多種進(jìn)程間的信息交換 方式。 網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動(dòng)程序。 圖 4 1 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)存管理來(lái)調(diào)整一特定進(jìn)程所使用的物理內(nèi)存空間。這種通信機(jī)制允許兩個(gè)進(jìn)程訪問(wèn)內(nèi)存的同一區(qū)域以進(jìn)行進(jìn)程間信息的交換。而內(nèi)存管理子系統(tǒng)也會(huì)使用文件系統(tǒng)來(lái)支持內(nèi)存數(shù)據(jù)塊的交換操作。這些資源包括所有子系統(tǒng)都會(huì)調(diào)用的內(nèi)存分配和回收函數(shù)、打印警告或出錯(cuò)信息函數(shù)以及一些系統(tǒng)調(diào)試函數(shù)。 圖 4 2 Linux內(nèi)核結(jié)構(gòu)框圖 第 節(jié) Linux 內(nèi)核的編譯 Linux 源代碼只有經(jīng)過(guò)編譯之后,才能在開(kāi)發(fā)板上運(yùn)行,下面詳述具體內(nèi)容。 1. 用 vi 打開(kāi)目錄下的 Makefile,指明交 叉編譯器 vi Makefile 2. 在 193 行“ ARCH ?= (SUBARCH)”和 194 行“ CROSS_COMPILE ?=”將其改為: ARCH = arm CROSS_COMPILE = armlinux 3. 設(shè)置 PATH 環(huán)境變量,使其可以找到交叉編譯工具鏈 (我的交叉編譯工具在~/kernel/embedsky/opt/EmbedSky/) export PATH=$PATH:~/kernel/embedsky/opt/EmbedSky/4. 修 改 平 臺(tái) 的 時(shí) 鐘 頻 率 , 以 滿 足 開(kāi) 發(fā) 板 的 工 作 頻 率 。 5. TQ2440 開(kāi)發(fā)板使用的 uboot 中設(shè)定了機(jī)器碼為 168,所以內(nèi)核中需要修改機(jī)器碼,否側(cè)會(huì)出現(xiàn)不能啟動(dòng)的情況。 . Nand Flash 驅(qū)動(dòng)移植 進(jìn)行 Nand Flash 的移植,其實(shí) Linux 里面已經(jīng)做好了 Nand Flash 的驅(qū)動(dòng),我們只需要就行修改就可以進(jìn)行使用了。 2. 修改 Nand Flash 的讀寫匹配時(shí)間,修改 文件修改前 165 行的smdk_nand_info 結(jié)構(gòu)體,修改內(nèi)容如下:(這部分不做也可) static struct s3c2410_platform_nand smdk_nand_info = { .tacls = 10, .twrph0 = 25, .twrph1 = 10, .nr_sets = ARRAY_SIZE(smdk_nand_sets), .sets = smdk_nand_sets, }。然而對(duì)于具體的開(kāi)發(fā)板來(lái)說(shuō),大多數(shù)功能并不需要,為了盡可能減少編譯出來(lái)的內(nèi)核體積,在配置內(nèi)核時(shí),對(duì)需要的功能進(jìn)行配置和去除不需要的模塊是主要內(nèi)容。 在配置菜單中選擇選項(xiàng):“ Load an Alternate Configuration File”,然后調(diào)用剛剛說(shuō)到的那個(gè)配置文件,如圖 44:: 圖 4 4 然后進(jìn)入到如圖 45 所示的界面,輸入剛剛 提到的路徑和配置文件名稱回車即可 : 圖 4 5 加載配置文件 然后返回到配置界面,進(jìn)入到“ System Type”選項(xiàng)下的配置單,如圖 46: 圖 4 6 system type選項(xiàng)卡 然后對(duì)平臺(tái)進(jìn)行配置,如下所示: System type S3C2410 Machines [*] SMDK 2410/A9M410 [ ] IPAQ H1940 [ ] Acer N30 family [ ] Simtec Electronics BAST (EB2410ITX) [ ] NexVision OTOM Board [ ] AML M5900 Series [ ] BAST PC104 IRQ support [ ] TCT Hammer Board [ ] Thor VR1000 [ ] QT2410 S3C2412 Machines [ ] SMDK2413 [ ] SMDK2412 [ ] VMSTMS S3C2440 Machines [ ] Simtec Electronics ANUBIS [ ] Simtec IM2440D20 (OSIRIS) module [ ] HP iPAQ rx3715 [*] SMDK2440 [ ] NexVision NEXCODER 2440 Light Board [*] SMDK2440 with S3C2440 CPU module S3C2442 Machines [ ] SMDK2440 with S3C2442 CPU module S3C2443 Machines [ ] SMDK2443 配置完畢這個(gè)地方后,退回到最初的配置單。 . 編譯鏡像 然后輸入: make zImage,就可以進(jìn)行編譯了,編譯完畢后,會(huì)在內(nèi)核源碼的“ arch/arm/boot/”目錄下面生成名為“ zImage”的 ,不過(guò)在此之前還需要對(duì)相關(guān)文件系統(tǒng)的支持,請(qǐng)見(jiàn)下章。 . 在內(nèi)核中添加對(duì) yaffs 的支持 得到補(bǔ)丁包后,解壓補(bǔ)丁,然后打上 yaffs2 的補(bǔ)丁,在解壓縮后進(jìn)入源碼目錄執(zhí)行: ./ c ~/opt/EmbedSky/注: c 后面為你內(nèi)核的目錄。 . 在配置單中添加對(duì) yaffs 的支持 執(zhí)行 make menuconfig,進(jìn)入配置單,對(duì) File system選項(xiàng)進(jìn)行如下配置: File system Second extended fs support Ext3 journalling file system support Kernel automounter support Kernel automounter version 4 support (also support v3) Filesystem in Userpace support CDROM/DVD Filesystems * ISO 9660 CDROM file system support [ ] Microsoft Joliet CDROM extensions [ ] Transparent depression extension UDF file system support DOS/FAT/NT Filesystems * MSDOS fs support * VFAT(Windows95) fs support (437) Default codepage for FAT (iso88591) Default iocharset for FAT NTFS file system support Pseudo filesystem [*] Virtual memory file system support(former shm fs) [ ] Tmpfs POSIX Access Control Lists * Userspacedriven configuration filesystem Miscellaneous filesystems * YAFFS2 file system support * 512 byte/page devices [ ] Use olderstyle onNAND data format with pageStatus byte [ ] Lets Yaffs do its own ECC * 2048 byte(or larger)/page devices [*] Autoselect yaffs2 format [ ] Disable lazy loading [ ] Turn off wide tnodes [ ] Force chunk erase check [ ] Cache short names in RAM * Native language support Native language support (iso88591) Default NLS Option * Codepage 437 (United States, Canada) * Simplified Chinese charset(CP936, GB2312) * NLS ISO 88591 (Latin 1。 第 節(jié) 文件系統(tǒng)的制作 . 編譯 Busybox 制作文件系統(tǒng),首先需要用 busybox 編譯出文件系統(tǒng)所需要的應(yīng)用程序,然后我們?cè)僮鑫募到y(tǒng)。 2. 修改并配置 Busybox 修改 Makefile 文件,將編譯器和平臺(tái)改成我們所使用的,如下: CROSS_COMPILE = armlinux ARCH = arm 然后輸入: make menuconfig,進(jìn)入配置菜單: 圖 5 1 busybox配置菜單 Busybox Settings Build Option [*]Build Busybox as a static binary (no shared libs) 這個(gè)選項(xiàng)是一定要選擇的,這樣才能把 busybox 編譯成靜態(tài)的可執(zhí)行文件,運(yùn)行時(shí)才獨(dú)立于其他函數(shù)庫(kù)。 Busybox Settings Installation Options (“make install” behavior) (./_install) Busybox installation prefix 這個(gè)選項(xiàng)是設(shè)置 make install 后, busybox的安裝目錄,這里默認(rèn)是放在 _install目錄下。 3. 編譯并安裝 Busybox 執(zhí)行指令: make; makeinstall 進(jìn)行 Busybox 的編譯,編譯完成后會(huì)在 目錄中生成一個(gè)名為“ _install”的目錄,里面存放著一些可執(zhí)行的文件,目錄圖 52: 圖 5 2 _install目錄 完成 busybox 的編譯之后,我們就可以進(jìn)行文件系統(tǒng)的構(gòu)建了。 2. 添加內(nèi)容 “ dev”目錄: 下面的內(nèi)容在內(nèi)核掛載完畢文件系統(tǒng)后,系統(tǒng)會(huì)使用 mdev 自動(dòng)建立。在“ etc/”目錄下面需要建立的文件: fsta
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1