www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]微機原理:理解ARM微處理器的工作原理操作系統(tǒng)原理:理解Linux操作系統(tǒng)的工作原理電子技術(shù)基礎(chǔ):理解基于ARM的嵌入式設(shè)備的電路原理圖,編寫Linux驅(qū)動程序的基礎(chǔ)匯編語言:

微機原理:理解ARM微處理器的工作原理

操作系統(tǒng)原理:理解Linux操作系統(tǒng)的工作原理

電子技術(shù)基礎(chǔ):理解基于ARM的嵌入式設(shè)備的電路原理圖,編寫Linux驅(qū)動程序的基礎(chǔ)

匯編語言:閱讀、編寫B(tài)ootloader和Linux內(nèi)核源代碼(包括驅(qū)動程序)

C語言:閱讀、編寫B(tài)ootloader和Linux內(nèi)核源代碼(包括驅(qū)動程序),閱讀、編寫Linux應(yīng)用程序

C++語言:閱讀、編寫Linux圖形應(yīng)用程序

(Java語言:Android編程)

設(shè)計一個ARM+Linux設(shè)備,分為硬件設(shè)計和軟件設(shè)計。硬件設(shè)計不用多說,軟件設(shè)計是我們討論的重點?;贏RM的嵌入式設(shè)備,實際上就是一種簡化版的電腦加上特定功能的硬件。通用的PC在開機啟動時,首先會運行主板上的BIOS,然后才啟動操作系統(tǒng);對應(yīng)于ARM設(shè)備,開機時首先啟動 Bootloader,初始化硬件,然后Bootloader將Linux內(nèi)核(2MBytes左右)搬到內(nèi)存中,然后Linux在內(nèi)存中運行,接管整個設(shè)備的管理運行。所以學(xué)習(xí)嵌入式Linux,首先要學(xué)習(xí)Bootloader。

Linux用的Bootloader種類比較多,都是開放源代碼的,現(xiàn)在比較流行用u-boot。Bootloader的源代碼是用匯編語言和C語言編寫的,所以要有匯編語言和C語言基礎(chǔ),匯編語言代碼在全部代碼中僅占1%的比例,絕大部分代碼是C語言代碼。Bootloader代碼經(jīng)過編譯器編譯成ARM可執(zhí)行的映像文件,大小在幾十kBytes至幾百kBytes。這個映像文件通過專用的接口(JTAG)和專用的軟件燒寫到ARM的 FlashROM上。在網(wǎng)上可以下載Bootloader源代碼,因為每一種嵌入式設(shè)備的硬件不盡相同,所以下載來的源代碼不一定完全適用于當(dāng)前的硬件,要根據(jù)硬件的配置對Bootloader源代碼進行一些修改,這一步叫做Bootloader的移植。

學(xué)完Bootloader移植,下一步就是Linux內(nèi)核的移植和驅(qū)動程序的編寫。與Bootloader類似,Linux內(nèi)核的移植也是根據(jù)硬件情況對Linux內(nèi)核源代碼進行修改,讓Linux內(nèi)核能在硬件開發(fā)板上運行起來。Linux內(nèi)核源代碼可到相關(guān)網(wǎng)站下載,移植的過程主要是針對核心硬件(MPU、內(nèi)存、FlashROM)修改Linux內(nèi)核源代碼,讓Linux內(nèi)核能在開發(fā)板上運行起來。Linux內(nèi)核源代碼修改完成后,經(jīng)過編譯生成 Linux內(nèi)核映像文件,可在開發(fā)板的內(nèi)存中運行;Linux內(nèi)核映像文件并不大,一般在2MBytes左右。Linux內(nèi)核移植完成后,雖然Linux 已可在硬件上運行,但是很多外圍硬件(如LCD、鍵盤、鼠標(biāo)等)并沒有被驅(qū)動起來,所以下一步就是外圍硬件的驅(qū)動程序編寫。與PC上常用的Windows 操作系統(tǒng)不同,Linux的驅(qū)動程序是在內(nèi)核里面的,不能像Windows那樣方便地安裝硬件驅(qū)動程序。Linux硬件驅(qū)動程序代碼寫好后,放在內(nèi)核源代碼中,再重新編譯Linux內(nèi)核,重新運行內(nèi)核后才能在Linux上操作對應(yīng)硬件。

Linux的文件系統(tǒng)與Windows也不相同。Windows的內(nèi)核和文件系統(tǒng)是一體的,在WIndows的資源管理器中可查看全部內(nèi)核文件和應(yīng)用程序文件。Linux內(nèi)核是一個單獨的文件,而所有應(yīng)用程序卻都放在一個稱為文件系統(tǒng)的文件包內(nèi),這樣做的好處是內(nèi)核和應(yīng)用程序是分割開的,利于內(nèi)核的穩(wěn)定,即使應(yīng)用程序崩潰了,也不會影響到內(nèi)核,在文件系統(tǒng)中處理應(yīng)用文件時也不會誤刪除內(nèi)核,所以Linux比Windows穩(wěn)定得多。類似于 Windows中的磁盤分區(qū),Linux內(nèi)核映像占一個單獨分區(qū),文件系統(tǒng)必須在別的分區(qū)上。Linux內(nèi)核運行以后,會尋找文件系統(tǒng)對應(yīng)的那個包(分區(qū)),并掛載這個包,稱作文件系統(tǒng)掛載。文件系統(tǒng)掛載上以后,可以用與Windows資源管理器類似的方法管理應(yīng)用程序,但管理不了內(nèi)核的任何細(xì)節(jié)。文件系統(tǒng)里的所有文件都是通過目錄和文件方式管理的。

再下來就是應(yīng)用程序的編寫了。Linux的應(yīng)用程序分有圖形顯示的應(yīng)用程序和無圖形顯示的應(yīng)用程序。無圖形顯示的應(yīng)用程序運行起來就像在 Windows的“命令提示符”界面中運行,不需要在顯示屏上顯示任何內(nèi)容,或僅需要顯示一些簡單字符,這類程序在嵌入式領(lǐng)域用途廣泛,因為很多嵌入式設(shè)備是沒有LCD顯示屏的。有圖形顯示的應(yīng)用程序是在有LCD顯示屏的嵌入式設(shè)備上運行的,例如手機。

無圖形顯示的應(yīng)用程序主要用C語言編寫,直接利用Linux內(nèi)核提供的編程接口完成各種功能。C語言程序可以實現(xiàn)很多功能,就算是多線程、多進程也都可輕松搞定。Linux內(nèi)核提供的編程接口都是C語言可直接調(diào)用的函數(shù),實際上Linux這種操作系統(tǒng)編程就是C語言編程。

有圖形的應(yīng)用程序編寫相對復(fù)雜一些。Linux本身的編程是基于C語言的,要想讓Linux有圖形顯示,必須給Linux加上一個圖形用戶界面(GUI),Linux的GUI現(xiàn)在有很多,桌面Linux用的有Gnome、KDE等,嵌入式Linux用Qt、MiniGUI等。這些GUI實際上都是在內(nèi)核提供的C編程接口的基礎(chǔ)上封裝一些圖形接口,然后做成圖形庫供應(yīng)用程序調(diào)用。Linux的GUI多是開放源代碼的,也有一些商用GUI不開放源代碼。我們可以下載GUI的源代碼,然后用編譯器編譯成庫文件,然后將這些庫文件放到文件系統(tǒng)的特定目錄下。GUI實際上是應(yīng)用程序的一部分,而不屬于 Linux內(nèi)核。GUI提供的編程接口多為C/C++接口,所以圖形應(yīng)用程序常用C語言或C++語言編寫。也有特殊的如Android,提供的是Java 編程接口。所以圖形應(yīng)用程序編寫需要掌握C/C++編程語言(Java語言)。

通過上面的介紹,想學(xué)嵌入式Linux的朋友們,可以根據(jù)自己的情況以及工作的要求,決定自己在嵌入式Linux上的發(fā)展方向,或去補充自己的不足,以便進一步學(xué)習(xí)嵌入式Linux。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉