|
成都嵌入式培訓(xùn)資料大全_開(kāi)發(fā)嵌入式需要大量輔助軟件,
熟練掌握C/C++,熟悉Linux/Windows操作系統(tǒng),對(duì)于OS的軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動(dòng)有較深的研究。熟悉TCP/IP及無(wú)線網(wǎng)絡(luò)(Zigbee、Wi-Fi、藍(lán)牙、2/3/4G)協(xié)議,熟悉TCP/IP、USB、串口、SPI協(xié)議的處理;行業(yè)的需求帶動(dòng)人才的發(fā)展,越來(lái)越多的人選擇嵌入式技術(shù),今天我們來(lái)談?wù)勄度胧絃inux的入門(mén)。
一、系統(tǒng)環(huán)境
1、環(huán)境搭建
開(kāi)發(fā)嵌入式需要大量輔助軟件,一般來(lái)說(shuō),我們是在電腦上開(kāi)發(fā)好程序,然后通過(guò)某些方式將程序下載到開(kāi)發(fā)板上運(yùn)行。按這個(gè)順序列出一些我認(rèn)為必須的:
Linux系統(tǒng):主要作為程序開(kāi)發(fā)的系統(tǒng),選擇多人使用并資源豐富的版本,建議ubuntu或fedora,目前我使用ubuntu?梢允褂迷谔摂M機(jī)或物理機(jī)上。
虛擬機(jī):有條件的推薦使用物理機(jī)安裝,但一般經(jīng)常使用vmware這類虛擬機(jī)軟件,通過(guò)這個(gè)軟件安裝ubuntu系統(tǒng),然后設(shè)置共享。然后在這個(gè)系統(tǒng)上交叉編譯。
共享方式:有的人喜歡用vmware自帶共享功能,有的人喜歡用samba共享。個(gè)人建議在ubuntu中設(shè)置samba共享,這樣可以在windows上將ubuntu共享目錄映射成為其中一個(gè)盤(pán)符,這樣做,就可以在windows下操作linux系統(tǒng)的目錄、文件了,不過(guò)前提是需要網(wǎng)絡(luò)性能良好。另一種常見(jiàn)的共享方式是nfs,多用于主機(jī)和開(kāi)發(fā)板之間的文件傳輸。
開(kāi)發(fā)IDE:有的人建議在linux系統(tǒng)中用vim或emacs,但作為初學(xué)者入門(mén),不要如此,使用vim、emacs學(xué)習(xí)成本高,而會(huì)打擊積極性。在samba共享情況下,建議使用Notepad++、source insight進(jìn)行代碼編譯。
交叉編譯:交叉編譯是嵌入式一個(gè)很重要的概念。由于我們編譯的程序是在開(kāi)發(fā)板(開(kāi)發(fā)板又稱目標(biāo)板)上運(yùn)行的,但開(kāi)發(fā)板又沒(méi)有環(huán)境進(jìn)行編譯,所以帶出“交叉編譯”概念。即在一臺(tái)linux主機(jī)系統(tǒng)上使用交叉編譯器對(duì)代碼進(jìn)行編譯,但編譯得到的二進(jìn)制文件無(wú)法在該主機(jī)運(yùn)行,只能在開(kāi)發(fā)板上運(yùn)行。不同的板子使用的交叉編譯器不同。一般使用商家自帶的交叉編譯器。
下載手段:根據(jù)應(yīng)用場(chǎng)合,可以用jtag燒錄器下載程序(適用如u-boot開(kāi)發(fā))?梢允褂胻ftp方式下載程序(適用kernel開(kāi)發(fā))。在開(kāi)發(fā)板系統(tǒng)啟動(dòng)后且網(wǎng)絡(luò)正常情況下,可以使用tftp下載、nfs拷貝等方式進(jìn)行調(diào)試(適用于應(yīng)用層程序開(kāi)發(fā))。
另外對(duì)于USB轉(zhuǎn)串口線、網(wǎng)絡(luò)這類的東西,就不一一詳細(xì)說(shuō)明了。
掌握程度:不同人使用的開(kāi)發(fā)環(huán)境不盡相同。原則上只要是自己熟悉的環(huán)境就可以了,以提高開(kāi)發(fā)效率為準(zhǔn)則。
推薦軟件:vmware、notepad++、source insight、tftpd32(均為windows系統(tǒng)軟件)。
2、系統(tǒng)使用
工欲善其事,必先利其器。系統(tǒng)環(huán)境使用熟悉程度越高,越能提高開(kāi)發(fā)速度。舉個(gè)例了,曾經(jīng)遇到過(guò)別人在設(shè)備上調(diào)試應(yīng)用程序,步驟是:編碼、編譯、制作軟件包、用工具升級(jí)軟件包到設(shè)備上,設(shè)備上電看效果。這一系列步驟中,制作包、升級(jí)軟件包耗時(shí)很長(zhǎng),對(duì)于調(diào)試十分不利。如果使用NFS,時(shí)間能省至少三分之二。所以說(shuō),環(huán)境的熟悉是十分重要和必要的。
這里主要針對(duì)Linux系統(tǒng),對(duì)于入門(mén)者而言,Linux系統(tǒng)的使用是一個(gè)大坎。但要知道,嵌入式開(kāi)發(fā)是離不開(kāi)linux系統(tǒng)的,是必須學(xué)的。目前網(wǎng)絡(luò)資料十分廣泛,幾乎遇到的問(wèn)題都在找到答案,但質(zhì)量往往良莠不齊,有些甚至?xí)`導(dǎo)人。因此,建議一邊學(xué)一邊做筆記,把自己的疑問(wèn)、心得、步驟都記錄下來(lái)(比如,記錄第1小節(jié)提到的nfs、samba服務(wù)安裝的步驟)。
如果時(shí)間允許,最好找書(shū)本來(lái)學(xué)習(xí),邊看書(shū)邊敲命令。因?yàn)闀?shū)籍介紹比較系統(tǒng),有利于了解全貌,再逐個(gè)知識(shí)點(diǎn)深入,做到胸有成竹。下面列一下需要學(xué)習(xí)的知識(shí)點(diǎn)。
1、掌握常用命令。必須要學(xué)的命令不多,像查看文件、拷貝文件、創(chuàng)建文件、查找文件、顯示日期、查看/修改IP,等等。這些常用命令只要使用次數(shù)多了,就能熟練掌握。具體的自行搜索。
2、掌握軟件安裝步驟。一般linux系統(tǒng)發(fā)行版自帶有安裝工具,如unbutu,在聯(lián)網(wǎng)情況下直接輸入命令apt-get install tool-name,就能安裝了。
3、編譯源碼方式安裝軟件。有些工具提供源碼需要自己進(jìn)行編譯(比如要在開(kāi)發(fā)板上運(yùn)行的程序,則無(wú)法通過(guò)apt-get來(lái)安裝,需要交叉編譯)。linux編譯一般有三個(gè)步驟:
l 配置:./configure
l 編譯:make
l 安裝:make install。
這個(gè)知識(shí)點(diǎn)請(qǐng)大家自行百度吧,這里由于篇幅原因就不細(xì)說(shuō)了。
4、了解linux文件系統(tǒng)、目錄結(jié)構(gòu)、設(shè)備文件。如根目錄名稱是“/”,配置文件一般位于/etc目錄,運(yùn)行程序一般位于/bin、/sbin、/usr/bin、/usr/sbin,等等。因?yàn)榍度胧缴婕暗礁募到y(tǒng)概念,因而需要對(duì)linux目錄結(jié)構(gòu)有了解。如果感興趣,可以去搜索一下LFS。
5、學(xué)習(xí)IO重定向、管道概念,學(xué)習(xí)并會(huì)寫(xiě)簡(jiǎn)單shell腳本。
6、學(xué)習(xí)編輯器vi的簡(jiǎn)單使用(因?yàn)橛行┣闆r下只有這個(gè)編輯器可用)、編譯器gcc用法、Makefile知識(shí)、gdb調(diào)試。(此項(xiàng)針對(duì)開(kāi)發(fā)而言)
學(xué)習(xí)建議:
1、看書(shū)、網(wǎng)絡(luò)搜索
2、學(xué)會(huì)man命令(這是linux內(nèi)置的幫助命令,比如要了解cp命令的用法,則輸入man cp)
3、記錄筆記
二、應(yīng)用層
1、C/C++語(yǔ)言
C/C++語(yǔ)言本身與具體平臺(tái)相關(guān)不大,但必須結(jié)合具體環(huán)境平臺(tái)才能展現(xiàn)其作用。比如,MFC使用C/C++,QT也使用C/C++,Linux內(nèi)核中使用C,單片機(jī)使用C,等等。環(huán)境不同,其側(cè)重點(diǎn)不同。在學(xué)校里學(xué)習(xí)C/C++語(yǔ)法,考完試,卻沒(méi)有結(jié)合實(shí)際項(xiàng)目編程,就有人糾結(jié)學(xué)了C/C++不懂能做什么。只有真正在某一領(lǐng)域使用了C語(yǔ)言,它才是一個(gè)可以看得見(jiàn)、摸得著的東西,而不再是抽象的。
這里結(jié)合Linux系統(tǒng),列舉出一些要掌握、學(xué)習(xí)的知識(shí)點(diǎn)。
1、linux系統(tǒng)編程基本概念:Makefile、gcc、gdb。
2、文件IO操作。
3、進(jìn)程控制、進(jìn)程間通信、多線程操作
4、信號(hào)處理
5、網(wǎng)絡(luò)編程
6、串口編程
另外也列舉C/C++語(yǔ)言的學(xué)習(xí)點(diǎn):
1、標(biāo)準(zhǔn)庫(kù)
輸入輸出(fprintf、sscanf)、文件操作(fopen、fclose)、字符類操作(isalpha、islower)、字符串操作(strcpy、strcmp、memcpy)、信號(hào)處理(signal)、日期時(shí)間(mktime、ctime) [!--empirenews.page--]
2、C++ STL
向量vector、隊(duì)列queue、棧stack、列表list。
推薦網(wǎng)站:http://www.cplusplus.com/reference/
下面列出一些我認(rèn)為較好的書(shū)籍。每種類型的書(shū)籍應(yīng)用場(chǎng)合不同,按需求學(xué)習(xí)!粌H嵌入式Linux領(lǐng)域,其它很多領(lǐng)域同時(shí)需要C,因而要提高C技能。
入門(mén)篇:
《Linux C 編程一站式學(xué)習(xí)》
《Linux C從入門(mén)到精通》
《Linux C編程從初學(xué)到精通 》
《Linux C編程實(shí)戰(zhàn)》
《嵌入式linux應(yīng)用開(kāi)發(fā)完全手冊(cè)》 (該書(shū)對(duì)嵌入式Linux開(kāi)發(fā)整體都有講述,一書(shū)以看窺全貌,入門(mén)適用)
學(xué)習(xí)路線:
環(huán)境:安裝虛擬機(jī)linux,配置好samba,有windows下用notepad++編寫(xiě)代碼,然后在命令行使用gcc編譯并運(yùn)行。像ubuntu安裝必要開(kāi)發(fā)工具sudo apt-get install build-essential 這類的知識(shí)點(diǎn)本文就不涉及了。
實(shí)踐:首先了解linux下gcc編譯基本概念,然后逐個(gè)知識(shí)點(diǎn)學(xué)習(xí)。以上每點(diǎn)均是一個(gè)知識(shí)塊,需要手動(dòng)寫(xiě)代碼。建議在github上建立倉(cāng)庫(kù),形成自己的代碼庫(kù),方便日后使用。
2、版本控制
版本控制可以提高開(kāi)發(fā)效率,目前很多公司使用svn或git進(jìn)行代碼管理,很多開(kāi)源項(xiàng)目——包括kernel,都使用git來(lái)管理。對(duì)于不涉密的代碼,推薦使用github托管,而不便公開(kāi)的代碼,可以在bitbucket上托管。養(yǎng)成保存代碼的習(xí)慣很重要。筆者很多年前沒(méi)有代碼托管意識(shí),一次電腦被偷,導(dǎo)致很多代碼消失了,如今想找也想不回來(lái)了。
版本控制學(xué)習(xí)成本不大,無(wú)非創(chuàng)建倉(cāng)庫(kù)、提交代碼這些過(guò)程,結(jié)合日常編碼練習(xí),慢慢熟悉掌握即可。嵌入式靈樹(shù)小波, 半導(dǎo)體嵌入式基板, plc還是嵌入式, 嵌入式成本利潤(rùn)率, 嵌入式設(shè)備樹(shù), 假期嵌入式培訓(xùn), 嵌嵌入式視頻教程, 嵌入式軟件接口類型, 單片機(jī)嵌入式培訓(xùn)班, 嵌入式麥克開(kāi)孔, 嵌入式系統(tǒng)結(jié)構(gòu)形式, 嵌入式按鍵程序, 嵌入式軟件有外包嗎, 嵌入式qt觸摸, 嵌入式操作系統(tǒng)通信, it嵌入式工資, 學(xué)嵌入式的視頻, 嵌入式螺母2.5, 嵌入式手機(jī)英偉達(dá), 嵌入式路由器缺點(diǎn), 嵌入式與應(yīng)用開(kāi)發(fā), 昆山嵌入式傳遞窗, 自學(xué)怎么學(xué)好嵌入式,
3、腳本
Linux系統(tǒng)的腳本語(yǔ)言有很多,使用場(chǎng)合也不同,主要目的是提高開(kāi)發(fā)效率。比如:在shell腳本中完成代碼的編譯并拷貝到nfs共享目錄(或tftp服務(wù)目錄)。這樣只需要執(zhí)行腳本就完成多項(xiàng)工作,節(jié)省很多時(shí)間。
4、界面開(kāi)發(fā)
界面開(kāi)發(fā)不是筆者強(qiáng)項(xiàng),就寫(xiě)一寫(xiě)筆者的經(jīng)歷。筆者接觸過(guò)的界面開(kāi)發(fā)有QT、SDL、MFC。這些都是作為工具而存在的,不是專門(mén)研究,都是工作需要時(shí)再去學(xué)習(xí),邊學(xué)習(xí)邊實(shí)踐。
比如,做一個(gè)視頻采集的軟件,使用了SDL進(jìn)行顯示。
比如,為了顯示YUV格式的文件,使用MFC編寫(xiě)一個(gè)播放器。
5、其它書(shū)籍推薦
內(nèi)功修煉篇:
《程序員的自我修養(yǎng)——鏈接、裝載與庫(kù)》(偏底層的人建議看看)
《高效程序員的45個(gè)習(xí)慣 敏捷開(kāi)發(fā)修煉之道》
《高質(zhì)量程序設(shè)計(jì)指南》(建議看看,工作中編寫(xiě)代碼一定要注意編碼規(guī)范,否則維護(hù)難度太大)
《Linux開(kāi)發(fā)工具箱:項(xiàng)目開(kāi)發(fā)的最有效途徑》(對(duì)應(yīng)英文版本《The Linux Programmer\“s Toolbox》,網(wǎng)絡(luò)有資源)
(注:入門(mén)級(jí)別書(shū)籍不建議購(gòu)買(mǎi),通過(guò)網(wǎng)絡(luò)資源或去圖書(shū)館借書(shū)等手段來(lái)學(xué)習(xí)就行了。當(dāng)然經(jīng)濟(jì)條件允許的除外)
三、底層
這里說(shuō)的底層包括三大方面,這三大方面缺一不可。
bootloader:作為上電運(yùn)行的第一個(gè)程序,負(fù)責(zé)最原始的初始化操作,初始化芯片、初始化內(nèi)存、初始化IO復(fù)用,讀取內(nèi)核代碼并將控制權(quán)移交到內(nèi)核,從而完成使命。
kernel:提供基本的運(yùn)行環(huán)境,提供外設(shè)操作控制接口。
rootfs:向用詞(應(yīng)用層)提供基本操作環(huán)境,包括命令行、程序庫(kù)等。
1、bootloader(啟動(dòng)裝載程序)
嵌入式Linux常見(jiàn)的bootloader是u-boot,而X86領(lǐng)域中一般稱為BIOS。u-boot的學(xué)習(xí)沒(méi)有捷徑,最好是在有ARM開(kāi)發(fā)板情況下進(jìn)行研究,通過(guò)打印信息的方法跟蹤其流程。但是,看懂u-boot代碼需要電路基本知識(shí)、芯片手冊(cè)知識(shí)等等。這些知識(shí),同樣適用于內(nèi)核驅(qū)動(dòng)的開(kāi)發(fā)。
首先要建立的是整體概念和認(rèn)識(shí)。建議先把廠商提供的u-boot源碼編譯通過(guò),并下載到開(kāi)發(fā)板上看到正常結(jié)果后,再用串口打印信息搜索代碼,以了解u-boot的代碼流程。然后再慢慢研究。如果bootloader不是學(xué)習(xí)重點(diǎn),在有一定概念前提下就可以跳過(guò)到內(nèi)核驅(qū)動(dòng)層了,不過(guò)就筆者經(jīng)驗(yàn)來(lái)看,bootloader和內(nèi)核關(guān)系十分密切且部分代碼是相通的。
一般初始化的代碼是匯編代碼,對(duì)于入門(mén)者而言,初學(xué)階段不用追究,等有一定基礎(chǔ)后再回頭研究也不晚。
2、kernel(內(nèi)核)
內(nèi)核是比較大的一塊,涉及內(nèi)容十分多。作為入門(mén)者,與u-boot類似,首先要建立的整體概念。先把廠商提供的內(nèi)核源碼編譯通過(guò),并下載到開(kāi)發(fā)板上,串口會(huì)打印很多啟動(dòng)信息,這些啟動(dòng)信息能幫助我們學(xué)習(xí)內(nèi)核,自己也可以在內(nèi)核中打印語(yǔ)句,以了解其流程。
每一個(gè)平臺(tái)芯片不同,外設(shè)不同,內(nèi)核均不同,需要進(jìn)行移植。所謂的“移植”,就是找到合適的驅(qū)動(dòng),修改適應(yīng)到該平臺(tái)的過(guò)程。比如,某平臺(tái)使用2個(gè)LCD屏,一個(gè)是3.5寸的,另一個(gè)是4.3寸的,這需要對(duì)內(nèi)核進(jìn)行修改。比如,這個(gè)平臺(tái)使用nand flash是1GB的,另一個(gè)平臺(tái)使用的是512MB的,也需要修改內(nèi)核。其它如EEPROM、電源芯片、網(wǎng)卡,等等,均如此。
內(nèi)核知識(shí)點(diǎn)分2部分,一是kernel本身的知識(shí)點(diǎn),如內(nèi)存管理機(jī)制(MMU)、時(shí)間管理、同步機(jī)制,等等。二是外設(shè)驅(qū)動(dòng),如LED燈、GPIO、按鍵。
初學(xué)者建議學(xué)習(xí):
1、了解內(nèi)核編譯的過(guò)程:配置內(nèi)核、編譯uImage。
2、了解platform驅(qū)動(dòng)模型(筆者文章有現(xiàn)成的模板,已經(jīng)應(yīng)用于很多個(gè)平臺(tái)上)。
3、了解一般外設(shè)驅(qū)動(dòng)模型。建議從簡(jiǎn)單的LED、GPIO入門(mén)。
高階知識(shí)點(diǎn):
1、學(xué)習(xí)各種子系統(tǒng),如MTD、USB、IIC、SPI、RTC、WDT。
2、學(xué)習(xí)內(nèi)核知識(shí),如延時(shí)隊(duì)列、時(shí)間管理,同步機(jī)制,等等。
3、rootfs(根文件系統(tǒng))
一般情況下,開(kāi)發(fā)板廠商會(huì)提供根文件系統(tǒng),如果沒(méi)有,則可以自己編譯制作。一般嵌入式Linux使用busybox制作文件系統(tǒng)必要的程序、庫(kù)、配置文件。因?yàn)閎usybox編譯出來(lái)的內(nèi)容體積小,節(jié)省空間,所以很多ARM開(kāi)發(fā)板上都是用busybox的。另外還涉及到文件系統(tǒng)格式,像Yaffs2、ramfs、ext4、UBI,等等。
掌握程度:
1、知道系統(tǒng)啟動(dòng)過(guò)程涉及到哪些腳本。知道上電啟動(dòng)時(shí)如何添加自己程序啟動(dòng)。
2、了解各目錄功能、存儲(chǔ)哪些文件(如改IP在哪個(gè)配置文件,動(dòng)態(tài)庫(kù)在哪些目錄)。 [!--empirenews.page--]
四、其他知識(shí)
1、電路原理圖、datasheet
作為底層開(kāi)發(fā)人員來(lái)說(shuō),能看懂硬件原理圖和datasheet是必要的一項(xiàng)技能。
看懂硬件原理圖,就可以知道這個(gè)系統(tǒng)上有什么器件,哪些器件有什么功能,如何連接(使用什么協(xié)議),提供什么接口。有了這些認(rèn)知后,才會(huì)對(duì)系統(tǒng)有一個(gè)全局整體的認(rèn)識(shí)掌握。對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)絕對(duì)是有利的。
看懂datasheet,才能知道如何訪問(wèn)器件,如何操作器件,了解其時(shí)序。
另外,對(duì)于嵌入式經(jīng)常接觸到的如I2C協(xié)議,SPI協(xié)議等等的協(xié)議也要掌握。
掌握程度:不需要像硬件專業(yè)同學(xué)那樣學(xué)習(xí)數(shù)電、模電課程。但起碼掌握上升沿、下降沿的概念,知道高電平、低電平概念,懂得看I2C協(xié)議的時(shí)序圖。懂得如何找到datasheet中關(guān)鍵信息(寄存器說(shuō)明、時(shí)序圖)。
學(xué)習(xí)路線:碎片時(shí)間多的人,建議在遇到不懂知識(shí)點(diǎn)時(shí)上網(wǎng)搜索學(xué)習(xí)。有條件的建議借書(shū)或買(mǎi)來(lái)學(xué)習(xí)。
五、入門(mén)路線
這里以偏重嵌入式Linux(ARM)驅(qū)動(dòng)開(kāi)發(fā)為例,給出一條入門(mén)的路線。
1、買(mǎi)一款使用廣泛、資料多的ARM開(kāi)發(fā)板。因?yàn)槭褂玫娜硕,你遇到的?wèn)題別人可能早就遇到并解決了,這樣能省很多時(shí)間,并且提高自信心?梢缘侥硨毶峡纯窗遄印R?yàn)槭菍W(xué)習(xí)使用,最好便宜又適用的。
2、使用vmware安裝一個(gè)ubuntu系統(tǒng)。在vmware軟件中設(shè)置物理橋接方式上網(wǎng)。在ubuntu設(shè)置好samba服務(wù)、nfs服務(wù)、tftp服務(wù)。
3、首先自己動(dòng)手親自編譯u-boot、kernel,燒寫(xiě)到板子上(注:有可能rootfs不提供源碼,而是提供img鏡像文件)。
4、自己修改kernel,并編譯busybox,燒寫(xiě)到板子,在板子掛載NFS,在虛擬機(jī)交叉編譯一個(gè)Helloworld程序,并在板子上運(yùn)行。
5、根據(jù)興趣,開(kāi)始搗鼓:u-boot、kernel、應(yīng)用層開(kāi)發(fā)、QT開(kāi)發(fā)。
5、選擇自己重點(diǎn)關(guān)注方面,繼續(xù)研究。
這個(gè)路線不一定要嚴(yán)格遵守時(shí)間軸。
六、補(bǔ)充
以上這些項(xiàng),因不同人的基礎(chǔ)而異。像硬件專業(yè)的同學(xué),數(shù)電、模電和電路圖已經(jīng)掌握,就要加強(qiáng)C和Linux系統(tǒng)的學(xué)習(xí)。反之,計(jì)算機(jī)軟件專業(yè)的同學(xué),就要去學(xué)習(xí)硬件知識(shí)。等等。
對(duì)于書(shū)籍,有的可能一下子無(wú)法理解,那是因?yàn)楣αΣ坏。有的可能覺(jué)得沒(méi)有用處,那是因?yàn)檫沒(méi)有涉及此方面。比如,非計(jì)算專業(yè)的人看《編譯原理》,《操作系統(tǒng)原理》,《計(jì)算機(jī)體系結(jié)構(gòu)》,肯定是看不懂的,而且初學(xué)者也不必要看。又比如,嵌入式有的領(lǐng)域使用到H264編碼、MPEG編碼,802.11、CDMA,如果不是進(jìn)入有關(guān)行業(yè)的,也不必學(xué)習(xí)。另外網(wǎng)上很多人寫(xiě)的嵌入式入門(mén)文章提到0.11內(nèi)核版本、2.4內(nèi)核版本的書(shū),還有離散數(shù)字、算法導(dǎo)論的書(shū),并不是都適用所有人。 所以大家一定要量體裁衣,有多大胃口吃多少飯,有多大頭戴多大帽,根據(jù)自己已有的知識(shí)和所處的階段進(jìn)行選擇。
另外要說(shuō)明的是,很多知識(shí)點(diǎn)是密不可分的,且界線是很模糊的。比如應(yīng)用層和底層。因?yàn)橛袝r(shí)出現(xiàn)問(wèn)題,并不知道具體哪里的問(wèn)題,這就需要站在比較高的層面(系統(tǒng)視野)看問(wèn)題,才會(huì)快速定位并解決問(wèn)題。建議以某一方面為核心點(diǎn),另一方面做了解掌握。如果有能力,最好都學(xué)。
一般情況下,嵌入式Linux沒(méi)有速成。但可以達(dá)到入門(mén)速成,根據(jù)個(gè)人能力,我認(rèn)為大約半個(gè)月~2個(gè)月即可,不過(guò)入門(mén)后就要不斷學(xué)習(xí)和積累了,——這個(gè)積累,需要精力、時(shí)間的投入。 |
|