|
嵌入式系統(tǒng)開發(fā)分為硬件部分和軟件部分:
”
硬件部分:
1、ARM介紹
嵌入式產(chǎn)品硬件,主要是一塊以(ARM、 DSP、 FPGA)為核心的開發(fā)板。根據(jù)不同的需求,配置不同的外設(shè),因?yàn)榍度胧疆a(chǎn)品是為特定應(yīng)用而生的,所以利用這些嵌入式芯片可以開發(fā)出很多產(chǎn)品;ARM是一款嵌入式芯片,往往說到ARM是指內(nèi)核是ARM的,一般內(nèi)核部分會加上cache ram rom等構(gòu)成cpu,在此基礎(chǔ)上其余部分都叫外設(shè),外設(shè)和cpu通過總線連接,常見外設(shè)有:usb,lcd,keyboard,uart,gpio,iic總線等控制器,類似的還有DSP、FPGA都是內(nèi)核+外設(shè)構(gòu)成一個硬件板子。簡單來講,嵌入式硬件就是內(nèi)核+外設(shè)。
2、嵌入式硬件開發(fā)
硬件開發(fā),主要流程是1需求分析:確定要做什么系統(tǒng),系統(tǒng)會涉及到那些模塊,相應(yīng)模塊分別對應(yīng)什么設(shè)備;2選型:選擇合適的芯片和外設(shè),先看有沒有類似的產(chǎn)品,選擇比較成熟的產(chǎn)品作為開發(fā)基礎(chǔ),加快開發(fā)效率;3進(jìn)入開發(fā)階段。
軟件部分:
1、Linux介紹
linux最大特點(diǎn)就是開源,內(nèi)核代碼全部開放,這就可以讓我們自己根據(jù)需求定制自己的操作系統(tǒng),操作系統(tǒng)主要功能就是管理片上所有資源,任務(wù)調(diào)度,為應(yīng)用程序運(yùn)行服務(wù)的。
2、軟件開發(fā)
嵌入式軟件開發(fā),包括基于操作系統(tǒng)之上的應(yīng)用程序開發(fā),和操作系統(tǒng)內(nèi)核的驅(qū)動開發(fā)(驅(qū)動屬于內(nèi)核的一部分)。嵌入式軟件部分編程,就是在pc機(jī)上編寫代碼,最后下載到板子上執(zhí)行。
嵌入式技能描述:
1、開發(fā)環(huán)境搭建:嵌入式開發(fā)需要交叉開發(fā)環(huán)境,因?yàn)槲覀兙幋a工作都在pc上完成,運(yùn)行在pc上的是基于x86體系的,在arm上運(yùn)行需要編譯成特定代碼,運(yùn)用交叉編譯器編譯。其中包括1u-boot/vivi(相當(dāng)于BIOS)的移植,這種bootloader是嚴(yán)重依賴于硬件,所以不同板子有不同配置,一般都根據(jù)板子進(jìn)行配置修改;2內(nèi)核裁剪,內(nèi)核是一個很龐大的體系,支持很多服務(wù),而我們需求可能只有幾種,為了減小嵌入式產(chǎn)品資源開銷,內(nèi)核都進(jìn)行裁剪(驅(qū)動加入或者刪除);3根文件系統(tǒng)制作,應(yīng)用程序是基于文件系統(tǒng)之上的,有了內(nèi)核必須要有文件系統(tǒng)才能運(yùn)行應(yīng)用程序。
2、應(yīng)用程序開發(fā):主要是用C語言或者C++按需求開發(fā)代碼,最后交叉編譯,下載到板子運(yùn)行。開發(fā)環(huán)境Qt,vim編輯器;交叉編譯器arm-linux-gcc;
3、Makefile編寫:代碼編寫后,要寫一個Makefile來編譯源代碼,Makefile就是按照規(guī)則運(yùn)行g(shù)cc命令,最終生成可執(zhí)行文件,類似于批處理或者說是批編譯。
4、設(shè)備驅(qū)動開發(fā):驅(qū)動是根據(jù)特定硬件的,要根據(jù)硬件廠商提供的datasheet進(jìn)行編寫,基本上是編寫fileoperation里面的函數(shù)(open、close、read、write、ioctrl等),最后將設(shè)備驅(qū)動加載進(jìn)內(nèi)核(通過建立設(shè)備節(jié)點(diǎn)讓操作系統(tǒng)知道這個設(shè)備)。
5、基于板子外設(shè)的軟件開發(fā):嵌入式ARM最強(qiáng)大的功能是控制能力,類似于早期的單片機(jī),但是比單片機(jī)要有強(qiáng)大的網(wǎng)絡(luò)通信能力,支持操作系統(tǒng),更多外設(shè);
這種軟件開發(fā)就是通過編程,根據(jù)硬件datasheet,讓ARM控制硬件的控制器完成各種硬件的協(xié)調(diào)工作。(比如板子上一個引腳接上lcd,讓這個引腳對應(yīng)地址內(nèi)容為1就可以點(diǎn)亮這個lcd
6、熟悉電子線路基本知識:模電,數(shù)電,高頻電子,信號處理。
7、熟悉基于linux的socket網(wǎng)絡(luò)編程。
以下課程可免費(fèi)試聽C語言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想學(xué)習(xí)的你和我聯(lián)系預(yù)約就可以免費(fèi)聽課了。
宋工企鵝號:3524-6590-88 Tel/WX:173--1795--1908
|
|