|
華嵌教育_嵌入式培訓(xùn)_嵌入式編程是什么?要怎么去入門?,
什么是嵌入式?
因?yàn)槭紫龋度胧接胁簧俳M合名詞,例如嵌入式系統(tǒng),嵌入式軟件,Linux嵌入式,Android嵌入式,嵌入式Web,等等。
通常對(duì)嵌入式的定義其實(shí)是對(duì)“嵌入式系統(tǒng)“的定義。
網(wǎng)上對(duì)嵌入式系統(tǒng)的中文定義實(shí)在是不好理解,比較官方的中文定義是:
嵌入式系統(tǒng)是:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
當(dāng)然了,這段定義是正確的,不過就是有點(diǎn)學(xué)究味,不夠形象, 不夠“接地氣“。
那么如何來給嵌入式系統(tǒng)一個(gè)接地氣的定義呢?
我可以先列舉目前用到嵌入式系統(tǒng)的IT領(lǐng)域:
Android嵌入式開發(fā)。
Linux嵌入式開發(fā)。
智能手機(jī),平板,智能手表。
可穿戴設(shè)備,例如Google眼鏡,小米手環(huán)。
微軟的Xbox和Kinect。
無人機(jī)。
VR頭盔。
無線路由器。
還有很多~嵌入式電動(dòng)大轉(zhuǎn)盤, 嵌入式行業(yè)轉(zhuǎn)行, 嵌入式軟件稅務(wù)解釋, 嵌入式尋跡小車, 嵌入式編程教程視頻, 嵌入式的教學(xué)視頻, 博創(chuàng)杯嵌入式大賽, 嵌入式要學(xué)pcb嗎, 哪里可以學(xué)習(xí)嵌入式, 固件嵌入式工程師, 嵌入式arm視頻, 北理工嵌入式, 嵌入式軟件崗位權(quán)限, 常用嵌入式系統(tǒng), 嵌入式接口電路, 大數(shù)據(jù)和嵌入式待遇, 嵌入式視覺檢測(cè), 嵌入式系統(tǒng)研討會(huì),
嵌入式正在滲透到我們生活的方方面面, 而且會(huì)越來越多地被使用。
但是, 例如Android, iOS純app開發(fā)的話一般就不能算是嵌入式了吧, 只能算軟件開發(fā)。未來,也許我們可以有一身輕便的可穿戴設(shè)備,衣食住行都用得到。甚至未來可以穿一身輕薄的“飛行衣“, 想去哪都行。
嵌入式編程,最近幾年越來越火,雖然入門門檻比較高,但是學(xué)好了薪資水平不錯(cuò)哦。例如Linux嵌入式的高級(jí)工程師。而且如果你能啃下嵌入式這個(gè)“硬柿子“, 學(xué)了很多方面的知識(shí), 那么其他一些編程領(lǐng)域, 也許就能比較輕松地掌握了。就好比你如果熟練掌握了C語(yǔ)言和C++, 那么其他一些編程語(yǔ)言一般都可以輕松駕馭了。
在嵌入式編程中還有一個(gè)交叉編譯的概念: 什么是交叉編譯呢?
簡(jiǎn)單來說, 就是“在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼“。
普通的軟件開發(fā)過程中, 如果是編譯型的編程語(yǔ)言, 例如C語(yǔ)言, C++, Java, 等等, 你想要運(yùn)行你寫的程序, 需要用編譯器將代碼編譯成可執(zhí)行程序 (當(dāng)然, 中間還有幾個(gè)步驟, 比如匯編, 鏈接, 在此就不提了)。
但是嵌入式系統(tǒng)的計(jì)算能力有限, 內(nèi)存有限, 儲(chǔ)存空間有限, 因此無法完成比較需要資源和速度的編譯過程。
比如在Android嵌入式開發(fā)中, 你不可能在Android手機(jī)里直接讓它編譯自己的系統(tǒng)或軟件吧 。
因此, 我們會(huì)先在普通電腦(比Android手機(jī)的計(jì)算能力更強(qiáng), 內(nèi)存更大, 儲(chǔ)存空間更大) 里將程序編譯 (需要不同于我們編譯普通軟件的編譯器, 稱為“交叉編譯器/軟件“, 比較常見的有arm-linux-gcc一族) 成適配Android手機(jī)的特定可執(zhí)行文件(一般會(huì)打包成鏡像文件), 然后通過專門的工具“燒錄“到Android手機(jī)里。
入門和提高嵌入式
1、嵌入式軟件的話不一定需要學(xué)很多硬件知識(shí)的(有的話當(dāng)然是多多益善)。會(huì)用一些燒寫工具,編譯,調(diào)試工具(比如JTAG)就可以了,到時(shí)候要用了現(xiàn)學(xué)。開發(fā)工具也沒什么固定的,一般也不一定要IDE,用文本編輯器就可以寫代碼(比如Vim,Emacs, nano, Sublime)了。編譯一般用GCC的變種。
2、嵌入式一般要學(xué)C語(yǔ)言
3、C++不一定會(huì)用到, 但也可以學(xué)一下。
4、Linux是要學(xué)習(xí)的。因?yàn)榻徊婢幾g經(jīng)常要用到Linux系統(tǒng),即使在Windows下也要用到Cygwin這類的。
5、最好花點(diǎn)時(shí)間學(xué)一下匯編,對(duì)理解計(jì)算機(jī)的原理,特別是內(nèi)存,指針,二進(jìn)制,十六進(jìn)制都有很好幫助,不需要學(xué)很深。
6、嵌入式目前主流的處理器架構(gòu)是ARM(以前是ARM7,ARM9,ARM11,現(xiàn)在都Cortex系列了)。手機(jī),平板,大部分開發(fā)板都是ARM的天下。所以需要學(xué)一下ARM架構(gòu),有個(gè)了解。一開始對(duì)ARM不需要太深入,視以后情況而定。ARM的集成開發(fā)環(huán)境有ADS(ARM Developer Suite), 是ARM處理器下主要的開發(fā)工具。
7、可以去買一塊便宜的開發(fā)板來開始學(xué)習(xí)。 |
|