下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式 lin u x 系統(tǒng)的研究及其在串口通信中的應用竹林, 祝忠明通信與信息系統(tǒng)系, 四川 成都 610059)成都理工大學(摘要: 研究了典型的嵌入式 li nux 操作系統(tǒng), 概述了如何構建嵌入式 li nux 開發(fā)環(huán)境, 分析了 li nux 內核的修改和剪裁, 并在開發(fā)板上實現(xiàn)串口通信。 關鍵字: 嵌入式系統(tǒng); l i nux; 內核; 裁剪resear ch and application of embedded linux system based on armzhu lin, zhu zhong- ming( chengdu university of technology,
2、 chengdu 610059, china)abstr act : typical embedded linuxoperating systems are studied,it is summarized how to build a development con-dition of the embedded linux and analyzed deeply how to modify and tailor the linux kernel and serial communicationare realized on the developing board.keywor ds: em
3、bedded; operating; system; linux; kernel; ailor引言1tem call) 的界面訪問內核結構。在 linux 中, 可以動態(tài)裝入和卸載內核中的部分模塊。linux 內核由 5 個 部分組成: 進程管理、內存管理、文件系統(tǒng)管理、進 程間通信和網絡接口。典型的嵌入式 linux 操作系統(tǒng)有 2 類: 第一類linux 內核進行修改和剪裁以滿足系統(tǒng)的需求,是 移 植 技 術 中 的 關 鍵 。 本 文 主 要 研 究 了 如 何 對linux 操作系統(tǒng)進行修改和剪裁, 并在開發(fā)板上實現(xiàn) 了串口通信。如 clinux, 其是為了支持沒有 mmu(內存管理單
4、元) 的處理器而對標準 linux 作出的修正。clinux保留了 linux 的大部分優(yōu)點: 穩(wěn)定良好的移植性、優(yōu) 秀的網絡功能、支持各種文件系統(tǒng)以及標準豐富的 api 等。第二類是將 linux 開發(fā)成實時系統(tǒng)尤其是 硬( firm) 實時系統(tǒng), 應用于一些關鍵的 控制場合,如 rtlinux。嵌入式操作系統(tǒng)分析2li nuxlinux 系統(tǒng)內核的分析: linux 系統(tǒng)使用了單一內核結構,即操作系統(tǒng)中所有的系統(tǒng)相關功能都被封裝在內核中。程序通過一套稱作系統(tǒng)調用( sys-3基于arm 平臺的3. 3 內核的修改和剪裁內核的初始化分為以下幾個階段: ( 1) 內核的入口 stextstex
5、t 是 bootloader 所調用的內核入口, 從 stext進入后, 將完成一些針對程序運行環(huán)境的建立。嵌入式系統(tǒng)的研究li nux3. 1 嵌入式平臺及開發(fā)環(huán)境的建立hfrk2410 開 發(fā) 板 是 基 于 s3c2410 高 性 能( 2)內核的初始化函數(shù) start_kernelarm處 理 器 的 嵌 入 開 發(fā) 平 臺 , cpu采 用start_kernel 是內核初始化的主體。在調用這個s3c2410arm920t。開發(fā)過程為: linux 下建立交叉編譯器, 在 windows 操作系統(tǒng)中用 ads 開發(fā)工具實 現(xiàn)啟動程序, 在 linux 操作系統(tǒng)下, 用交叉編譯器進 行
6、 linux 內核、庫函數(shù)及應用程序的編譯。函數(shù)的時候,和堆棧。系統(tǒng)已經有了一個初始化的頁目錄表( 3) 內核的初始化線程 init在 start_kernel 中, 通過創(chuàng)建了一個內核進程來 執(zhí)行 init 函數(shù), 進行初始化。3. 2 boot loader 代碼分析嵌入式系統(tǒng)中, boot loader 是在操作系統(tǒng)內核 或用戶應用程序運行之前運行一段小程序, 可以初 始化硬件設備、建立內存空間的映射圖, 從而將系統(tǒng)( 4)系統(tǒng)的初試化程序修改內核啟動部分源代碼: 主要是修改 make-file 文件, 以及加上 nand flash 的支持和 mtd 分區(qū) 表 的 填 寫 。 目 的
7、是 指 定 目 標 cpu 的 體 系 結 構 為 arm 及交叉編譯器前綴為 arm- linux- , 并在內核啟 動時能初始化 nand flash。修改的步驟為:( 1) 下載并解壓 linux 內核( 2) 修改 makefile 文件#arch?=$(subarch)修改為 arch:=arm。的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)內核或用戶應用程序準 備好正確的 環(huán)境。大多數(shù) boot loader 都包含 2 種不同 的操作模式: 啟動加載 (loading) 模式。boot loading)模式和下載(down啟動加載模 式: 也稱為“自 主”模式。即 boo
8、tloader 從目標機上的某個固態(tài)存儲設備上將操作系 統(tǒng)加載到 ram 中運行, 整個過程并沒有用戶的介 入。這種模式是 boot loader 的正常工作模式, 在嵌 入式產品發(fā)布的時候, bootloader 必須 工作在這種 模式下。下載模式: 在這種模式下, 目標機上的 boot- loader 將通過串口連接或網絡連接等通信手段從主 機下載文件。從主機下載的文件通常首先被 boot-loader 保 存 到 目 標 機 的 ram 中 , 然 后 再 被 boot-( 3)修改相關的文件修改 archarmmach- s3c2410devs.c 文件增加頭文件定義:#include
9、#include#include增 加 nand flash 分 區(qū) 信 息 , 將 分 區(qū) 信 息 和bootloader 程序一致。修改 archarmmach- s3c2410mach- smdk2410.c文件做 完 以 上 修 改 再 經 內 核 編 譯 后 就 可 以 在hfrk2410開發(fā)板上運行了。loader 寫到目標機上的閃存( flash)類固態(tài)存儲設備中。bootloader 的這種模式通常在第一次安裝內核與根文件系統(tǒng)時被使用; 此外, 以后的系統(tǒng)更新 也會使用 bootloader 的這種工作模式。工作于這種模式下的 bootloader 通常都會向其終端用戶提供一(
10、 4)編譯內核編譯內核需要 3 個步驟, 分別是創(chuàng)建內核依賴次為: make dep, make zimage, make modules。編 譯 完 成 以 后 , 會 生 成 鏡 像 文 件 arch/arm/boot/zimage, 把這個文件下載到開發(fā)板上, 就會看到 linux2.6 的內核啟動信息, 即完成了 linux2.6 內核 移植的第一步。pcmcia control ioctl(obsolete)(new)支持的可執(zhí)行文件格式: 支持 elf, elf 是開放 平臺下最常用的二進制文件, 它支持不同的硬件平 臺。userspace binary formats- - *k
11、ernel support for elf binaries( 5) 加載 yaffs2 文件系統(tǒng)(file system, yaffs)( 6) 內核的剪裁yet another flash設備驅動: 支持 mtd 分區(qū), 支持 nand flash、網卡 cs8900device drivers- - - memory technology device(mtd)support*mtd partitioning support*direct char device access to mtd devices *caching block device access to mtd devic
12、es nand flash device drivers- - - *nand device support*nand flash support for s3c2410/s3c2440 soc *s3c2410 nand driver debugnetwork device support- - ethernet(10 or 100mbit)- - cs8900 support使用 linux 自身的配置工具, 編譯定制內核。根據(jù)功能對內核進行剪裁, 要達到的目標是: 保證串口 下載調試信息, 提供必要的系統(tǒng)操作, 支持應用程序 正常運行, 即完成串口通信。配置的 linux 內核如 下:c
13、ode maturity level options- - - 代碼成熟等級選項( 不選)promptcode/driversfor development and/or incomplete默認情況下是選擇的, 這將會在設置界面中顯示還在開發(fā)或者還沒有完成的與驅動。通用設置選項: 支持處理器在程序之間同步和 交換信息、支持熱插拔general setup- - *system vipc*support for hot- pluggable devices可加載模塊: 使用模塊支持、支持模塊卸載、支 持內核自動加載部分模塊loadable module support- - *enable l
14、oadable module support *module unloading*automatic kernel module loading 總線支持配置: 有關 pcmcia 不選 bus support- - pccard(pcmcia/cardbus)support- - enable pccard debugging16- bit pcmcia support(new)load cis updates from userpace (experim- ental)(new)( 7)建立根文件系統(tǒng)根文件系統(tǒng)的作用是存放了各種工具、應用程序、init 程序、必需的庫和需要加載的模塊。根文
15、件系統(tǒng)采用 cramfs 格式,建立。并使用工具軟件 busybox 來通過以上步驟, 內核已經正常啟動, 首先檢測硬件平臺, 然后初始化網卡、usb 以及其他硬件, 最終 掛載文件系統(tǒng) yaffs, 顯示 linux 命令行的提示符。4基于 arm平臺的嵌入式 li nux 在串口通信中的應用該 系 統(tǒng) 只 設 計 了 一 路 與uart0相 連 的rs- 232c 接口電路, 通過 9 芯的 d 型插頭, 與外設可方便的連接, 同時設計了數(shù)據(jù)發(fā)送與接收的狀態(tài) 指示 led, 當有數(shù)據(jù)通過串行口傳輸時, led 閃爍, 便于用戶掌握其工作狀態(tài), 以及進行軟、硬件的調。試。串口通信的程序流程圖
16、如圖 1 所示。nbyte=write(fd,buffer,length);寫數(shù)據(jù):char buff1024;int len=1024;int readbyte=read(fd,buff,len);( 4) 關閉串口close(fd);5結束語在嵌入式系統(tǒng)平臺的開發(fā)使用過程中,經常使用串行接口與 pc 主機進行通信。在此平臺上, 可以運行嵌入式 linux 操作系統(tǒng),使用串口下載應用程序等。由此可見, 在嵌入式系統(tǒng)中實現(xiàn)串口通信, 可延伸系統(tǒng)的應用觸角,擴大系統(tǒng)的數(shù)據(jù)采集和過程控制的范圍參考文獻1馬忠梅 等.arm&linux 嵌入式教程m.北京: 北京 航空航天大學出版社, 2004.2孫天澤 等.嵌入式設計及 linux 驅動開發(fā)指南m.北京: 電子工業(yè)出版社, 2002.3毛德操.linux 內核源代碼情景分析m.杭州: 浙江 大學出版社, 2001.4李善平 等.linux 與嵌入式系統(tǒng)m. 北京: 清華大 學出版社, 2003.5陳莉君.linux 操作系統(tǒng)內核分析m.北京: 人民郵 電出版社, 2000.6張斌, 高波.linux 網絡編程. 北京m: 清華大學出 版社, 2000.7胥靜. 嵌入式系統(tǒng)設計與開發(fā)實例詳解基于arm 的應用m.北京: 北京圖 1 串口通信的程序流程圖( 1) 使用標準的文件打開函數(shù)操作來打開串口:int fd;/* 以讀寫方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025振動沉管灌注樁整體機械出租合同
- 2025不動產權籍調查技術咨詢服務合同
- 課題申報參考:凌家灘史前玉器藝術價值挖掘與傳承創(chuàng)新路徑研究
- 學科交叉融合與創(chuàng)新能力提升
- 會展合同管理與風險防范考核試卷
- 二零二五年度森林碳匯樹木種植項目合同4篇
- 2025年滬教版選擇性必修1歷史下冊階段測試試卷
- 2025年新世紀版九年級地理上冊階段測試試卷
- 2025年冀教版九年級地理上冊月考試卷
- 2025年華師大版選擇性必修1化學下冊月考試卷
- 2024-2025學年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學年北師大版數(shù)學七年級下冊
- 春節(jié)聯(lián)歡晚會節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂推廣代運營合同樣本
- 教育促進會會長總結發(fā)言稿
- 北師大版(2024新版)七年級上冊數(shù)學第四章《基本平面圖形》測試卷(含答案解析)
- 心理調適教案調整心態(tài)積極應對挑戰(zhàn)
- 噴漆外包服務合同范本
- JT-T-390-1999突起路標行業(yè)標準
評論
0/150
提交評論