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