新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM11在Linux平臺下網(wǎng)絡通信的設計與實現(xiàn)

基于ARM11在Linux平臺下網(wǎng)絡通信的設計與實現(xiàn)

作者: 時間:2013-06-27 來源:網(wǎng)絡 收藏

摘要: 系列微處理器是ARM 公司近年推出的新一代RISC 處理器,其性能得到全面的提高。嵌入式 有著微型的內(nèi)核、可裁剪的模塊以及高性能的等功能。兩者的結合能滿足消費類電子、無線設備、網(wǎng)絡應用、汽車電子等嵌入式應用的需求。

本文引用地址:http://2s4d.com/article/148007.htm

隨著CPU制造工藝的飛速發(fā)展,越來越多的高性能、低功耗的嵌入式微處理器應用到我們生活中的各個方面,采用ARM公司新一代的指令架構ARMv6,其主頻最高可達到1GHz,功耗低至0.4mW/MHz,采用8級流水線技術。另一方面,它對存儲器系統(tǒng)進行改善,使其更加適用于操作系統(tǒng)對硬件上的需求。

是在Unix的基礎上發(fā)展起來的,它是一種安全、穩(wěn)定、免費并且能移植到多種架構的處理器分為多個模塊,可裁剪一些次要的模塊以減小程序量,從而更好地滿足微處理器對功耗和成本的要求。

1 嵌入式Linux 軟件開發(fā)環(huán)境的搭建

1.1 嵌入式Linux 開發(fā)環(huán)境簡述

嵌入式Linux驅(qū)動程序的開發(fā)需在以Linux為內(nèi)核的操作系統(tǒng)系統(tǒng)下進行,為方便開發(fā)時的數(shù)據(jù)傳輸及信息反饋,安裝VMware虛擬機軟件,并且在其中安裝Ubuntu 10.10操作系統(tǒng)。需要注意的是,操作系統(tǒng)的版本不能太低,因為版本過低,很多工具都無法找到對應的支持包,導致一些軟件的失效。

Ubuntu是以Linux為內(nèi)核的操作系統(tǒng),在Ubuntu安裝之初,系統(tǒng)會要求你輸入要新建的賬戶和密碼,這個新建的賬戶用于Ubuntu第一次啟動時的默認登錄賬戶。Ubuntu10.10支持圖形用戶界面,但Linux中還有很多功能都不能以圖形界面的形式表達。

因此,要學好Linux,就必須對Linux的命令行有比較深入的了解。

Ubuntu10.10會自動安裝VMware工具,用于虛擬機系統(tǒng)與宿主機之間的文件傳輸?shù)?,即用戶可以直接拖動宿主機的文件到虛擬機中。若沒有自動安裝,則選擇VM項下的Install VMware Tools進行安裝。

Linux對普通用戶有一定的權限限制,如安裝一些支持包時就必須以根用戶的權限才能進行操作。為方便每次啟動Linux時都以根用戶登陸,可在第一次登陸時進入超級終端,并打開/etc/gdm目錄下的用戶配置文件:custom.conf.即每次登陸時都以root的權限進行登陸。

1.2 交叉編譯器

交叉編譯器是一種計算機環(huán)境中運行的編譯程序,能編譯出可在另外一種環(huán)境下運行的代碼,我們就稱這種編譯器為交叉編譯器。該文中,我們要在CISC X86架構的普通個人電腦中編寫代碼,編譯后的程序在RISC ARMv6架構的微處理器中運行。

1.3 網(wǎng)絡文件系統(tǒng)

NFS是Network File System的簡寫,即網(wǎng)絡文件系統(tǒng)。NFS允許一個系統(tǒng)在網(wǎng)絡上與他人共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統(tǒng)上的文件。在嵌入式開發(fā)中,NFS使得開發(fā)時硬件和電腦間文件的傳輸極為方便。

1.4 網(wǎng)絡編程實驗

典型的客戶機/服務器程序??蛻魴C、服務器模式要求每個應用程序應由兩部分組成:一個部分負責啟動通信,另一個部分負責對它進行應答。他們通常運行在不同的主機上,分別被稱為客戶機和服務器。服務器是指能在網(wǎng)絡上可提供服務的任何程序??蛻魴C是指用戶為了得到某種服務所需要運行的應用程序。一個服務器接受網(wǎng)絡上客戶機的請求,完成服務后將結果返回給客戶機。

2 嵌入式Linux硬件的搭建

2.1 linux 引導程序

嵌入式linux引導程序一般選用u-boot,全稱Universal Boot Loader ,是遵循GPL條款的開放源碼項目。首先設置撥碼開關配置ARM11從SD卡中讀取u-boot,再通過超級終端,將讀取到的u-boot拷貝到ARM11板載的NAND Flash中,再設置啟動方式配置ARM11從Flash中啟動,至此,完成嵌入式linux在ARM11平臺下引導程序的加載。

2.2 linux 內(nèi)核

完成u-boot的加載后,內(nèi)核文件可以直接通過超級終端從PC中傳輸?shù)角度胧介_發(fā)平臺中。通常是把內(nèi)核文件傳輸?shù)絥andflash特定的地址中暫存起來,再通過燒寫命令將該內(nèi)核文件燒寫到特定的內(nèi)核地址中去即完成嵌入式linux內(nèi)核的燒寫。

2.3 嵌入式Linux 文件系統(tǒng)

嵌入式Linux文件系統(tǒng)中的文件是數(shù)據(jù)的集合,文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有文件系統(tǒng)的結構,所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。常用的文件系統(tǒng)為yaffs2文件系統(tǒng)和cramfs文件系統(tǒng)。Yaffs是第一個專門為Nandflash存儲器的嵌入式文件系統(tǒng),適用于大容量的存儲設備,并且是在GPL協(xié)議下發(fā)布的。Cramfs文件系統(tǒng)是專門為NorFlash的只讀壓縮的文件系統(tǒng),采用實時解壓縮方式,小巧且快速。

3 結束語

ARM11在Linux平臺下程序的流程圖總結如圖2所示。

本文就目前對于嵌入式linux及其進行闡述,以嵌入式為知識背景,該主要由六個過程(NFS、交叉編譯器、網(wǎng)絡編程實驗、linux引導程序、linux內(nèi)核、嵌入式Linux文件系統(tǒng))組成。其他嵌入式Linux應用程序的編寫過程也與此類似。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關文章:linux教程


通信相關文章:通信原理




評論


相關推薦

技術專區(qū)

關閉