<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 拿起手術(shù)刀 深入剖解路由器的“心臟”技術(shù)

拿起手術(shù)刀 深入剖解路由器的“心臟”技術(shù)

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

本文引用地址:http://dyxdggzs.com/article/201809/388544.htm

⑵以太網(wǎng)交換電路設計介紹

以太網(wǎng)交換電路主要是采用五口交換芯片RTL8305SB來(lái)實(shí)現。RTL8305SB是一個(gè)集成了片內存儲器,五個(gè)MAC層接口,五個(gè)物理層(PHY)接口的l0M/l00M自適應的五口交換芯片,該集成芯片具有低功耗,可靈活配置為五口小型辦公及家用(SOHO)交換機,家用網(wǎng)關(guān),xDSL路由器及其它智能應用。要實(shí)現必要的網(wǎng)絡(luò )功能,這部分的電路是關(guān)鍵中的關(guān)鍵。

操作系統介紹

1、Linux

Linux是一個(gè)誕生于網(wǎng)絡(luò ),成長(cháng)于網(wǎng)絡(luò )且成熟于網(wǎng)絡(luò )的奇特的操作系統。1991年,芬蘭大學(xué)生Linus Torvalds萌發(fā)開(kāi)發(fā)了一個(gè)自由的UNIX操作系統的想法,并將Linux通過(guò)Internet進(jìn)行發(fā)布。從此一大批編程人員加入到開(kāi)發(fā)過(guò)程中來(lái),Linux逐漸成長(cháng)起來(lái)。Linux一開(kāi)始要求所有的源代碼必須公開(kāi),后來(lái)轉向GPL( GNUG eneral Public Licence),成為GUN的陣營(yíng)的主要一員。只要遵守GPL的規定,就可以免費獲得復制,因此Linux是一個(gè)免費軟件。同樣,Linux下遵循GPL規定的C, C++, Java等一系列的工具開(kāi)發(fā)包,從功能的角度上看并不亞于商用的開(kāi)發(fā)包,但卻可以極大的降低開(kāi)發(fā)成本,這一優(yōu)勢是其它商用操作系統無(wú)法比擬的。

Linux 操作系統最突出的是網(wǎng)絡(luò )部分,基本上所有的網(wǎng)絡(luò )協(xié)議和網(wǎng)絡(luò )接口都可以在Linux上找到,Linux的內核比標準的UNIX處理網(wǎng)絡(luò )協(xié)議更加高效,系統的網(wǎng)絡(luò )吞吐性能更好,這也是Linux網(wǎng)絡(luò )服務(wù)器市場(chǎng)上占據較大的市場(chǎng)分額的重要原因。對于一般的小型的SOHO路由器,Linux的網(wǎng)絡(luò )技術(shù)無(wú)疑是其開(kāi)發(fā)運行的最佳選擇,Linux完全能對給其提供全方位的網(wǎng)絡(luò )技術(shù)支持。Linux作為互聯(lián)網(wǎng)的產(chǎn)物,許多關(guān)于Linux的文檔可以在Internet上下載到。

2、uClinux操作系統

uclinux是嵌入式Linux的一個(gè)分支,在uClinux這個(gè)英文單詞中u表示Micro,小的意思,C表示Control,控制的意思,所以uclinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領(lǐng)域而設計的Linux系統”。同標準的Linux相比,由于uClinux自身不支持MMU,多任務(wù)的實(shí)現就需要技巧了。但是,在uClinux上運行的絕大多數的用戶(hù)程序并不需要多任務(wù)。另外,針對uclinux內核的二進(jìn)制代碼和源代碼都是經(jīng)過(guò)了重新編寫(xiě),以緊縮和裁剪基本的代碼。這就使得uClinux的內核同標準的Linux內核相比非常之小,但是它仍保持了Linux操作系統的主要的優(yōu)點(diǎn),如穩定性、強大的網(wǎng)絡(luò )功能和出色的文件系統支持等。uclinux包含Linux常用的API、小于512K的內核和相關(guān)的工具。操作系統所有的代碼加起來(lái)小于900KB。

uClinux簡(jiǎn)介

uClinux的基本架構

在PC機上開(kāi)發(fā)應用程序的用戶(hù)都會(huì )有這樣的感覺(jué),PC機有完善的操作系統并提供應用程序接口(API),開(kāi)發(fā)好的應用程序可以直接在操作系統上運行。雖然嵌入式系統的應用程序完全可以在裸板上運行,但為了使系統具有任務(wù)管理、定時(shí)器管理、存儲器管理、資源管理、事件管理、系統管理、消息管理、隊列管理和中斷處理的能力,提供多任務(wù)處理,更好的分配系統資源的功能,用戶(hù)就需要針對自己的硬件平臺和實(shí)際應用選擇適當的嵌入式操作系統(Embedded Operating System,以下簡(jiǎn)稱(chēng)EOS)。

由于本文實(shí)例中的硬件平臺是以不含MMU (Memory Management Unit,內存管理單)的S3C4510B為核心的,因此采用不帶MMU的ARM 微處理器的嵌入式操作系統uclinux。uclinux 是一個(gè)完全符合GNUIGPL公約的操作系統,完全開(kāi)放代碼,現在由Line。公司支持維護。uClinux從Linux 2.0(2.4內核派生而來(lái),沿襲了主流Linux的絕大部分特性。它是專(zhuān)門(mén)針對沒(méi)有MMU的CPU,并且為嵌入式系統做了許多小型化的工作.適用于沒(méi)有虛擬內存或內存管理單元(MMU )的處理器,例如ARM7TDMI。

它通常用于具有很少內存或Flash的嵌入式系統。uclinux是為了支持沒(méi)有MMU的處理器而對標準Linux作出的修正。它保留了操作系統的所有特性,為硬件平臺更好的運行各種程序提供了保證。在GNU通用公共許可證(GNU GPL)的保證下,運行uClinux操作系統的用戶(hù)可以使用幾乎所有的Linux API函數,不會(huì )因為沒(méi)有MMU而受到影響。由于uClinux在標準的Linux基礎上進(jìn)行了適當的裁剪和優(yōu)化,形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux,雖然它的體積很小,uClinux仍然保留了Linux的大多數的優(yōu)點(diǎn):穩定、良好的裁剪性、優(yōu)秀的網(wǎng)絡(luò )功能、完備的對各種文件系統的支持、以及標準豐富的API等。

BootLoader:負責uCLinux內核的啟動(dòng),它用于初始化系統資源,包括SDRAM。這部分代碼用于建立uCLinux內核運行環(huán)境和從Flash中裝載初始化內核鏡象。

內核初始化:uCLinux內核的入口點(diǎn)是start kernel() 函數。它初始化內核的其他部分,包括捕獲,IRQ通道,調度,設備驅動(dòng),標定延遲循環(huán),最重要的是能夠fork init進(jìn)程,以啟動(dòng)整個(gè)多任務(wù)環(huán)境。

系統調用函數/捕獲函數:在執行完“init”程序后,內核對程序流不再有直接的控制權,此后,它的作用僅僅是處理異步事件(例如硬件中斷)和為系統調用提供進(jìn)程。

設備驅動(dòng) :設備驅動(dòng)占據了uCLinux內核很大部分。同其他操作系統一樣,設備驅動(dòng)為它們所控制的硬件設備和操作系統提供接口。

文件系統 :uCLinux最重要的特性之一就是對多種文件系統的支持。這種特性使得uCLinux很容易地同其他操作系統共存。文件系統的概念使得用戶(hù)能夠查看存儲設備上的文件和路徑而無(wú)須考慮實(shí)際物理設備的文件系統類(lèi)型。ucLinux透明的支持許多不同的文件系統,將各種安裝的文件和文件系統以一個(gè)完整的虛擬文件系統的形式呈現給用戶(hù)。uClinux帶有一個(gè)完整的TCP/IP協(xié)議,同時(shí)它還支持許多其他網(wǎng)絡(luò )協(xié)議。uclinux對于嵌入式系統來(lái)說(shuō)是一個(gè)網(wǎng)絡(luò )完備的操作系統。

3、uClinux開(kāi)發(fā)環(huán)境

⑴GNU開(kāi)發(fā)套件

GNU軟件包括C編譯器GCC,C ++編譯器G++,匯編器AS,鏈接器LD,二進(jìn)制轉換工具(OBJCOPY,OBJDUMP),調試工具(GDB.GD BSERVER,KGDB)和基于不同硬件平臺的開(kāi)發(fā)庫。在GNU GCC支持下用戶(hù)可以使用流行的C/C++語(yǔ)言開(kāi)發(fā)應用程序,滿(mǎn)足生成高效率運行代碼、易掌握的編程語(yǔ)言的用戶(hù)需求,這些工具都是按GPL版權聲明發(fā)布,任何人可以從網(wǎng)上獲取全部的源代碼,無(wú)需任何費用。



關(guān)鍵詞:

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>