❶ 嵌入式linux系統開發平台有幾種形式請分別給出示意圖
一、之所以選linux平台,是因為我們可以在linux平台上編譯嵌入式linux內核、軟體,linux也是用C寫的,在linux平台上能更好的運用編譯工具(雖然有些能在windows上用:gvim之類的)
❷ 什麼是linux嵌入式開發,有那些內容
嵌入式的linux主要有幾點:
1)你要學會根據你硬體電路及應用的需要對內核進行裁減。
2)學會安裝linux系統及為了嵌入式應用而需要的相關軟體,如GCC編譯器,交叉編譯工具,TFTP伺服器等,這些東西的操作和windows有挺大區別的。
3)找本linux C編程的書,學一下linux中C的編程以及編譯的方法,其中Makefile的製作是其與其他系統區別較大的。
4)學會根據電路修改你的bootloader,現在一般是標準的硬體,往往可以省略了
5)其實內核的移植也是挺重要的,不過往往做核心板的人已經幫你做好了
6)嘗試如何使用bootloader下載程序,包括串口,乙太網等方式。
7)當然學習使用Qt做界面也是必不可少的。
8)。。。。。。。
❸ 如何選擇嵌入式Linux開發工具
嵌入式Linux具有穩定、可伸縮及開放源代碼等特點,可兼容多種處理器和主機,廣泛適用於各種產品和應用。但是,交叉編譯、設備驅動程序開發/調試,以及更小尺寸等要求對嵌入式Linux開發者來說都是嚴峻的挑戰。為應對這些挑戰,針對嵌入式Linux開發的專用工具應運而生,而且發展十分迅猛。
但是,許多這類開發工具都不兼容非X86平台,而且也沒有很好地實現歸檔備案或集成。在其它開發環境下,組件間的高度集成並沒有完全兌現。因此,要想完全從這些免費的軟體組件開始創建一個完整的跨平台開發環境,開發者應意識到這將需要大量的調研、實施、培訓和維護方面的工作。
Linux是少數既可以在嵌入式設備上運行也可作為開發環境的操作系統之一。這一特性可讓開發者在轉向此開發系統之前於常用硬體(比如X86桌面系統)之上開發、調試和測試應用程序和庫,因此可減少對標准參考平台和指令集模擬器的依賴。這一技術僅適用於應用程序和庫,但不適用於設備驅動程序,因為後者的開發依賴於Linux架構。
開放源代碼團體及一些軟體供應商可提供設備驅動程序開發工具。由於設備驅動程序比標准應用程序距離硬體更近,因此它們的開發比較困難。所幸的
是,Linux桌面系統可以利用一些Windows及其它操作系統所沒有的工具。有足夠經驗開發設備驅動程序的開發人員可能已經習慣將
Linux作為他們的桌面開發系統了。
Linux的快速發展及其桌面方案的不斷涌現提出了一個重要問題:所選擇的工具方案怎樣在不同的Linux分布式系統上運行?它們依賴於主機平台的軟體配置嗎?
有些Linux工具提供獨立於主機平台的開發環境,包括一系列可支持開發工具的應用軟體、庫和實用程序。這一方法幾乎將開發環境與主機配置完全隔離開來,因此主機可以是任何Linux分布式系統,而且任何更新和修改都不會影響開發環境的功能。
這種方法的主要缺點是對存儲空間的要求有所增加――約200MB,因為它自己實際上相當於一個微型Linux分布式系統。
可用的工具
一個嵌入式Linux產品的開發需要幾個階段,包括為目標板配置和構建基本Linux OS;調試應用程序、庫、內核及設備驅動程序/內核模塊;出貨前最終方案的優化、測試和驗證。
有數百種開放源代碼開發工具可供選擇。只要開發者原意花時間和精力去調研、實施和維護一系列各不相同的工具,總能找出一個完整的解決方案,完成幾乎任何開發任務。圖1:開發者必須精確地考慮到這些工具的鬆散集合能提供什麼樣的功能,以及需要付出多大的努力才能形成完整的解決方案。
在Linux應用程序和庫的調試方面,GNU Debugger(GDB)作為一種標准已有幾年的歷史。它是一種命令行程序,由多個不同的圖形用戶界面前端予以支持,每個前端都能以多種方式提供調試控制功能。盡管GDB不是一個完美的方案,但它足夠應對各種調試任務,而且已經得到開放源代碼團體的廣泛支持。
Linux內核或設備驅動程序的調試要比應用程序的調試繁瑣得多。
在做調研時,以下方面應特別注意:
什麼調試方法支持要開發產品的硬體?需要什麼內核補丁程序?還需要其它什麼補丁程序?調試界面怎麼樣,如何使用?該工具需要調試內核模塊及處理虛擬地址轉換嗎?還需要其它什麼工具才能提供完整的方案?
經過進一步的調查,開發者往往發現工具A和工具B並沒有提供完全一致的功能,因為它們是在彼此獨立的情況下開發的。結果,開發者必須精確地考慮到這些工具的鬆散集合能提供什麼樣的功能,還需要付出多大的努力才能形成完整的解決方案。
如果不同處理器類型間的集成、可用性、互操作性和移植性很關鍵的話,開發者應考慮購買商用開發工具。這主要是因為將開發一個「免費」方案所付出的努力考慮進去,商用開發工具並不算貴。
Linux BSP
Linux系統有兩大主要部分:帶設備驅動程序的Linux內核;以及根文件系統,包括系統所需的全部支持應用程序、服務和庫。除了駐留在目標
板上的OS組件外,還需要創建一個由GNU Compiler
Collection構成的交叉編譯環境,為庫和二進製程序(binutils)提供支持。
雖然幾乎每一個組件都可在網上找到,但在硬體或設備驅動程序支持、集成測試信息、交叉編譯指南或軟體兼容性方面卻很難收集到太多信息。盡管開發
者可從網上免費下載各種組件以配置嵌入式Linux操作系統,但每個組件在版本、支持、穩定性和測試等方面的狀態則需要開發者自己決定。然後,開發者還要
完成最後的OS集成和測試,以及為所開發產品提供終身Linux OS維護。
另一方面,嵌入式Linux供應商所提供的商用Linux板支持工具包一般都是經過預先安裝和測試的,而且提供支持和維護。其它須考慮的因素包括Linux桌面主機將會添加不同的庫和內核功能,以及由於組織內的開發者變動而引起的長期維護問題。
品質保證部門一般會執行一系列嚴格的驗證和性能測試,其中包括存儲器泄漏檢測/糾正、代碼優化和任務跟蹤等。那些想利用開放源代碼工具開發面向
非X86平台的嵌入式Linux產品開發者將會發現這一任務甚至要比選擇開放源代碼調試方案難得多。Linux Trace
Toolkit、Valgrind工具及其它存儲器分析程序可完成部分測試和驗證任務。但總的來說,它們缺乏關鍵特性、集成功能及廣泛的硬體支持。這些開
放源代碼分析工具的評估過程與評估調試方案的過程基本相同。
最後的分析就是,一個設計得恰到好處的開發環境應能夠提供商用和開放源代碼兩個世界所具有的最好特性:
◆交鑰匙開發能力;◆易於使用和集成;◆大型工程組織的協調控制;◆品質和支持保證;◆持續性;◆按照自己的判斷力使用開放源代碼的能力
❹ 現在做嵌入式Linux一般用什麼工具鏈有Windows下的開發工具嗎
沒有 ,都是標準的GNU工具連,gcc \ld 等等
❺ 嵌入式Linux系統開發有哪些
嵌入式Linux(Embedded Linux)是標准Linux經過小型化裁剪處理之後的專用Linux操作系統,能夠固化於容量只有幾KB或者幾MB的存儲器晶元或者單片機中,適合於特定嵌入式應用場合。目前已經開發成功的嵌入式系統中,大約一半的系統使用嵌入式Linux。
這與它的父輩 — Linux自身的優良特性是分不開的。
❻ 在linux下用C語言做嵌入式開發 一般用什麼IDE開發工具
linux下,一般都是用的是編輯器:vi 寫代碼,寫make編譯器:gcc 不用說了吧調試器:GDB -------------------------------------------要用到方便的圖形界面的IDE呢用eclipse + CDT + GCC + GDB 配置開發環境有點麻煩,不過只要配置好呢開發效率都幾不錯的.找到在windows下開發的感覺. 用eclipse + CDT, makefile的可以自動生成的.
❼ linux開發嵌入式系統要裝什麼工具
我X,六月旅者你害人啊!
樓主,你至少需要一套較差編譯環境。
這個環境最簡單的是 gcc + glibc + linux-header + make 。另外還要看你的目標環境。
另外目標設備也是問題,可以是模擬器,也可以是開發板。arm、power、mips、x86 架構都可以成為嵌入式開發的目標。
具體的搭配,要看你實際的要求了。
一般裝一套 Fedora Linux ,之後安裝他的開發部分(新手這樣省事……)。Fedora 版本選擇建議選擇最新版 - 1 或者 -2 的版本。比如現在 Fedora 最新的是 11 。那你就選擇 Fedora 10 或者 Fedora 9 。這是為了保證你找到某些資料不會因為系統太新而不能用。如果你確定你能找到最新的資料,那麼直接用最新版即可。
之後自己手工編譯較差編譯環境。這個建議網上找資料搞定。
工具版本的選擇,也是個看情況的東西。
比如 gcc 建議 3.2 3.4 或者 4.2 。非常古老的環境要求,可以選擇 gcc 2.95(大概 10年前的)。現在 gcc 4.4.1 是最新版。
內核也有 2.4 系列和 2.6 系列選擇,每個系列都有無數的小版本可以選擇。kernel-header 就要根據你目標內核選擇了。
binutils 一般配合 gcc 出現時間選擇即可。
glibc 是所有軟體的基礎,太新的舊軟體不支持,太舊了新軟體不支持。
剩下的還有 gdb 調試器,或者其他的輔助程序了。
宿主系統也需要很多附加的軟體來支持嵌入式開發,比如 sed 、diff、patch、cvs或者svn或者git ,都是某些輔助需要的。
總的來說就是普通台式機開發的全套東西 + 目標系統需要的交叉編譯器和調試器。
這些工具都需要按情況准備的……
❽ 學習linux嵌入式開發什麼軟體好
用Linux平台就行了,C語言一定要學好,指針一定要明確,像指針數組、數組指針、指針函數、函數指針數組、函數返回值是個指針,結構體指針(主要是鏈表)、文件操作指針(FILE *其實是typedef結構體的指針)等,要靈活運用typedef 定義類型、靈活運用結構體。
再學習Linux的系統編程,主要是文件操作,文件描述符fd,對文件的操作write,read,open.close等,然後學習進程fork();vfork();創建進程和管理父子進程,進程之間的通信無名管道、命名管道、消息隊列、共享內存、信號量、套接字等;都掌握之後要學線程以及線程的互斥和同步,線程之間共享進程的資源,就要對資源進行合理的分配,例如信號量sem和線程互斥鎖pthread_mutex,信號是用來檢測信號的ISGNAL的,常見的信號例如ctrl+c,中斷前台的進程和kill中斷後台的進程,如果對網路感興趣,可以學習下Linux的網路套接子Socket,實現多台主機之間進程的通信,例如QQ和IPMSG都是對網路套接字的操作,熟悉一下TCP、UDP協議和TFTP、HTTP的網路層的傳輸協議,個人覺得解析buff最費時間,可以自己做一下IPMSG,單用戶和並發server,echo伺服器。
感興趣GUI的可以學習一下C++和Qt,Qt被nokia收購,nokia被微軟收購,Qt支持很多的平台,很實用,C++主要是對類的操作,和C中的結構體相似,class 類名{};// 聲明類class 類名:繼承方式 基類{};//繼承類類中包含私有成員、公有成員、受保護的成員,類是對事物共性的一種抽象,對象是共性的一種實體化,是類的一個實例,老師的共性是:教書,吃飯,睡覺等,可以抽象成一個類,個性是年齡、性別、名字等,是老師類的一個實例,C++還有很多的內容,Qt是用C++來寫的,其中的窗口都是派生於QWidget的,具體的不多說了。
學完C++和Qt,有了面向對象的概念後,可以去學Java和android系統,做手機的應用軟體和游戲開發,和Java 和C++類似,去掉c++中指針部分,完全脫離了內存的操作,完全的面向對象,android和Qt類似,具體內容不多說了。
說說底層的吧:
底層主要用到的是C語言和arm匯編主要是v4版本以後的匯編標准語言,首先清楚底層是怎麼引導Linux系統的,嵌入式很大一部分使用縮減版的Linux內核主要是穩定版本的,千萬不要去追求最新,最適合的才是最好的,前部分由匯編語言引導C語言,主要設置開發板軟硬體的環境,主要是bootloader(vivi、uboot.bin),然後把設置好的param參數傳給內核,內核調用這些參數去找相應的文件,進行相應的操作,然後就是Linux的根文件系統了,最後是軟體的移植。
用到的軟體:vmplayer (Linux redenterp版)、windows下的超級終端,LSJF24X0.exe(下載bootloader時使用,也可以用H-Jtag)、tftpd32.exe(做windows下的server用,用於u-boot網線下載)等工具。
以上是個人的體會,僅供參考!
❾ linux下嵌入式開發工程中 常用到的工具有哪些比如CRT、文件校對工具
串口調試工具,secureCRT,寫ARM程序的話要裝KeiluVision4.代碼編輯器的話用Sourceinsight
❿ 在linux操作系統下嵌入式開發工具用哪個比較好linux操作系統下的C/c++界面編程工具有哪些
linux下面的C/C++圖形界面的話可以考慮QT!QT的應用范圍還是比較廣