新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于A(yíng)RM11在Linux平臺(tái)下網(wǎng)絡(luò)通信的設(shè)計(jì)與實(shí)現(xiàn)

基于A(yíng)RM11在Linux平臺(tái)下網(wǎng)絡(luò)通信的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2013-06-27 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

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

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

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

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

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

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

因此,要學(xué)好Linux,就必須對(duì)Linux的命令行有比較深入的了解。

Ubuntu10.10會(huì)自動(dòng)安裝VMware工具,用于虛擬機(jī)系統(tǒng)與宿主機(jī)之間的文件傳輸?shù)龋从脩?hù)可以直接拖動(dòng)宿主機(jī)的文件到虛擬機(jī)中。若沒(méi)有自動(dòng)安裝,則選擇VM項(xiàng)下的Install VMware Tools進(jìn)行安裝。

Linux對(duì)普通用戶(hù)有一定的權(quán)限限制,如安裝一些支持包時(shí)就必須以根用戶(hù)的權(quán)限才能進(jìn)行操作。為方便每次啟動(dòng)Linux時(shí)都以根用戶(hù)登陸,可在第一次登陸時(shí)進(jìn)入超級(jí)終端,并打開(kāi)/etc/gdm目錄下的用戶(hù)配置文件:custom.conf.即每次登陸時(shí)都以root的權(quán)限進(jìn)行登陸。

1.2 交叉編譯器

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

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

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

1.4 網(wǎng)絡(luò)編程實(shí)驗(yàn)

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

2 嵌入式Linux硬件的搭建

2.1 linux 引導(dǎo)程序

嵌入式linux引導(dǎo)程序一般選用u-boot,全稱(chēng)Universal Boot Loader ,是遵循GPL條款的開(kāi)放源碼項(xiàng)目。首先設(shè)置撥碼開(kāi)關(guān)配置ARM11從SD卡中讀取u-boot,再通過(guò)超級(jí)終端,將讀取到的u-boot拷貝到ARM11板載的NAND Flash中,再設(shè)置啟動(dòng)方式配置ARM11從Flash中啟動(dòng),至此,完成嵌入式linux在A(yíng)RM11平臺(tái)下引導(dǎo)程序的加載。

2.2 linux 內(nèi)核

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

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

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

3 結(jié)束語(yǔ)

ARM11在Linux平臺(tái)下程序的流程圖總結(jié)如圖2所示。

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

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

linux相關(guān)文章:linux教程


通信相關(guān)文章:通信原理




評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉