uclinux源碼
⑴ UNIX 1.0 源代碼誰有啊,不勝感激,有的話發[email protected]
你好,嵌入式linux系統的設計與應用
摘要:隨著嵌入式Linux系統的迅速發展,嵌入式Linux已發展成為嵌入式操作系統的一個重要分支。本文介紹了嵌入式Linux的設計和幾種流行的嵌入式Linux系統。
關鍵詞:嵌入式Linux
一、引言
嵌入式系統(Embedded Systems)是根據應用的要求,將操作系統和功能軟體集成於計算機硬體系統之中,從而實現軟體與硬體一體化的計算機系統。嵌入式系統出現於60年代晚期,它最初被用於控制機電電話交換機,如今已被廣泛的應用於工業製造、過程式控制制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等眾多領域。嵌入式系統在數量上遠遠超過了各種通用計算機系統:計算機系統核心CPU,每年在全球范圍內的產量大概在二十億顆左右,其中超過80%應用於各類專用性很強的嵌入式系統。
一般的說,凡是帶有微處理器的專用軟硬體系統都可以稱為嵌入式系統。和通用的計算平台相比,嵌入式系統往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬體集成度高、計算能力相對較低等特點。多年來,嵌入式設備中沒有操作系統,其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設備僅僅需要一道簡單的控製程序,以管理數量有限的按鈕和指示燈,沒有使用操作系統的必要;其次,它往往只具有有限的硬體資源,不足以支持一個操作系統。
然而,隨著硬體的發展,嵌入式系統變得越來越復雜,最初的控製程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統提供。於是,在70年代末期出現了嵌入式操作系統(Embedded Operating Systems),它的出現大大簡化了應用程序設計,並可以有效的保障軟體質量和縮短開發周期。簡單的ES一般並不使用操作系統,只包含一些控制流程,但是隨著嵌入式操作系統在復雜性上的增長,簡單的流程式控制制就不能滿足系統的要求,這是就必須考慮使用操作系統做系統軟體。因此,嵌入式操作系統就應運而生。
隨著EOS的廣泛應用,業界已推出一些應用比較成功的EOS產品。歸納起來EOS應該具有以下幾個特點:小巧、實時性、可裝卸、固化代碼、弱交互性、強穩定性和統一的介面。目前使用最多的EOS產品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(國內凱思集團公司自主研製開發)等。其中,Vxwork使用最為廣泛、市場佔有率最高,其突出特點是實時性強(採用優先順序搶占和輪轉調度等機制),除此之外,其可靠性和可剪裁性也相當不錯。QNX是一種伸縮性極佳的系統,其核心加上實時POSIX環境和一個完整的窗口系統還不到一兆。相比之下,Microsoft WinCE的核心體積龐大,實時性能也差強人意,但由於Windows系列友好的用戶界面和為程序員所熟悉的API,並捆綁IE、Office等應用程序,正逐漸獲得更大的市場份額。而與這些商業化的操作系統相比,Linux已經越來越受到人們的注意。
二、嵌入式Linux概述
Linux是一個成熟而穩定的網路操作系統。將Linux植入嵌入式設備具有眾多的優點。首先,Linux的源代碼是開放的,任何人都可以獲取並修改,用之開發自己的產品。其次,Lirmx是可以定製的,其系統內核最小隻有約134kB。一個帶有中文系統和圖形用戶界面的核心程序也可以做到不足1MB,並且同樣穩定。另外,它和多數Unix系統兼容,應用程序的開發和移植相當容易。同時,由於具有良好的可移植性,人們已成功使Linux運行於數百種硬體平台之上。
然而,Linux並非專門為實時性應用而設計,因此如果想在對實時性要求較高的嵌入式系統中運行Linux,就必須為之添加實時軟體模塊。這些模塊運行的內核空間正是操作系統實現進程調度、中斷處理和程序執行的部分,因此錯誤的代碼可能會破壞操作系統,進而影響整個系統的可靠性和穩定性。Linux的眾多優點還是使它在嵌入式領域獲得了廣泛的應用,並出現了數量可觀的嵌入式Linux系統。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用於在小型工業計算機,尤其是PC/104模塊。ThinLinux面向專用的照相機伺服器、X-10控制器、MP3播放器和其它類似的嵌入式應用。LOAF是Linux On A Floppy的縮略語,它運行在386平台上。
三、Linux作為嵌入式操作系統的優勢
Linux作為嵌入式操作系統的優勢主要有以下幾點:
1、 可應用於多種硬體平台。Linux已經被移植到多種硬體平台,這對於經費,時間受限制的研究與開發項目是很有吸引力的。原型可以在標准平台上開發後移植到具體的硬體上,加快了軟體與硬體的開發過程。Linux採用一個統一的框架對硬體進行管理,從一個硬體平台到另一個硬體平台的改動與上層應用無關。Linux可以隨意地配置,不需要任何的許可證或商家的合作關系,源代碼可以免費得到。這使得採用Linux作為操作系統不會遇到任何關於版權的糾紛。毫無疑問,這會節省大量的開發費用。本身內置網路支持,而目前嵌入式系統對網路支持要求越來越高。Linux的高度模塊化使添加部件非常容易。
2、 Linux是一個和Unix相似、以內核為基礎的、具有完全的內存訪問控制,支持大量硬體(包括X86,Alpha、ARM和Motorola等現有的大部分晶元)等特性的一種通用操作系統。其程序源碼全部公開,任何人可以修改並在GUN通用公共許可證(GNU General Public License)下發行。這樣,開發人員可以對操作系統進行定製,適應其特殊需要。
3、 Linux帶有Unix用戶熟悉的完善的開發工具,幾乎所有的Unix系統的應用軟體都已移植到了Linux上。Linux還提供了強大的網路功能,有多種可選擇窗口管理器(X Windows)。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。
四、嵌入式Linux的建立
完整的嵌入式Linux解決方案應包括嵌入式Linux操作系統內核、運行環境、圖形化界面和應用軟體等。由於嵌入式設備的特殊要求,嵌入式Linux解決方案中的內核、環境、GUI等都與標准Linux有很大不同,其主要挑戰是如何在狹小的FLASH、ROM和內存中實現高質量的任務實時調度、圖形化顯示、網路通信等功能。
1、 精簡內核
Linux內核有自己的結構體系,其中進程管理、內存管理和文件系統是其最基本的3個子系統。圖1簡單表示了它的框架。用戶進程可直接通過系統調用或者函數庫來訪問內核資源。正因為Linux內核具有這樣的結構,因此修改內核時必須注意各個子系統之間的協調。
嵌入式Linux內核一般由標准Linux內核裁剪而來。用戶可根據需求配置系統,剔除不需的服務功能、文件系統和設備驅動。經過裁剪、壓縮後的系統內核一般只有300k左右,十分適合嵌入式設備。同標准Linux不同的是嵌入式Linux必須要實現從FLASH或ROM的啟動。標准Linux啟動代碼實現了系統初始化和從軟盤、硬碟O盤區引導內核。嵌入式Linux一般保存在FLASH或ROM中,標准LILO無法引導。在支持直接從FLASH設備引導的系統中,如華恆公司的uClinux,引導程序主要完成對硬體系統的初始化工作和操作系統的解壓、移位工作。在不支持直接從FLASH引導的系統中,FLASH設備只能作為非引導磁碟使用。此時,可採用先從硬碟或軟盤載入一個小操作系統,如嵌入式DOS,然後再執行"Loadlin"載入程序從FLASH引導嵌入式Linux。
對標准Linux的修改主要是虛擬內存和調度程序部分的改動。因為標准Linux系統使用虛擬內存管理的目的是為了能同時運行多個進程,但是這樣每個待運行的進程所能分配的CPU時間片就受限制,資源的使用效率就低。這樣對於實時性要求較高的嵌入式系統來說,實時任務往往要求CPU具有很高的突發處理能力,即在有些時候需要極高的處理效率,因此需要屏蔽內核的虛擬內存管理機制。對於無硬碟設備的嵌入式系統,不必採用虛存管理。強實時需求的嵌入式應用可以通過修改任務調度模塊實現,主要是在內核和設備驅動程序中加入了許多切換點。在該點處,系統檢測是否存在未處理的緊急中斷,有則剝奪內核的運行,及時處理中斷。實現實時性服務的一個較好的方法是在標準的Linux內核上增加一個實時內核,標准Linux內核作為一個任務運行於實時內核上,強實時性任務也直接運行在實時內核上,如RT-Linux等。
文件系統是嵌入式Linux操作系統必不可少的。但標准Linux支持大量的文件系統,因此除了滿足系統的正常運行需要而保留一種外,其它的全部可以刪除,利用原有的設置選項可以移除。一般嵌入式設備文件系統主要使用RamDisk技術和網路文件系統技術。RamDisk可駐留於Flash,運行時載入到內存中。
2、 精簡運行環境
Linux通常的運行環境指用戶運行任何應用的基礎設施,主要包括函數庫和基本命令集等。標准Linux系統同時向用戶提供了靜態和動態函數庫。靜態函數庫在生成應用時直接鏈接到用戶應用中。動態庫在應用運行時才鏈接。由於嵌入式系統應用一般都是在開發平台上預先生成的,因此嵌入式系統只需向應用提供動態函數庫。Linux應用運行所需的函數庫主要有C庫、數學庫、線程庫、加密庫、網路通信庫等。其中最基本的是c語言的運行庫glib。這個庫主要完成基本的輸入輸出,內存訪問,文件處理。一個標準的glib庫大約要1200kB存儲空間,考慮到嵌入式Linux內核往往很小,這種運行庫實在太大,我們做了一些精簡的工作,方法有兩種:(1)、使用靜態連接的方法,完全不使用運行庫動態連接;(2)、對這個庫的函數進行精簡。
在一個桌面系統上,使用動態連接可以帶來許多好處。使用動態連接庫,可以讓應用程序跟函數庫的更新、升級分離,便於維護,可以讓同時運行的多個程序共享一段代碼。但是,在嵌入式系統中,很少有多個程序並行的可能,程序的維護,尤其是庫函數的維護更新是不常見的。這時,使用靜態連接的優勢就極為明顯。因為靜態連接可以只將庫中用到的部分連接進程序。在應用程序較少(小於5)的情況下,靜態連接可以達到較好的結果。為了便於將來擴充的需要,我們也採用第二種方法,針對我們的需要,對庫函數的內容進行精簡,只保留一些基本功能,還有一種方法是採用其它的C語言運行庫。但是這些庫對兼容性影響很大。
基本命令集同樣是運行用戶應用的基礎,主要包括初始化進程init,終端獲取getty、Shell和基本命令等。嵌入式系統的啟動過程可能與標准Linux不同,例如跳過登錄過程直接啟動GUI等。這就要求修改init,getty等。標准Linux命令集同樣由於體積問題無法直接應用於嵌入式環境。目前,小命令集的解決方法主要有集成方法和匯編方法兩種。集成方法採用集成公共部分減少命令集整體體積,用C實現,有較好的平台移植性;匯編方法則採用匯編編程減少每個命令的體積.這樣可使體積很小但其平台移植性較差。
3、 嵌入式Linux下的GUI
GUI在嵌入式系統或者實時系統中的地位越來越重要,比如PDA、DVD播放機、WAP手機等,都需要一個完整.漂亮的圖形用戶界面。這些系統對GUI的基本要求包括:(1)、輕型、佔用資源少;(2)、高性能;(3)、高可靠性;(4)、可配置。這些也成為評價嵌入式系統的重要指標。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、緊縮的X Window、MiniGUI(國內做得較好的自由軟體之一)。標准Linux的Xfree86由於體積龐大,運行環境要求高,無法運行於嵌入式環境。嵌入式GUI主要通過削減功能,降低性能來實現體積小和佔用資源少。目前嵌入式Linux上的GUI環境主要有兩類:X類和win32類。X類GUI分為服務方和客戶方兩方。伺服器方提供滑鼠、鍵盤處理和顯示功能,客戶方是用戶應用,服務方和客戶方通過socket介面和X協議通信。採用該方式十分有利於遠程網路圖形化服務,客戶方和服務方可通過網路實現X協議和圖形顯示。典型的X類GUI有Micro Window、緊縮的X Window等。win32類的GUI不存在客戶方和服務方,每個任務都自成一體,任何任務間的切換、事件分發由專門的管理任務負責。如wiCE、MiniGUI就是類似於win32類的GUI。
五、當前流行的幾種嵌入式Linux系統
除了智能數字終端領域以外,Linux在移動計算平台、智能工業控制、金融業終端系統,甚至軍事領域都有著廣泛的應用前景。這些Linux被統稱為"嵌入式Linux"。
1、RT-Linux
這是由美國墨西哥理工學院開發的嵌入式Linux操作系統。到目前為止,RT-Linux已經成功地應用於太空梭的空間數據採集、科學儀器測控和電影特技圖像處理等廣泛領域。RT-Linux開發者並沒有針對實時操作系統的特性而重寫Linux的內核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-Linux提出了精巧的內核,並把標準的Linux核心作為實時核心的一個進程,同用戶的實時進程一起調度。這樣對Linux內核的改動非常小,並且充分利用了Linux下現有的豐富的軟體資源。
2、uClinux
uCLinux是Lineo公司的主打產品,同時也是開放源碼的嵌入式Linux的典範之作。uCLinux主要是針對目標處理器沒有存儲管理單元MMU(Memory Management Unit) 的嵌入式系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。uCLinux是一種優秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標准Linux的優良特性,經過各方面的小型化改造,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數的優點:穩定、良好的移植性、優秀的網路功能、對各種文件系統完備的支持和標准豐富的API。它專為嵌入式系統做了許多小型化的工作,目前已支持多款CPU。其編譯後目標文件可控制在幾百KB數量級,並已經被成功地移植到很多平台上。
3、Embedix
Embedix是由嵌入式Linux行業主要廠商之一Luneo推出的,是根據嵌入式應用系統的特點重新設計的Linux發行版本。Embedix提供了超過25種的Linux系統服務,包括Web伺服器等。系統需要最小8MB內存,3MB ROM或快速快閃記憶體。Embedix基於Linux 2.2內核,並已經成功地移植到了Intel x86和PowerPC處理器系列上。像其它的Linux版本一樣,Embedix可以免費獲得。Luneo還發布了另一個重要的軟體產品,它可以讓在Windows CE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發調試工具包、基於圖形界面的瀏覽器等。可以說,Embedix是一種完整的嵌入式Linux解決方案。
4、Xlinux
XLinux是由美國網虎公司推出,主要開發者是陳盈豪。他在加盟網虎幾個月後便開發出了基於XLinux的、號稱是世界上最小的嵌入式Linux系統,內核只有143KB,而且還在不斷減小。XLinux核心採用了"超字元集"專利技術,讓Linux核心不僅可能與標准字元集相容,還含蓋了1 2個國家和地區的字元集。因此,XLinux在推廣Linux的國際應用方面有獨特的優勢。
5、PoketLinux
由Agenda公司採用、作為其新產品"VR3PDA"的嵌入式Linux操作系統。它可以提供跨操作系統構造統一的、標准化的和開放的信息通信基礎結構,在此結構上實現端到端方案的完整平台。PoketLinux資源框架開放,使普通的軟體結構可以為所有用戶提供一致的服務。PoketLinux平台使用戶的視線從設備、平台和網路上移開,由此引發了信息技術新時代的產生。在PoketLinux中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定製的"主題"信息的能力,而不管正在使用的設備是什麼。
6、MidoriLinux
由Transmeta公司推出的MidoriLinux操作系統代碼開放,在GUN普通公共許可(GPL)下發布,可以在http://midori.transmeta.com上立即獲得。該公司有個名為"MidoriLinux計劃"。"MidoriLinux"這個名字來源於日本的"綠色"---Midori,用來反映其Linux操作系統的環保外觀。
7、紅旗嵌入式Linux
由北京中科院紅旗軟體公司推出的嵌入式Linux是國內做得較好的一款嵌入式操作系統。目前,中科院計算所自行開發的開放源碼的嵌入式操作系統---Easy Embedded OS(EEOS)也已經開始進入實用階段了。該款嵌入式操作系統重點支持p-Java。系統目標一方面是小型化,另一方面能重用Linux的驅動和其它模塊。由於有中科院計算所的強大科研力量做後盾,EEOS有望發展成為功能完善、穩定、可靠的國產嵌入式操作系統平台。
六、結束語
由於Linux是一個內核源代碼開放、具備一整套工具鏈、有強大的網路支持及成本低廉的操作系統,因此嵌入式Linux自誕生起就秉承了這眾多獨特優勢,這使它正在並越來越多地受到人們的關注。據Even Data數據顯示,期望使用嵌入式Linux的用戶從2001年的11%增到2002年27%,而同期Vxwork只是從16%到18%,Win CE從9%到14%。另外,在嵌入式Linux的各種應用市場中,通信(語音和數據)名列第一,2000年的銷售額是1300萬美元,而2005年預計將達到1.26億美元,可以預見,嵌入式Linux將在未來的通信用嵌入式操作系統中占據強有力的地位
Linux是目前十分火爆的操作系統。它是由芬蘭赫爾辛基大學的一個大學生Linus B. Torvolds在1991年首次編寫的。標志性圖標是一個可愛的小企鵝。
Linux是一種類Unix系統,Linus當時編寫它的目的是為了替代一種名叫Minix的操作系統。Minix是由一個名叫Andrew Tannebaum的計算機教授編寫的,當時由於Unix是一個商業軟體,其源代碼是不能拿來進行教學的,Andrew教授就自己編寫了一個系統用於教學。最
初的Minix用一張軟盤就能裝下,麻雀雖小、五臟俱全,Minix具有一般操作系統的特徵,它同時兼容Unix系統。
Linux是一個免費的操作系統,用戶可以免費獲得其源代碼,並能夠隨意修改。它是在共用許可證GPL(General Public License)保護下的自由軟體,也有好幾種版本,如Red Hat Linux、Slackware,以及國內的Xteam Linux等。
Linux具有許多Unix系統的功能和特點,能夠兼容Unix,但無需支付Unix高額的費用。比如一個Unix程序員在單位可以在Unix系統上進行工作,回到家裡在Linux系統上也能完成同樣的工作,而不必重新購買Unix。要知道Unix的價格比常見的Windows要高出若干倍,和Linux的低廉更是相距甚遠。
Linux的應用也十分廣泛。Sony最新的PS2游戲機就採用了Linux作為系統軟體,使PS2搖身一變,成為了一台Linux工作站。著名的電影《泰坦尼克號》的數字技術合成工作就是利用100多台Linux伺服器來完成的。
2001年8月17日,Linux發布了最新的Linux 2.4.9版,它也已經十歲了。
Linux的優點
Linux的流行是因為它具有許多誘人之處。
1、完全免費
Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變。這讓Linux吸收了無數程序員的精華,不斷壯大。
2、完全兼容POSIX 1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
3、多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
4、良好的界面
Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Windows系統,用戶可以使用滑鼠對其進行操作。在X-Windows環境中就和在Windows中相似,可以說是一個Linux版的Windows。
5、豐富的網路功能
互聯網是在Unix的基礎上繁榮起來的,Linux的網路功能當然不會遜色。它的網路功能和其內核緊密相連,在這方面Linux要優於其他操作系統。在Linux中,用戶可以輕松實現網頁瀏覽、文件傳輸、遠程登陸等網路工作。並且可以作為伺服器提供WWW、FTP、E-Mail等服務。
6、可靠的安全、穩定性能
Linux採取了許多安全技術措施,其中有對讀、寫進行許可權控制、審計跟蹤、核心授權等技術,這些都為安全提供了保障。Linux由於需要應用到網路伺服器,這對穩定性也有比較高的要求,實際上Linux在這方面也十分出色。
7、支持多種平台
Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel 64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
Linux的不足
由於在現在的個人電腦操作系統行業中,微軟的Windows系統仍然佔有大部分的份額,絕大多數的軟體公司都支持Windows。這使得Windows上的應用軟體應有盡有,而其他的操作系統就要少一些。許多用戶在換操作系統的時候都會考慮以前的軟體能否繼續使用,換了操作系統後是否會不方便。雖然Linux具有DOS、Windows模擬器,可以運行一些Windows程序,但Windows系統極其復雜,模擬器所模擬的運行環境不可能完全與真實的Windows環境一模一樣,這就使得一些軟體無法正常運行。
許多硬體設備面對Linux的驅動程序也不足,不少硬體廠商是在推出Windows版本的驅動程序後才編寫Linux版的。但一些大硬體廠商在這方面做得還不錯,他們的Linux版驅動程序一般都推出得比較及時。
軟體支持的不足是Linux最大的缺憾,但隨著Linux的發展,越來越多的軟體廠商會支持Linux,它應用的范圍也越來越廣。這只小企鵝的前景是十分光明的。
回答者: 280258962 - 助理 三級 12-15 09:44
Linux系統介紹
--------------------------------------------------------------------------------
簡單地說,Linux是一套免費使用和自由傳播的類Unix**作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的**作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路**作系統。它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品 !
Linux以它的高效性和靈活性著稱。Linux模塊化的設計結構,使得它既能在價格昂貴的工作站上運行,也能夠在廉價的PC機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的**作系統。Linux**作系統軟體包不僅包括完整的Linux**作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行**作。
Linux具有Unix的優點:穩定、可靠、安全,有強大的網路功能。在相關軟體的支持下,可實現WWW、FTP、DNS、DHCP、E-mail等服務,還可作為路由器使用,利用ipchains/iptables可構建NAT及功能全面的防火牆。
Linux有很多發行版本,較流行的有:RedHat Linux、Debian Linux、RedFlag Linux等。
RedHat Linux,支持Intel,Alpha和SPARC平台,具有豐富的軟體包。可以說,RedHat Linux是Linux世界中非常容易使用的版本,它**作簡單,配置快捷,獨有的RPM模塊功能使得軟體的安裝非常方便。
Debian Linux基於標准LINUX內核,包含了數百軟體包,如GNU軟體,TeX,X Windows系統等。每一個軟體包均為獨立的模塊單元,不依賴於任何特定的系統版本,每個人都能創建自己的軟體包。Debian Linux是一套非商業化的由眾多志願者共同努力而成的LINUX.
RedFlag Linux(紅旗Linux)是Linux的一個發展產品,由中科紅旗軟體技術有限公司開發研製的以 Intel和Alpha晶元為CPU構成的伺服器平台上第一個國產的**作系統版本。它標志著我國在發展國產**作系統的道路上邁出了堅實的一步。 相對於Windows**作系統及Unix**作系統來講,Linux憑借其開放性及低成本,已 經在伺服器**作系統市場獲得了巨大發展。但由於其**作界面復雜,一時難以讓普通 PC用戶接受。GNOME是GNU組織中專門開發桌面環境的項目。GNOME作為開放源代碼的 軟體開發成果,基於兼容性良好的CORBA技術,與Linux系統相輔相成,帶給用戶更加 友好的界面,更多的使用、檢查、修改及分發自由。與同是開放源代碼圖形用戶界面 的KDE相比較,GNOME表現得更能減輕其他公司創建Linux桌面應用的勞動。GNOME已經 成為業內人士普遍看好的一個趨勢性軟體。繼伺服器版1.0、桌面版2.0、嵌入式Linux之後,紅旗最近又推出了新產品--紅 旗伺服器2.0和紅旗網路商務通等多種發行版本和相 21765希望對你有幫助!
⑵ uClinux編譯在建立環境時遇到的問題,make menuconfig命令出錯
缺少Ncurses庫,這個庫好象是在終端窗口下顯示圖形的庫
你試著去找一下相應的包安裝一下或者找相應的源代碼然後編譯一下
當然如果你選擇去找源代碼編譯,那就參考一下代碼數下面的文檔,看看如何編譯,安裝以及這個庫的依賴情況等
⑶ Uclinux是什麼意思 全稱是什麼
uclinux表示micro-control linux.即微控制器領域中的Linux系統,是Lineo公司的主打產品,同時也是開放源碼的嵌入式Linux的典範之作。uCLinux主要是針對目標處理器沒有存儲管理單元MMU(Memory
Management Unit)的嵌入式系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。
Linux是一種很受歡迎的操作系統,它與UNIX系統兼容,開放源代碼。它原本被設計為桌面系統,現在廣泛應用於伺服器領域。而更大的影響在於它正逐漸的應用於嵌入式設備。uClinux正是在這種氛圍下產生的。在uClinux這個英文單詞中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"針對微控制領域而設計的Linux系統"。
⑷ arm-linux-gcc 和 arm-elf-gcc 的區別
在基於ARM的嵌入式系統開發中,常常用到交叉編譯的GCC工具鏈有兩種:
arm-linux-*和 arm-elf-*,兩者區別主要在於使用不同的C庫文件。arm-linux-*使用
GNU的Glibc,而arm-elf-*一般使用 uClibc/uC-libc或者使用REDHAT專門為嵌入式系統
的開發的C庫newlib.Glibc。uClibc/uC-libc以及 newlib都是C語言庫文件,只是所應
用的領域不同而已,Glibc是針對PC開發的,uClibc/uC-libc是與Glibc API兼容的小型
化C語言庫,實現了Glibc部分功能。
關於uClibc/uC-libc的說明,詳見如下:
There are two libc libraries commonly used with uClinux. uC-libc and
uClibc. They are quite different despite their similar names. Here is a
quick overview of how they are different.
uC-libc is the original library for uClinux. It was based on sources
from the Linux-8086 C library which was part of the ELKs project with m68000
support added by Jeff Dionne and Kenneth Albanowski. It is a fairly complete
libc implementation, however, some of the API's are a little non-standard
and quite a few common libc routines are not present. Currently it has
stable support for m68000, ColdFire and ARM (Non-MMU) architectures. It was
primary design goal is to be small and light weight. It does try to conform
to any standards, although its API tries to be compatible with most libcs,
it is not always exactly the same.
The uClinux distribution provides an environment that can compile using
either uC-libc or uClibc depending on your needs. For m68000 and Coldfire
platforms it is generally better to chose uC-libc as it supports shared
libraries and is the most commonly used libc for these CPUs. uClibc also
works quite well with almost all platforms supported by the distribution.
Which libc you choose to use will be decided by your requirements
uClinux有兩個經常使用的libc庫:uC-libc和uClibc。雖然兩者名字很相似,其實有差
別,下面就簡單的介紹一下二者的不同之處。uC -libc是最早為uClinux開發的庫,是
Jeff Dionne和Kenneth Albanowski為在EKLs項目中支持m68000在Linux-8086 C庫源碼
上移植的。uC-libc是一個完全的libc實現,但其中有一些api是非標準的,有些libc的
標准也沒有實現。uC-libc穩定地支持 m68000,ColdFire和沒有MMU的ARM。其主要設計
目標是「小」、"輕",並盡量與標准一致,雖然它的API和很多libc兼容,但是似乎並
不像它期望的那樣和所有標准一致。
uClibc就是為了解決這個問題從uC-libc中發展出來的。它的所有API都是標準的(正確
的返回類型,參數等等),它彌補了uC-libc中沒有實現的libc標准,現在已經被移植到
多種架構中。一般來講,它盡量兼容glibc以便使應用程序用uClibc改寫變的容易。
uClibc能夠在標準的 VM linux和uClinux上面使用。為了應用程序的簡潔,它甚至可以
在許多支持MMU的平台上被編譯成共享庫。Erik Anderson在uClibc背後做了很多的工
作。uClibc支持許多系列的處理器:m68000,Coldfire,ARM,MIPS,v850, x86,
i960,Sparc,SuperH,Alpha,PowerPC和Hitachi 8。不斷增加的平台支持顯示uClibc
能夠很容易的適應新的架構。uClinux發行版提供了環境能夠讓你選擇使用uC-libc或是
uClibc編譯。對於m68000和Coldfire平台來說,選擇uC-libc還是稍微好一點,因為它
支持共享庫,而共享庫是這些cpu經常使用的 libc.uClibc也幾乎和所有的平台都能很
好的工作。選擇哪種libc取決於你的需求。
newlib 是一個用於嵌入式系統的開放源代碼的C語言程序庫,由libc和libm兩個庫組
成,特點是輕量級,速度快,可移植到很多CPU結構上。newlib實現了許多復雜的功
能,包括字元串支持,浮點運算,內存分配(如malloc)和I/O流函數(printf,fprinf()
等等)。其中libc提供了c 語言庫的實現,而libm提供了浮點運算支持。
在為ARM交叉編譯gcc編譯器時,對gcc指定不同的配置選項時,使用的C語言庫就不同,
gcc編譯器默認使用Glibc,也可以使用 uClibc/uC-libc(基本兼容Glibc API),當使用
--with-newlib時,gcc編譯器不使用Glibc。當沒有交叉編譯Glibc時,可以使用
--with-newlib禁止連接Glibc而編譯bootstrap gcc編譯器。從gcc源目錄下的
config/arm中的t-linux和t-arm-elf中可以看出,不同的--target也影響gcc連接C語言
庫,t-linux(--target=arm-linux)默認使用Glibc,-arm-elf(--target=arm-elf)使用
- Dinhibit_libc禁止連接Glibc,這時我們就可以使用newlib等其他C語言庫編譯GCC工
具鏈。
雖然GCC工具鏈配置了不同的的C語言庫,但由於這些C語言庫都可以用來支持GCC,它們
對核心數據的處理上不存在較大出入。因而arm-linux-* 和 arm-elf-*區別主要表現在
C語言庫的實現上,例如不同系統調用,不同的函數集實現,不同的ABI\啟動代碼以及
不同系統特性等微小的差別。
arm-linux-*和 arm-elf-*的使用沒有一個絕對的標准,排除不同庫實現的差異,gcc可
以編譯任何系統。arm-linux-*和 arm-elf-*都可以用來編譯裸機程序和操作系統,只
是在遵循下面的描述時系統程序顯得更加協調:
arm-linux-*針對運行linux的ARM機器,其依賴於指定的C語言庫Glibc,因為同樣使用
Glibc的linux而使得arm-linux-*在運行linux的ARM機器上編譯顯得更加和諧。
arm-elf-*則是一個獨立的編譯體系,不依賴於指定的C語言庫Glibc,可以使用newlib
等其他C語言庫,不要求操作系統支持,當其使用為嵌入式系統而設計的一些輕巧的C語
言庫時編譯裸機程序(沒有linux等大型操作系統的程序),如監控程序,bootloader等
能使得系統程序更加小巧快捷。
Linaro prebuilt toolchain does support both hard and soft floating
point. You can get it from https://launchpad.net/linaro-toolchain-binaries/+milestone/2012.08 try: ./arm-linux-gnueabihf-gcc -print-multi-lib
The default configure is --with-arch=armv7-a --with-tune=cortex-a9
--with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb
To use soft floating, you need options: -marm -march=armv4t -mfloat-abi=soft.
In your case, please try to change -march=armv5 to "-march=armv4t"
If you want to change to configure to cortex-a8 and armv5. You need
* Change cortex-a9 to cortex-a8 in
samples/linaro-arm-linux-gnueabihf/crosstool.config
* Change armv4t to armv5 in
contrib/linaro/patches/gcc/linaro-4.7-2012.08/multilib.patch,
Then follow the instructions to rebuild the toolchain
(contrib/linaro/doc/README.txt)
BTW: crosstool-ng-linaro does not support multilib for eglibc. It uses
the prebuilt sysroot from Ubuntu Precise. If it does not work for you,
please use the latest crosstool-ng from http://crosstool-ng.org/.
⑸ 關於LINUX的優勢重要性已自然的從各種渠道耳濡目染,想學習它。請朋友指點怎樣學習怎樣展開
1.抓住51開發ARM
這幾個月來我一直都爬在51的問題,自己都有一點笑自己了,用了4個月的時間,來鞏固51的原理和程序,還好我自己算是走過來了,自己笨,身邊的高才生又看不上51的原理,他們都比較「牛」,說51過時了,你問那個做什麼???我比較郁悶!過時嗎?我有一點懷疑?
他們不願意說有他們自己的理由,沒有人強求,靠自己好了。
我自己個人的觀點:51是一個基礎,而且還很重要,這是再我看了ARM之後感覺到的。它可以加速你的ARM學習速度,真得!不相信你試一試好了。
凡是要求一個速度、效率,不要做一些無用功,抓緊身邊的每一個一分鍾,人是活的,東西(知識、書)是得,想要做的事情因此就簡單了。
2.我在網上看到了一篇很不錯的ARM文章,粘貼過來,為了和像我一樣在很少有人幫助的情況下,自學ARM 的難兄難弟們。
「ARM怎麼入門」。我不是高手,仍然是菜鳥。
但是回想起自己當時的迷茫,特意寫了這篇東西,當作給和我一樣的兄弟姐妹的幫助吧。問這個問題的人多半不是已經工作的工程師,而是和我一樣是學生,所以這篇筆記就把看家當成我一樣的菜鳥,高手勿怪。
首先聲明:本人還沒有找工作,事實上處於研究生剛畢業,還沒開始找工作的空閑時間,44B0隻是興趣所在,打發時間。
所有看法完全是自己的感受,不代表任何他人。錯了的觀點各位幫我糾正。再次補充:很多朋友看了上面的話就問我為什麼研究生畢業了還不找工作:)說是打發時間,其實是因為研究生的時候帶了一個項目,申請提前畢業以後項目還有塊尾巴,答應導師把項目做完再走:)就這么簡單。男人總點負點責,呵呵
以下問題常被問到,我就想到哪說到哪吧。
一 首先說說ARM的發展
可以用一片大好來形容,翻開各個公司的網站,招聘裡面嵌入式占據了大半工程師職位。
廣義的嵌入式無非幾種:傳統的什麼51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數字處理與通信領域的空前發展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應用面很廣。
FPGA的兄弟一般做ANSIC(特殊晶元設計,好象是這么翻譯的)。而ARM單純說來並不比一個單片機強多少,但是它的獨特就在於不斷下降的價格和提升的性能。這完全依靠於ARM公司的戰略,厲害!!很佩服他們的戰略眼光!!
值得注意的是:在找工作中,企業(著名的,小的不算)對單純的ARM硬體開發工程師並不比單片機重視,很少有大企業的職位里寫「從事過ARM開發優先」。寫的多的是什麼?「嵌入式LINUX」到這相信大家看出來了吧,需要的是硬體中的軟體。
二 ARM是硬體還是軟體
很難說,ARM是硬體,LINUX是軟體。ARM的硬體多半已經模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰略,再次佩服。
實際中的LINUX的開發工作更多,更耗時。從這方面說ARM應該算是軟體了。
在找工作中更是這樣,舉個例子,聯想里和ARM最接近的是「BIOS工程師」是軟體,MOTO里接近的是嵌入式LINUX工程師是軟體。而其他很多公司把嵌入式產品開發歸為硬體。所以,不要討論這個,好好玩轉自己的板子才是關鍵。實在不爽你就把自己叫「嵌入式開發工程師」
三 要不要買開發板 買哪家
我的答案是「在你個人的學習方法」,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現成的。
1 買
買板子可以把注意力集中在軟體開發上,軟體開發(尤其是驅動)可以不必擔心自己硬體上的問題,我就是以便調試一邊寫驅動和程序,每次寫驅動前就要先確認硬體沒問題。另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!製版又15天,回來以後焊接44B0 160個腳!那叫一個麻煩 ~~花了多少錢呢?2層板,製版費就300塊!當然 我把介面都外引了,還做了個20X18的LCD背板,板子比較大。總體下來 元件+LCD屏+PCB =11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術支持!都是騙人的,賣你之後就不會理你。
2 做
自己做可以更了解底層硬體,可以按照自己的要求加東西,比如我就加了GPS模塊、 GPRS模塊 、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當然,你可以有策略的做,比如像我一樣,把RAM和ROM,網路都保持和某現成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什麼的自己做。都達到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網上流傳的原理圖多數是龔俊03年畫的,再這里對龔俊表達一下我的敬意!!牛人!
但是那個圖有個小BUG,我指的是03版的,後來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責!順便譴責把龔俊板子偷賣的人。
3 買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎麼開發ARM,而不是像有的公司自己技術都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是匯流排不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結合點。ARM7最適合做工業控制,ARM普及,銷量都是怎麼來的?都是ARM7來的,而44B0是典型的商業片子。但是,這里如果你看中的是為工作做准備,還是選能跑UCLINUX的吧。
但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!!在這里被ZLG的務實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬體沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至於資料全不全,別計較了~~硬體肯定好使就行吧。
四 要不要有51 AVR等單片機基礎
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學過單片機,從來沒做過。我們這的技術主幹做AVR和51,我就跟他們調過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了裡面的例子和原理圖,這很重要。常式里有匯編有C,都看懂了就OK,不用自己現寫
五 開發都需要學習哪些軟體
總結起來最主要的有以下幾個吧
1 ADS調試用
確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT後來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。
有的人的程序發布的仍然是SDT版本的,但基本都可以找到相應ADS的,新人在這里不要發蒙。ADS是編譯器,AXD是調試器。便宜成AXF以後再在ARM的RAM里調試。
2 PLASHPGM
FLASH燒寫的軟體。AXD在RAM里調試,掉電就沒有了,方便程序修改。調試好的程序再下到FLASH里,上電直接運行。
同類的軟體還有很多,什麼FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 BANYANT調試代理(不知道名對不,起這么個難記的,我一般都叫它「半羊」因為知道它那幾天剛吃了烤羊)
調試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實現原本1K才賣的JTAG模擬器的大部分功能。JTAG調試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅動就行了。
調試代理還有很多種,什麼H-JTAG了、ARM7了(不知道具體叫什麼,就記得可執行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調試之前都要運行。省錢了,就別怕麻煩了。
4 ARM-ELF-TOOLS工具鏈
裡面是UCLINUX開發用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發布的方便你開發的東西。具體安裝方法看我另一篇筆記。
另外如果你開發LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。
5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)
生成的BOOTLOADER燒到FLASH里,然後就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當然UCOS的不用這個,用什麼我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。
6 UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現成的先體會一下,然後再自己編譯,裁剪。因為單獨UCLINUX的編輯技術上比較簡單,但涉及的方面還是比較廣的。
7 VMWARE
老牌的虛擬機軟體,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網路就不用別的書了,其中主要推薦前2本,3是介紹體系結構的,也不錯
1 ARM嵌入式LINUX系統構建與驅動開發,北航版
驅動寫的很詳細,前期開發介紹也很好
2 ARM 嵌入式系統實驗教程(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎麼開發的。
3 ARM嵌入式系統基礎教程
最重要的是體系結構,匯編部分介紹,看看吧,增加理論素質。
4 44B0數據手冊
寫在這里是強調它的重要。
不推薦ZLG早期出的紅色皮的ARM什麼體系結構~只類的
寫的太多,看煩了。
其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當單片機用
1 搞開發,工程設計,用UCOS,小巧,多進程,簡單,體現了ARM7的精髓。
2 LINUX 正根的嵌入式系統,LINUX消費與通信領域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統:)ARM7上可以跑,由有LINUX近親,學好好可以比較方便的轉向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS
學好後可以找到高薪工作,但工作機會本身並不比LINUX好找。
5 當單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對於學習來說多進程的系統設計才是ARM7的玩頭,至少你也要整個UCOS啊:)
有朋友問我先學這個當基礎不行嗎?那當然可以~~但我當時就用了1周搞定,就是我先的ADS在RAM中調試的筆記。後來我清空FLASH用的小段程序還是當時寫的LED閃爍程序呢。另外1周里其中還因為自己過於菜,沒把OM設置好導致晶陣不陣
哈哈。這個是必須做的,但一帶而過。目標放的遠一點。
八 學習要用多長時間
我從菜鳥到現在兩個多月,中間被打擾數次。仍然搞定了PCB設計與製版,RAM調試,FLASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現成的),LCD驅動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們「你們應該比這個更好」
我相信良好的態度+合適的方法+及時的總結=成績
九 ARM都玩什麼
就幾點
1 硬體設計
2 系統移植
3 驅動開發
4 應用開發
沒了。其中推薦把注意力放在後兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。
十 我用的什麼板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。
1 加了串口通信的GPS模塊、 GPRS模塊
一個UART0,一個UART1,當與要用超級終端時用跳線切換。
2 SD卡,和7843觸摸屏
同時掛在SPI匯流排上,因為SPI只能掛一個設備,同時還做了I/O模擬的准備,把兩個設備又通過跳線掛在4個IO上。
3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不佔用CPU,最大支持64個鍵子,只上了35個,其他留介面。
4 把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調試有關的並沒動,就是為了現在不那麼菜的時候做准備:)
十一 開發流程
這里是我的開發流程
1 設計原理圖(含WIGGLER的JTAG訪真器)
2 設計PCB(含WIGGLER的JTAG訪真器)
3 製版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+模擬器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+模擬器連接,可以顯示正確的44B0了
7 用BANYANT+模擬器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內存窗口看RAM地址)RAM就沒問題
可以用這個命令「setmem 0xc000000,0xffffffff,32」
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。
8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調試程序吧,寫個簡單的,我當時寫個LED閃爍的。看好使不。
9 把程序按照《FLASH燒寫總結 》里的燒到FLASH里,測試一下
10 按照《UBOOT 移植操作》移植UBOOT
11 按照《UCLINUX下載簡單說明》下個UCLINUX
12 看看驅動開發的方法,自己寫個驅動看看
13 還有很多事東西著你玩 呵呵
十二 關於JTAG訪真器
JTAG訪真器現在用的多是簡板的,一個244那種,用的沒什麼不好。
按照並口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟體多。這個網上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復位信號,這個一般不跳上。就是不用復位信號,因為JTAG協議里本身也可以控制44B0復位。
當然,板子上的復位信號跳線也不用跳。
十三 哪個公司的ARM
這個是問題比較簡單。
1 ARM7主要就幾個公司的
三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應用產品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學習來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領域應該是消費電子,比如手機PDA,而這上面用的多的應該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
⑹ 系統類型
Windows 開發商 Microsoft
Windows98/me
Windows2000/XP
Windows Server2003
Windows Vista
Windows98/me是基於MS-DOS的混合的16/32位操作系統正慢慢的退出PC舞台了,2000/XP以及Server2003都是基於WindowsNT的32位操作系統,XP/Server2003已經有64位版本了。Vista是微軟最新開發的版本預計在2006年推出。主要支持Intel,AMD,後來增加了對PowerPC,MIPS的支持。微軟的操作系統基本上統治了個人PC市場,大概佔了90%的市場份額。
UNIX-like
AIX 開發商 IBM
AIX是Advanced Interactive eXecutive的簡稱,它是IBM 公司的UNIX操作系統,整個系統的設計從網路、主機硬體系統,到操作系統完全遵守開放系統的原則.
RS/6000 採用IBM 的UNIX操作系統-AIX作為其操作系統.這是一個目前操作系統界最成功,應用領域最廣,最開放的第二代的UNIX系統。它特別適合於做關鍵數據處理(CRITICAL).
支持PowerPC POWER處理器.
目前的版本是AIX 5L 5.3,
支持64棵處理器,2TB內存,16TB JFS2文件系統,16TB JFS2文件.
HP-UX 開發商 HP
惠普公司在1996年隨著推出64位PA-8000處理器,開始了64位技術的實施計劃,它形成了工業界運算最快的商業和工程技術應用伺服器的基礎。為了與先進的硬體配套,惠普公司已經逐步地把64位功能放入惠普公司在工業界領先的UNIX操作系統HP-UX。HP-UX 10.10和10.20分別具有非常大的文件系統和文件。
HP-UX 11.00也有32位版本,使得基於32位PA-7X00系統也可以得到HP-UX 11.00的新功能和特色;基於PA-8X00的K系列和T系列系統的客戶要在HP-UX的32位或64位版本之間做出選擇。惠普公司單機系統性能在工業界領先(39,469TPMS)的V系列系統,只可以運行64位的HP-UX 11.00。
主要運行於HP公司的PA-系列處理器以及Intel的安騰系列處理器上.
最新的版本HP-UX 11i v2.
可以管理128棵處理器,1TB內存,32TB文件系統,最大2TB的文件。
IRIX 開發商 SGI
SGI公司最早是專門生產圖形顯示終端的, OpenGL標准便是由SGI提出來的.公司開發的這個操作系統是主要運行在基於MIPS處理器的圖形工作站上,1992年SGI收購了MIPS, 1998年MIPS又脫離了SGI成立MIPS技術公司.2003年SGI推出了基於Linux的Altix系列操作系統.
Mac OS X 開發商 Apple
Apple公司的Macintosh機上的操作系統, 蘋果機主要用於圖形領域,在圖形處理領域佔有很大市場份額。Mac OS是首個在商用領域成功的圖形用戶界操作系統。Mac OS9及以前的版本都在搭在蘋果機上銷售的。它不支持其它設備,每當有新的設備時都要通過添加擴展來支持設備。新的Mac OS X結合BSDUnix、NeXTStep和Mac OS 9的元素。採用Unix風格的內存管理和搶占式多任務處理,它的最底層建基於BSDUnix的內核,實行的是部分開放源代碼。
現行的最新的系統版本是Mac OS X v10.4.2。
只能運行在PowerPC G3以上處理器的蘋果機上,蘋果公司正在跟Intel合作,表示以後蘋果機會採用x86處理器。
Solaris 開發商 SUN
最早也是基於BSD Unix開發的,那時就直接叫Sun OS,從Sun OS5以後就以Solaris的名字面市,從Solaris10開始它也是免費開源的軟體了,開始主要是為SPARC和x86寫的,後來經過一些改動也可以支持一大批的處理器.Solaris10開始支持64位處理器.
FreeBSD 開發者 Nate Williams,Rod Grimes,Jordan Hubbard.
Bill Jolitz的 386BSD發展形成3個分支FreeBSD,NetBSD,OpenBSD了,這些都是免費的開源操作系統。第一張FreeBSD光碟是在1993年12月發布的。
FreeBSD 是一個在個人電腦上執行的作業系統,主要支持x86處理器,其他跟 Intel 相容的 CPU 如 AMD 跟 Cyrix也被支持。
FreeBSD 能提供你許多昂貴工作站才有的先進功能,這些特色包括:
搶占式多任務處理.
完整的 TCP/IP 網路功能 包含 SLIP, PPP, NFS 跟 NIS。
內存保護(Memory protection) 能確保一個使用者不能打擾其他人。而一個應用程式也不能影響其他的程式。
標準的 X 視窗系統 (X Window, X11R6) 提供良好的圖形用戶介面(GUI)以便在一般的 VGA 顯示卡以及螢幕上使用, 並且提供完整的原始程式碼。
能直接執行在其他作業系統 (如 SCO, BSDI, NetBSD, Linux 跟 386BSD)上編譯的 (Binary) 程式。
數以千計 可以直接執行(ready-to-run) 的應用程式, 可以在 FreeBSD ports 及 packages 中找到。 免去你上網路到處找軟體的苦境。
需要時才置換的虛擬記憶體(Demand paged virtual memory 以及合理的虛擬記憶體及檔案緩沖區之緩沖功能(merged VM/buffer cache)
NetBSD 開發者 NetBSD小組
NetBSD是一種完全免費的類UNIX操作系統,它是一個重於誇平台應用的 BSD分支,它支持50多種硬體平台,具有高度可移植性和硬體平台兼容性.它可以運行在從64位alpha伺服器到手持設備的多種硬體平台上. NetBSD的清晰設計以及它的眾多高級特性使得它不論作為產品還是研究環境都表現得非常出色。而且它對用戶在資源上進行全方位的支持。其上的應用程序很多都可以非常容易地獲得。
OpenBSD 開發者 由NetBSD的前核心成員Theo de Raddt領導的一個開發小組。
OpenBSD由NetBSD分支出的計劃,
它是一個免費、多平台、基於4.4BSD的類Unix操作系統。目標在於強調正確性、安全性、標准化以及可移植性。著重於安全性,致力於成為最安全的操作系統。OpenBSD支持包括SVR4(Solaris),FreeBSD,Linux,BSDI,SunOS和HPUX等大部分二進制的模擬。
Linux
RedHat/Fedora 開發商 RedHat.Inc
Redhat linux是最早的Linux發行版本之一,也是最早使用軟體管理包RPM的Linux版本, Redhat 自9.0以後,不再發布桌面版的,而是把這個項目與開源社區合作,於是就有了Fedora 這個 Linux 發行版。最新版本是FC4.0.
Slackware 開發商Slackware Linux, Inc
Slackware Linux是由Patrick Volkerding開發的GNU/Linux發行版。與很多其他的發行版不同,它堅持KISS(Keep It Simple Stupid)的原則,就是說沒有任何配置系統的圖形界面工具。一開始,配置系統會有一些困難,但是更有經驗的用戶會喜歡這種方式的透明性和靈活性。
Slackware Linux的另一個突出的特性也符合KISS原則:Slackware沒有如RPM之類的成熟的軟體包管理器。Slackware的軟體包都是通常的 tgz(tar/gzip)格式文件再加上安裝腳本。Tgz對於有經驗的用戶來說,比RPM更為強大,並避免了RPM之類管理器的依賴性問題。 Slackware還有一個眾所周知的特性就是BSD風格的初始化腳本。Slackware對所有的運行級(runlevel)/任務都用同一個腳本,而不是在不同的運行級中建立一堆腳本的鏈接。這樣讓你不必自己寫新的腳本就能很容易地調整系統。
Debian 開發商Debian project
Debian 以其忠於Unix和自由軟體以及豐富的選擇出名,它的最新版本包含有5萬個軟體包,支持十一種體系結構,從ARM到IBM S390,以及個人電腦上的x86到PowerPC.它的軟包管理工具APT一樣有名.最新發布版本是Debian3.1也叫sarge
Mandriva 開發商 Conectiva
Mandriva Linux的前身是歐洲最大的Linux廠商之一Mandrakesoft,長期以來Mandrake Linux以最為方便、易用、華麗的Linux發行版著稱。Mandrake Linux早期方便的字體安裝工具和默認的中文支持,為Linux普及做出了很大的貢獻。但是2004年前後Mandrakesoft陷入財務危機,瀕臨破產。公司於2005年2月24日與拉丁美洲最大的Linux廠商Conectiva達成了收購協議,金額為170萬歐元,新公司旗下品牌 Mandrake Linux更名為Mandriva Linux。Mandriva以rpm作為軟體管理工具,部分兼容Red Hat Linux/Fedora Core的預編譯包.
SuSE 開發商 Novell
SUSE LINUX是德國的一個發行版,原是以Slackware Linux為基礎,並提供完整德文使用界面的產品,2004年Novell收購了SUSE.
Gentoo
Gentoo Linux為用戶提供了大量的應用程序源代碼。Gentoo Linux的每一部分都可以在最終用戶的系統上重新編譯建造,甚至包括最基本的系統庫和編譯器自身。通過依賴關系描述和源代碼鏡像的形式提供軟體,Gentoo Linux提供了大量軟體供用戶選擇。 標準的源代碼鏡像包括30G的數據。選擇不僅在軟體整體方面,也存在於軟體的內部。由於可以在本地編譯軟體,參數和變數的選擇可以由用戶自己指定。
事實上,在軟體的安裝和升級方面,Gentoo擁有自己獨特的優勢。由於Portage技術的產生,Gentoo Linux可以擔當一個理想的安全伺服器、開發平台、專業級桌面應用、游戲伺服器、嵌入式應用等等各種角色。由於其無限制的可配置性,我們甚至可以稱 Gentoo Linux為一個准發行版。
嵌入式式操作系統.
uClinux
uClinux是一種優秀的嵌入式Linux版本。uclinux是一個源碼開放的操作系統,面向沒有MMU(Memory Management Unit)的硬體平台。同標准Linux相比,它集成了標准Linux操作系統的穩定性、強大網路功能和出色的文件系,它是完全免費的.
uC/OS II 開發商 Micrium
搶占式實時多任務實時操作系統,可以管理63個任務,開源的嵌式操作系統,商業應用需要得到Micrium公司的授權,
VxWorks 開發商 WindRiver
VxWorks操作系統是美國風河(WindRiver)公司於1983 年設計開發的一種嵌入式實時操作系統(RTOS),是嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在嵌入式實時操作系統領域占據一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通訊、軍事演習、彈道制導、飛機導航等。在美國的 F-16、FA-18 戰斗機、B-2 隱形轟炸機和愛國者導彈上,甚至連1997年7月在火星表面登陸的火星探測器上也使用到了VxWorks
VxWorks 的實時性做得非常好,其系統本身的開銷很小,進程調度、進程間通信、中斷處理等系統公用程序精練而有效,它們造成的延遲很短。
PalmOS 開發商 PalmSource,Inc
早期由US Robotics(其後被3Com收購,再獨立改名為Palm公司)研製的專門用於其產品"Palm"的操作系統。主要用於PDA產器
WindowsCE 開發商 Microsoft
它是微軟針對個人電腦以外的電腦產品所研發的嵌入式操作系統,而CE則為Customer Embedded的縮寫。
⑺ 電腦的操作系統有哪些那種的性能最好最安全
Windows 開發商 Microsoft
Windows98/me
Windows2000/XP
Windows Server2003
Windows Vista
Windows98/me是基於MS-DOS的混合的16/32位操作系統正慢慢的退出PC舞台了,2000/X
P以及Server2003都是基於WindowsNT的32位操作系統,XP/Server2003已經有64位版本了。
Vista是微軟最新開發的版本預計在2006年推出。主要支持Intel,AMD,後來增加了對Power
PC,MIPS的支持。微軟的操作系統基本上統治了個人PC市場,大概佔了90%的市場份額。
UNIX-like
AIX 開發商 IBM
AIX是Advanced Interactive eXecutive的簡稱,它是IBM 公司的UNIX操作系統,整個
系統的設計從網路、主機硬體系統,到操作系統完全遵守開放系統的原則.
RS/6000 採用IBM 的UNIX操作系統-AIX作為其操作系統.這是一個目前操作系統界最成
功,應用領域最廣,最開放的第二代的UNIX系統。它特別適合於做關鍵數據處理(CRITIC
AL).
支持PowerPC POWER處理器.
目前的版本是AIX 5L 5.3,
支持64棵處理器,2TB內存,16TB JFS2文件系統,16TB JFS2文件.
HP-UX 開發商 HP
惠普公司在1996年隨著推出64位PA-8000處理器,開始了64位技術的實施計劃,它形成
了工業界運算最快的商業和工程技術應用伺服器的基礎。為了與先進的硬體配套,惠普公
司已經逐步地把64位功能放入惠普公司在工業界領先的UNIX操作系統HP-UX。HP-UX 10.10
和10.20分別具有非常大的文件系統和文件。
HP-UX 11.00也有32位版本,使得基於32位PA-7X00系統也可以得到HP-UX 11.00的新功
能和特色;基於PA-8X00的K系列和T系列系統的客戶要在HP-UX的32位或64位版本之間做出選
擇。惠普公司單機系統性能在工業界領先(39,469TPMS)的V系列系統,只可以運行64位的H
P-UX 11.00。
主要運行於HP公司的PA-系列處理器以及Intel的安騰系列處理器上.
最新的版本HP-UX 11i v2.
可以管理128棵處理器,1TB內存,32TB文件系統,最大2TB的文件。
IRIX 開發商 SGI
SGI公司最早是專門生產圖形顯示終端的, OpenGL標准便是由SGI提出來的.公司開發的
這個操作系統是主要運行在基於MIPS處理器的圖形工作站上,1992年SGI收購了MIPS,1998年
MIPS又脫離了SGI成立MIPS技術公司.2003年SGI推出了基於Linux的Altix系列操作系統.
Mac OS X 開發商 Apple
Apple公司的Macintosh機上的操作系統, 蘋果機主要用於圖形領域,在圖形處理領域占
有很大市場份額。Mac OS是首個在商用領域成功的圖形用戶界操作系統。Mac OS9及以前的
版本都在搭在蘋果機上銷售的。它不支持其它設備,每當有新的設備時都要通過添加擴展
來支持設備。新的Mac OS X結合BSDUnix、NeXTStep和Mac OS 9的元素。採用Unix風格的內
存管理和搶占式多任務處理,它的最底層建基於BSDUnix的內核,實行的是部分開放源代碼
。
現行的最新的系統版本是Mac OS X v10.4.2。
只能運行在PowerPC G3以上處理器的蘋果機上,蘋果公司正在跟Intel合作,表示以後
蘋果機會採用x86處理器。
Solaris 開發商 SUN
最早也是基於BSD Unix開發的,那時就直接叫Sun OS,從Sun OS5以後就以Solaris的
名字面市,從Solaris10開始它也是免費開源的軟體了,開始主要是為SPARC和x86寫的,後來
經過一些改動也可以支持一大批的處理器.Solaris10開始支持64位處理器.
FreeBSD 開發者 Nate Williams,Rod Grimes,Jordan Hubbard.
Bill Jolitz的 386BSD發展形成3個分支FreeBSD,NetBSD,OpenBSD了,這些都是免費的
開源操作系統。第一張FreeBSD光碟是在1993年12月發布的。
FreeBSD 是一個在個人電腦上執行的作業系統,主要支持x86處理器,其他跟 Intel 相
容的 CPU 如 AMD 跟 Cyrix也被支持。
FreeBSD 能提供你許多昂貴工作站才有的先進功能,這些特色包括:
搶占式多任務處理.
完整的 TCP/IP 網路功能 包含 SLIP, PPP, NFS 跟 NIS。
內存保護(Memory protection) 能確保一個使用者不能打擾其他人。而一個應用程式
也不能影響其他的程式。
標準的 X 視窗系統 (X Window, X11R6) 提供良好的圖形用戶介面(GUI)以便在一般的
VGA 顯示卡以及螢幕上使用, 並且提供完整的原始程式碼。
能直接執行在其他作業系統 (如 SCO, BSDI, NetBSD, Linux 跟 386BSD)上編譯的 (
Binary) 程式。
數以千計 可以直接執行(ready-to-run) 的應用程式, 可以在 FreeBSD ports 及 pa
ckages 中找到。 免去你上網路到處找軟體的苦境。
需要時才置換的虛擬記憶體(Demand paged virtual memory 以及合理的虛擬記憶體及
檔案緩沖區之緩沖功能(merged VM/buffer cache)
NetBSD 開發者 NetBSD小組
NetBSD是一種完全免費的類UNIX操作系統,它是一個重於誇平台應用的BSD分支,它支
持50多種硬體平台,具有高度可移植性和硬體平台兼容性.它可以運行在從64位alpha伺服器
到手持設備的多種硬體平台上.NetBSD的清晰設計以及它的眾多高級特性使得它不論作為產
品還是研究環境都表現得非常出色。而且它對用戶在資源上進行全方位的支持。其上的應
用程序很多都可以非常容易地獲得。
OpenBSD 開發者 由NetBSD的前核心成員Theo de Raddt領導的一個開發小組。
OpenBSD由NetBSD分支出的計劃,
它是一個免費、多平台、基於4.4BSD的類Unix操作系統。目標在於強調正確性、安全
性、標准化以及可移植性。著重於安全性,致力於成為最安全的操作系統。OpenBSD支持包
括SVR4(Solaris),FreeBSD,Linux,BSDI,SunOS和HPUX等大部分二進制的模擬。
Linux
RedHat/Fedora 開發商 RedHat.Inc
Redhat linux是最早的Linux發行版本之一,也是最早使用軟體管理包RPM的Linux版本
, Redhat 自9.0以後,不再發布桌面版的,而是把這個項目與開源社區合作,於是就有了
Fedora 這個 Linux 發行版。最新版本是FC4.0.
Slackware 開發商Slackware Linux, Inc
Slackware Linux是由Patrick Volkerding開發的GNU/Linux發行版。與很多其他的發
行版不同,它堅持KISS(Keep It Simple Stupid)的原則,就是說沒有任何配置系統的圖形
界面工具。一開始,配置系統會有一些困難,但是更有經驗的用戶會喜歡這種方式的透明
性和靈活性。
Slackware Linux的另一個突出的特性也符合KISS原則:Slackware沒有如RPM之類的成
熟的軟體包管理器。Slackware的軟體包都是通常的tgz(tar/gzip)格式文件再加上安裝腳
本。Tgz對於有經驗的用戶來說,比RPM更為強大,並避免了RPM之類管理器的依賴性問題。
Slackware還有一個眾所周知的特性就是BSD風格的初始化腳本。Slackware對所有的運行級
(runlevel)/任務都用同一個腳本,而不是在不同的運行級中建立一堆腳本的鏈接。這樣讓
你不必自己寫新的腳本就能很容易地調整系統。
Debian 開發商Debian project
Debian 以其忠於Unix和自由軟體以及豐富的選擇出名,它的最新版本包含有5萬個軟體
包,支持十一種體系結構,從ARM到IBM S390,以及個人電腦上的x86到PowerPC.它的軟包管理
工具APT一樣有名.最新發布版本是Debian3.1也叫sarge
Mandriva 開發商 Conectiva
Mandriva Linux的前身是歐洲最大的Linux廠商之一Mandrakesoft,長期以來Mandrak
e Linux以最為方便、易用、華麗的Linux發行版著稱。Mandrake Linux早期方便的字體安
裝工具和默認的中文支持,為Linux普及做出了很大的貢獻。但是2004年前後Mandrakesof
t陷入財務危機,瀕臨破產。公司於2005年2月24日與拉丁美洲最大的Linux廠商Conectiva
達成了收購協議,金額為170萬歐元,新公司旗下品牌Mandrake Linux更名為Mandriva Li
nux。Mandriva以rpm作為軟體管理工具,部分兼容Red Hat Linux/Fedora Core的預編譯包
.
SuSE 開發商 Novell
SUSE LINUX是德國的一個發行版,原是以Slackware Linux為基礎,並提供完整德文使
用界面的產品,2004年Novell收購了SUSE.
Gentoo
Gentoo Linux為用戶提供了大量的應用程序源代碼。Gentoo Linux的每一部分都可以
在最終用戶的系統上重新編譯建造,甚至包括最基本的系統庫和編譯器自身。 通過依賴關
系描述和源代碼鏡像的形式提供軟體,Gentoo Linux提供了大量軟體供用戶選擇。 標準的
源代碼鏡像包括30G的數據。 選擇不僅在軟體整體方面,也存在於軟體的內部。由於可以
在本地編譯軟體,參數和變數的選擇可以由用戶自己指定。
事實上,在軟體的安裝和升級方面,Gentoo擁有自己獨特的優勢。由於Portage技術的
產生,Gentoo Linux可以擔當一個理想的安全伺服器、開發平台、專業級桌面應用、游戲
伺服器、嵌入式應用等等各種角色。由於其無限制的可配置性,我們甚至可以稱Gentoo L
inux為一個准發行版。
嵌入式式操作系統.
uClinux
uClinux是一種優秀的嵌入式Linux版本。uclinux是一個源碼開放的操作系統,面向沒
有MMU(Memory Management Unit)的硬體平台。同標准Linux相比,它集成了標准Linux操
作系統的穩定性、強大網路功能和出色的文件系,它是完全免費的.
uC/OS II 開發商 Micrium
搶占式實時多任務實時操作系統,可以管理63個任務,開源的嵌式操作系統,商業應用需
要得到Micrium公司的授權,
VxWorks 開發商 WindRiver
VxWorks操作系統是美國風河(WindRiver)公司於1983年設計開發的一種嵌入式實時操
作系統(RTOS),是嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內
核以及友好的用戶開發環境,在嵌入式實時操作系統領域占據一席之地。它以其良好的可
靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求
極高的領域中,如衛星通訊、軍事演習、彈道制導、飛機導航等。在美國的 F-16、FA-18
戰斗機、B-2 隱形轟炸機和愛國者導彈上,甚至連1997年7月在火星表面登陸的火星探測
器上也使用到了VxWorks
VxWorks 的實時性做得非常好,其系統本身的開銷很小,進程調度、進程間通信、中
斷處理等系統公用程序精練而有效,它們造成的延遲很短。
PalmOS 開發商 PalmSource,Inc
早期由US Robotics(其後被3Com收購,再獨立改名為Palm公司)研製的專門用於其產
品"Palm"的操作系統。主要用於PDA產器
WindowsCE 開發商 Microsoft
它是微軟針對個人電腦以外的電腦產品所研發的嵌入式操作系統,而CE則為Customer
Embedded的縮寫。
⑻ 介紹幾種主流嵌入式操作系統的特點,並分析比較 哥們,我現在糾結這個問題,可以給點指點嗎
如果你是學習階段的話,那LINUX和UCOS-II是比較合適的
uc/os和uclinux操作系統是兩種性能優良源碼公開且被廣泛應用的的免費嵌入式操作系統,可以作為研究實時操作系統和非實時操作系統的典範。本文通過對 uc/os和uclinux的對比,分析和總結了嵌入式操作系統應用中的若乾重要問題,歸納了嵌入式系統開發中操作系統的選型依據。
兩種開源嵌入式操作系統介紹
uc/os和uclinux操作系統,是當前得到廣泛應用的兩種免費且公開源碼的嵌入式操作系統。uc/os適合小型控制系統,具有執行效率高、佔用空間小、實時性能優良和可擴展性強等特點,最小內核可編譯至2k。uclinux則是繼承標准linux 的優良特性,針對嵌入式處理器的特點設計的一種操作系統,具有內嵌網路協議、支持多種文件系統,開發者可利用標准linux先驗知識等優勢。其編譯後目標文件可控制在幾百k量級。
uc/os是一種免費公開源代碼、結構小巧、具有可剝奪實時內核的實時操作系統。其內核提供任務調度與管理、時間管理、任務間同步與通信、內存管理和中斷服務等功能。
uclinux是一種優秀的嵌入式linux版本。uclinux是micro-conrol-linux的縮寫。同標准linux相比,它集成了標准linux操作系統的穩定性、強大網路功能和出色的文件系統等主要優點。但是由於沒有mmu(內存管理單元),其多任務的實現需要一定技巧。
兩種嵌入式操作系統主要性能比較
嵌入式操作系統是嵌入式系統軟硬體資源的控制中心,它以盡量合理的有效方法組織多個用戶共享嵌入式系統的各種資源。其中用戶指的是系統程序之上的所有軟體。所謂合理有效的方法,指的就是操作系統如何協調並充分利用硬體資源來實現多任務。復雜的操作系統都支持文件系統,方便組織文件並易於對其規范化操作。
嵌入式操作系統還有一個特點就是針對不同的平台,系統不是直接可用的,一般需要經過針對專門平台的移植操作系統才能正常工作。進程調度、文件系統支持和系統移植是在嵌入式操作系統實際應用中最常見的問題,下文就從這幾個角度入手對uc/os和uclinux進行分析比較。
進程調度
任務調度主要是協調任務對計算機系統內資源(如內存、i/o設備、cpu)的爭奪使用。進程調度又稱為cpu調度,其根本任務是按照某種原則為處於就緒狀態的進程分配cpu。由於嵌入式系統中內存和i/o設備一般都和cpu同時歸屬於某進程,所以任務調度和進程調度概念相近,很多場合不加區分,下文中提到的任務其實就是進程的概念。
進程調度可分為"剝奪型調度"和"非剝奪型調度"兩種基本方式。所謂"非剝奪型調度"是指:一旦某個進程被調度執行,則該進程一直執行下去直至該進程結束,或由於某種原因自行放棄cpu進入等待狀態,才將cpu重新分配給其他進程。所謂"剝奪型調度"是指:一旦就緒狀態中出現優先權更高的進程,或者運行的進程已用滿了規定的時間片時,便立即剝奪當前進程的運行(將其放回就緒狀態),把cpu分配給其他進程
作為實時操作系統,uc/os是採用的可剝奪型實時多任務內核。可剝奪型的實時內核在任何時候都運行就緒了的最高優先順序的任務。uc/os中最多可以支持64 個任務,分別對應優先順序0~63,
其中0為最高優先順序。調度工作的內容可以分為兩部分:最高優先順序任務的尋找和任務切換。
其最高優先順序任務的尋找是通過建立就緒任務表來實現的。uc/os中的每一個任務都有獨立的堆棧空間,並有一個稱為任務控制塊tcb(task control block)數據結構,其中第一個成員變數就是保存的任務堆棧指針。任務調度模塊首先用變數 ostcbhighrdy記錄當前最高級就緒任務的tcb地址,然後調用os_task_sw() 函數來進行任務切換。
uclinux的進程調度沿用了linux的傳統,系統每隔一定時間掛起進程,同時系統產生快速和周期性的時鍾計時中斷,並通過調度函數(定時器處理函數)決定進程什麼時候擁有它的時間片。然後進行相關進程切換,這是通過父進程調用fork 函數生成子進程來實現的。
uclinux系統fork調用完成後,要麼子進程代替父進程執行(此時父進程已經 sleep),直到子進程調用exit退出;要麼調用exec執行一個新的進程,這個時候產生可執行文件的載入,即使這個進程只是父進程的拷貝,這個過程也不可避免。當子進程執行exit或exec後,子進程使用wakeup把父進程喚醒,使父進程繼續往下執行。
uclinux由於沒有mmu管理存儲器,其對內存的訪問是直接的,所有程序中訪問的地址都是實際的物理地址。操作系統隊內存空間沒有保護,各個進程實際上共享一個運行空間。這就需要實現多進程時進行數據保護,也導致了用戶程序使用的空間可能佔用到系統內核空間,這些問題在編程時都需要多加註意,否則容易導致系統崩潰。
由上述分析可以得知,uc/os內核是針對實時系統的要求設計實現的,相對簡單,可以滿足較高的實時性要求。而uclinux則在結構上繼承了標准linux的多任務實現方式,僅針對嵌入式處理器特點進行改良。其要實現實時性效果則需要使系統在實時內核的控制下運行,rt-linux就是可以實現這一個功能的一種實時內核。
文件系統
所謂文件系統是指負責存取和管理文件信息的機構,也可以說是負責文件的建立、撤銷、組織、讀寫、修改、復制及對文件管理所需要的資源(如目錄表、存儲介質等)實施管理的軟體部分。
uc/os是面向中小型嵌入式系統的,如果包含全部功能(信號量、消息郵箱、消息隊列及相關函數),編譯後的uc/os內核僅有6~10kb,所以系統本身並沒有對文件系統的支持。但是uc/os具有良好的擴展性能,如果需要的話也可自行加入文件系統的內容。
uclinux則是繼承了linux完善的文件系統性能。其採用的是romfs文件系統,這種文件系統相對於一般的ext2文件系統要求更少的空間。空間的節約來自於兩個方面,首先內核支持romfs文件系統比支持ext2文件系統需要更少的代碼,其次romfs文件系統相對簡單,在建立文件系統超級塊(superblock)需要更少的存儲空間。romfs文件系統不支持動態擦寫保存,對於系統需要動態保存的數據採用虛擬ram盤的方法進行處理(ram盤將採用ext2文件系統)。
uclinux還繼承了linux網路操作系統的優勢,可以很方便的支持網路文件系統且內嵌tcp/ip協議,這為uclinux開發網路接入設備提供了便利。
由兩種操作系統對文件系統的支持可知,在復雜的需要較多文件處理的嵌入式系統中uclinux是一個不錯的選擇。而uc/os則主要適合一些控制系統。
操作系統的移植
嵌入式操作系統移植的目的是指使操作系統能在某個微處理器或微控制器上運行。uc/os和uclinux都是源碼公開的操作系統,且其結構化設計便於把與處理器相關的部分分離出來,所以被移植到新的處理器上是可能的。
以下對兩種系統的移植分別予以說明。
(1)uc/os的移植
要移植uc/os,目標處理器必須滿足以下要求;
·處理器的c編譯器能產生可重入代碼,且用c語言就可以打開和關閉中斷;
·處理器支持中斷,並能產生定時中斷;
·處理器支持足夠的ram(幾k位元組),作為多任務環境下的任務堆棧;
·處理器有將堆棧指針和其他cpu寄存器讀出和存儲到堆棧或內存中的指令。
在理解了處理器和c編譯器的技術細節後,uc/os的移植只需要修改與處理器相關的代碼就可以了。
具體有如下內容:
·os_cpu.h中需要設置一個常量來標識堆棧增長方向;
·os_cpu.h中需要聲明幾個用於開關中斷和任務切換的宏;
·os_cpu.h中需要針對具體處理器的字長重新定義一系列數據類型;
·os_cpu_a.asm需要改寫4個匯編語言的函數;
·os_cpu_c.c需要用c語言編寫6個簡單函數;
·修改主頭文件include.h,將上面的三個文件和其他自己的頭文件加入。
(2)uclinux的移植
由於uclinux其實是linux針對嵌入式系統的一種改良,其結構比較復雜,相對 uc/os,uclinux的移植也復雜得多。一般而言要移植uclinux,目標處理器除了應滿足上述uc/os應滿足的條件外,還需要具有足夠容量(幾百k位元組以上)外部rom和ram。
uclinux的移植大致可以分為3個層次:
·結構層次的移植,如果待移植處理器的結構不同於任何已經支持的處理器結構,則需要修改linux/arch目錄下相關處理器結構的文件。雖然uclinux內核代碼的大部分是獨立於處理器和其體系結構的,但是其最低級的代碼也是特定於各個系統的。這主要表現在它們的中斷處理上下文、內存映射的維護、任務上下文和初始化過程都是獨特的。這些例行程序位於linux/arch/目錄下。由於linux所支持體系結構的種類繁多,所以對一個新型的體系,其低級常式可以模仿與其相似的體系常式編寫。
·平台層次的移植,如果待移植處理器是某種uclinux已支持體系的分支處理器,則需要在相關體系結構目錄下建立相應目錄並編寫相應代碼。如mc68ez328就是基於無mmu的m68k內核的。此時的移植需要創建 linux/arch/m68knommu/platform/ mc68ez328目錄並在其下編寫跟蹤程序(實現用戶程序到內核函數的介面等功能)、中斷控制調度程序和向量初始化程序等。
·板級移植,如果你所用處理器已被uclinux支持的話,就只需要板級移植了。板級移植需要在linux/arch/?platform/中建立一個相應板的目錄,再在其中建立相應的啟動代碼crt0_rom.s或crt0_ram.s和鏈接描述文檔rom.ld或ram.ld就可以了。板級移植還包括驅動程序的編寫和環境變數設置等內容。
結語
通過對uc/os和uclinux的比較,可以看出這兩種操作系統在應用方面各有優劣。 uc/os佔用空間少,執行效率高,實時性能優良,且針對新處理器的移植相對簡單。uclinux則佔用空間相對較大,實時性能一般,針對新處理器的移植相對復雜。但是,uclinux具有對多種文件系統的支持能力、內嵌了tcp/ip協議,可以借鑒linux豐富的資源,對一些復雜的應用,uclinux具有相當優勢。例如cisco 公司的 2500/3000/4000 路由器就是基於uclinux操作系統開發的。總之,操作系統的選擇是由嵌入式系統的需求決定的。簡單的說就是,小型控制系統可充分利用uc/os小巧且實時性強的優勢,如果開發pda和互聯網連接終端等較為復雜的系統則uclinux是不錯的選擇。
還有就是如果從開發的工具方便好用,易用的角度來看,那些收費的系統用起來更爽一些
⑼ 什麼是UCLINUX概述一下
uclinux表示micro-control linux.即「微控制器領域中的Linux系統」,是Lineo公司的主打產品,同時也是開放源碼的嵌入式Linux的典範之作。uCLinux主要是針對目標處理器沒有存儲管理單元MMU(Memory Management Unit)的嵌入式系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。