久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1643|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

嵌入式學(xué)習(xí)基礎(chǔ)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:183246 發(fā)表于 2017-3-30 17:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
微機(jī)原理:理解ARM微處理器的工作原理
操作系統(tǒng)原理:理解Linux操作系統(tǒng)的工作原理
電子技術(shù)基礎(chǔ):理解基于ARM的嵌入式設(shè)備的電路原理圖,編寫Linux驅(qū)動(dòng)程序的基礎(chǔ)
匯編語言:閱讀、編寫B(tài)ootloader和Linux內(nèi)核源代碼(包括驅(qū)動(dòng)程序)
C語言:閱讀、編寫B(tài)ootloader和Linux內(nèi)核源代碼(包括驅(qū)動(dòng)程序),閱讀、編寫Linux應(yīng)用程序
C++語言:閱讀、編寫Linux圖形應(yīng)用程序
Java語言:Android編程

設(shè)計(jì)一個(gè)ARM+Linux設(shè)備,分為硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)不用多說,軟件設(shè)計(jì)是我們討論的重點(diǎn)。基于ARM的嵌入式設(shè)備,實(shí)際上就是一種簡(jiǎn)化版的電腦加上特定功能的硬件。通用的PC在開機(jī)啟動(dòng)時(shí),首先會(huì)運(yùn)行主板上的BIOS,然后才啟動(dòng)操作系統(tǒng);對(duì)應(yīng)于ARM設(shè)備,開機(jī)時(shí)首先啟動(dòng) Bootloader,初始化硬件,然后Bootloader將Linux內(nèi)核(2MBytes左右)搬到內(nèi)存中,然后Linux在內(nèi)存中運(yùn)行,接管整個(gè)設(shè)備的管理運(yùn)行。所以學(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。這個(gè)映像文件通過專用的接口(JTAG)和專用的軟件燒寫到ARM的 FlashROM上。在網(wǎng)上可以下載Bootloader源代碼,因?yàn)槊恳环N嵌入式設(shè)備的硬件不盡相同,所以下載來的源代碼不一定完全適用于當(dāng)前的硬件,要根據(jù)硬件的配置對(duì)Bootloader源代碼進(jìn)行一些修改,這一步叫做Bootloader的移植。

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

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

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

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

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


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天做日日做 | 国产一级一片免费播放 | 久久看精品 | 综合网伊人 | 天堂中文资源在线 | 国产精品一区在线观看 | 99re在线视频精品 | 日本人做爰大片免费观看一老师 | 欧美一级黑人aaaaaaa做受 | 国产网站在线播放 | 夜夜草天天草 | 99自拍视频| 中文字幕免费 | 国产色婷婷精品综合在线手机播放 | 日韩精品免费看 | 高清一区二区三区 | 99re热这里只有精品视频 | 玩丰满女领导对白露脸hd | 一区二区三区国产精品 | 羞羞视频网页 | 久久99国产精一区二区三区 | 久久久免费毛片 | 午夜成人在线视频 | 伊人网站 | av网址在线播放 | 亚洲欧美日韩精品久久亚洲区 | 欧洲一级毛片 | 国产精品久久久久久婷婷天堂 | 久久精品二区 | 日本三级全黄三级三级三级口周 | 久草网站 | 国产乱码精品一区二区三区中文 | 91视频一区二区三区 | 午夜欧美 | 做a视频 | 超碰在线免费公开 | 午夜国产羞羞视频免费网站 | 久久久精品国产 | 久久亚洲一区二区 | www.国产精品| 亚洲国产一区二区三区在线观看 |