拿起手術(shù)刀 深入剖解路由器的“心臟”技術(shù)
⑵以太網(wǎng)交換電路設(shè)計(jì)介紹
以太網(wǎng)交換電路主要是采用五口交換芯片RTL8305SB來實(shí)現(xiàn)。RTL8305SB是一個(gè)集成了片內(nèi)存儲器,五個(gè)MAC層接口,五個(gè)物理層(PHY)接口的l0M/l00M自適應(yīng)的五口交換芯片,該集成芯片具有低功耗,可靈活配置為五口小型辦公及家用(SOHO)交換機(jī),家用網(wǎng)關(guān),xDSL路由器及其它智能應(yīng)用。要實(shí)現(xiàn)必要的網(wǎng)絡(luò)功能,這部分的電路是關(guān)鍵中的關(guān)鍵。
操作系統(tǒng)介紹
1、Linux
Linux是一個(gè)誕生于網(wǎng)絡(luò),成長于網(wǎng)絡(luò)且成熟于網(wǎng)絡(luò)的奇特的操作系統(tǒng)。1991年,芬蘭大學(xué)生Linus Torvalds萌發(fā)開發(fā)了一個(gè)自由的UNIX操作系統(tǒng)的想法,并將Linux通過Internet進(jìn)行發(fā)布。從此一大批編程人員加入到開發(fā)過程中來,Linux逐漸成長起來。Linux一開始要求所有的源代碼必須公開,后來轉(zhuǎn)向GPL( GNUG eneral Public Licence),成為GUN的陣營的主要一員。只要遵守GPL的規(guī)定,就可以免費(fèi)獲得復(fù)制,因此Linux是一個(gè)免費(fèi)軟件。同樣,Linux下遵循GPL規(guī)定的C, C++, Java等一系列的工具開發(fā)包,從功能的角度上看并不亞于商用的開發(fā)包,但卻可以極大的降低開發(fā)成本,這一優(yōu)勢是其它商用操作系統(tǒng)無法比擬的。
Linux 操作系統(tǒng)最突出的是網(wǎng)絡(luò)部分,基本上所有的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)接口都可以在Linux上找到,Linux的內(nèi)核比標(biāo)準(zhǔn)的UNIX處理網(wǎng)絡(luò)協(xié)議更加高效,系統(tǒng)的網(wǎng)絡(luò)吞吐性能更好,這也是Linux網(wǎng)絡(luò)服務(wù)器市場上占據(jù)較大的市場分額的重要原因。對于一般的小型的SOHO路由器,Linux的網(wǎng)絡(luò)技術(shù)無疑是其開發(fā)運(yùn)行的最佳選擇,Linux完全能對給其提供全方位的網(wǎng)絡(luò)技術(shù)支持。Linux作為互聯(lián)網(wǎng)的產(chǎn)物,許多關(guān)于Linux的文檔可以在Internet上下載到。
2、uClinux操作系統(tǒng)
uclinux是嵌入式Linux的一個(gè)分支,在uClinux這個(gè)英文單詞中u表示Micro,小的意思,C表示Control,控制的意思,所以uclinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領(lǐng)域而設(shè)計(jì)的Linux系統(tǒng)”。同標(biāo)準(zhǔn)的Linux相比,由于uClinux自身不支持MMU,多任務(wù)的實(shí)現(xiàn)就需要技巧了。但是,在uClinux上運(yùn)行的絕大多數(shù)的用戶程序并不需要多任務(wù)。另外,針對uclinux內(nèi)核的二進(jìn)制代碼和源代碼都是經(jīng)過了重新編寫,以緊縮和裁剪基本的代碼。這就使得uClinux的內(nèi)核同標(biāo)準(zhǔn)的Linux內(nèi)核相比非常之小,但是它仍保持了Linux操作系統(tǒng)的主要的優(yōu)點(diǎn),如穩(wěn)定性、強(qiáng)大的網(wǎng)絡(luò)功能和出色的文件系統(tǒng)支持等。uclinux包含Linux常用的API、小于512K的內(nèi)核和相關(guān)的工具。操作系統(tǒng)所有的代碼加起來小于900KB。
uClinux簡介
uClinux的基本架構(gòu)
在PC機(jī)上開發(fā)應(yīng)用程序的用戶都會有這樣的感覺,PC機(jī)有完善的操作系統(tǒng)并提供應(yīng)用程序接口(API),開發(fā)好的應(yīng)用程序可以直接在操作系統(tǒng)上運(yùn)行。雖然嵌入式系統(tǒng)的應(yīng)用程序完全可以在裸板上運(yùn)行,但為了使系統(tǒng)具有任務(wù)管理、定時(shí)器管理、存儲器管理、資源管理、事件管理、系統(tǒng)管理、消息管理、隊(duì)列管理和中斷處理的能力,提供多任務(wù)處理,更好的分配系統(tǒng)資源的功能,用戶就需要針對自己的硬件平臺和實(shí)際應(yīng)用選擇適當(dāng)?shù)那度胧讲僮飨到y(tǒng)(Embedded Operating System,以下簡稱EOS)。
由于本文實(shí)例中的硬件平臺是以不含MMU (Memory Management Unit,內(nèi)存管理單)的S3C4510B為核心的,因此采用不帶MMU的ARM 微處理器的嵌入式操作系統(tǒng)uclinux。uclinux 是一個(gè)完全符合GNUIGPL公約的操作系統(tǒng),完全開放代碼,現(xiàn)在由Line。公司支持維護(hù)。uClinux從Linux 2.0(2.4內(nèi)核派生而來,沿襲了主流Linux的絕大部分特性。它是專門針對沒有MMU的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作.適用于沒有虛擬內(nèi)存或內(nèi)存管理單元(MMU )的處理器,例如ARM7TDMI。
它通常用于具有很少內(nèi)存或Flash的嵌入式系統(tǒng)。uclinux是為了支持沒有MMU的處理器而對標(biāo)準(zhǔn)Linux作出的修正。它保留了操作系統(tǒng)的所有特性,為硬件平臺更好的運(yùn)行各種程序提供了保證。在GNU通用公共許可證(GNU GPL)的保證下,運(yùn)行uClinux操作系統(tǒng)的用戶可以使用幾乎所有的Linux API函數(shù),不會因?yàn)闆]有MMU而受到影響。由于uClinux在標(biāo)準(zhǔn)的Linux基礎(chǔ)上進(jìn)行了適當(dāng)?shù)牟眉艉蛢?yōu)化,形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux,雖然它的體積很小,uClinux仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的裁剪性、優(yōu)秀的網(wǎng)絡(luò)功能、完備的對各種文件系統(tǒng)的支持、以及標(biāo)準(zhǔn)豐富的API等。
BootLoader:負(fù)責(zé)uCLinux內(nèi)核的啟動,它用于初始化系統(tǒng)資源,包括SDRAM。這部分代碼用于建立uCLinux內(nèi)核運(yùn)行環(huán)境和從Flash中裝載初始化內(nèi)核鏡象。
內(nèi)核初始化:uCLinux內(nèi)核的入口點(diǎn)是start kernel() 函數(shù)。它初始化內(nèi)核的其他部分,包括捕獲,IRQ通道,調(diào)度,設(shè)備驅(qū)動,標(biāo)定延遲循環(huán),最重要的是能夠fork init進(jìn)程,以啟動整個(gè)多任務(wù)環(huán)境。
系統(tǒng)調(diào)用函數(shù)/捕獲函數(shù):在執(zhí)行完“init”程序后,內(nèi)核對程序流不再有直接的控制權(quán),此后,它的作用僅僅是處理異步事件(例如硬件中斷)和為系統(tǒng)調(diào)用提供進(jìn)程。
設(shè)備驅(qū)動 :設(shè)備驅(qū)動占據(jù)了uCLinux內(nèi)核很大部分。同其他操作系統(tǒng)一樣,設(shè)備驅(qū)動為它們所控制的硬件設(shè)備和操作系統(tǒng)提供接口。
文件系統(tǒng) :uCLinux最重要的特性之一就是對多種文件系統(tǒng)的支持。這種特性使得uCLinux很容易地同其他操作系統(tǒng)共存。文件系統(tǒng)的概念使得用戶能夠查看存儲設(shè)備上的文件和路徑而無須考慮實(shí)際物理設(shè)備的文件系統(tǒng)類型。ucLinux透明的支持許多不同的文件系統(tǒng),將各種安裝的文件和文件系統(tǒng)以一個(gè)完整的虛擬文件系統(tǒng)的形式呈現(xiàn)給用戶。uClinux帶有一個(gè)完整的TCP/IP協(xié)議,同時(shí)它還支持許多其他網(wǎng)絡(luò)協(xié)議。uclinux對于嵌入式系統(tǒng)來說是一個(gè)網(wǎng)絡(luò)完備的操作系統(tǒng)。
3、uClinux開發(fā)環(huán)境
⑴GNU開發(fā)套件
GNU軟件包括C編譯器GCC,C ++編譯器G++,匯編器AS,鏈接器LD,二進(jìn)制轉(zhuǎn)換工具(OBJCOPY,OBJDUMP),調(diào)試工具(GDB.GD BSERVER,KGDB)和基于不同硬件平臺的開發(fā)庫。在GNU GCC支持下用戶可以使用流行的C/C++語言開發(fā)應(yīng)用程序,滿足生成高效率運(yùn)行代碼、易掌握的編程語言的用戶需求,這些工具都是按GPL版權(quán)聲明發(fā)布,任何人可以從網(wǎng)上獲取全部的源代碼,無需任何費(fèi)用。
評論