嵌入式系統(tǒng)開(kāi)發(fā)是對(duì)于除了電腦之外的所有電子設(shè)備上操作系統(tǒng)的開(kāi)發(fā),開(kāi)發(fā)對(duì)象有手機(jī),掌上電腦,機(jī)電系統(tǒng)等,一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用 戶(hù)的應(yīng)用程序等四個(gè)部分組成。那么嵌入式系統(tǒng)開(kāi)發(fā)流程有什么呢?
一、開(kāi)放流程
第一步:建立開(kāi)發(fā)環(huán)境
操作系統(tǒng)一般使用Redhat Linux,選擇定制安裝或全部安裝,通過(guò)網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝(比如,arm-linux-gcc、arm-uclibc-gcc),或者安裝產(chǎn)品廠家提供的相關(guān)交叉編譯器;
第二步:配置開(kāi)發(fā)主機(jī)
配置MINICOM,一般的參數(shù)為波特率115200 Baud/s,數(shù)據(jù)位8位,停止位為1,9,無(wú)奇偶校驗(yàn),軟件硬件流控設(shè)為無(wú)。在Windows下的超級(jí)終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開(kāi)發(fā)板的信息輸出的監(jiān)視器和鍵盤(pán)輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。
第三步:建立引導(dǎo)裝載程序BOOTLOADER
從網(wǎng)絡(luò)上下載一些公開(kāi)源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進(jìn)行移植修改。有些芯片沒(méi)有內(nèi)置引導(dǎo)裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫(xiě)開(kāi)發(fā)板上FLASH的燒寫(xiě)程序,可以在網(wǎng)上下載相應(yīng)的燒寫(xiě)程序,也有Linux下的公開(kāi)源代碼的J-FLASH程序。如果不能燒寫(xiě)自己的開(kāi)發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是讓系統(tǒng)可以正常運(yùn)行的第一步。如果用戶(hù)購(gòu)買(mǎi)了廠家的仿真器比較容易燒寫(xiě)FLASH,雖然無(wú)法了解其中的核心技術(shù),但對(duì)于需要迅速開(kāi)發(fā)自己的應(yīng)用的人來(lái)說(shuō)可以極大提高開(kāi)發(fā)速度。
第四步:下載已經(jīng)移植好的Linux操作系統(tǒng)
如MCLiunx、ARM-Linux、PPC-Linux等,如果有專(zhuān)門(mén)針對(duì)所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過(guò),下載后再添加特定硬件的驅(qū)動(dòng)程序,然后進(jìn)行調(diào)試修改,對(duì)于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),而對(duì)于MCLiunx這樣的系統(tǒng)只能編譯內(nèi)核進(jìn)行調(diào)試。
第五步:建立根文件系統(tǒng)
下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。由于默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs genromfs等工具產(chǎn)生燒寫(xiě)映像文件。
第六步:建立應(yīng)用程序的FLASH磁盤(pán)分區(qū)
一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線性FLASH(NAND型)8MB~512MB,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃FLASH的分區(qū)方案。
第七步:開(kāi)發(fā)應(yīng)用程序
可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,這有點(diǎn)類(lèi)似于μC/OS-II的方式。
第八步:燒寫(xiě)內(nèi)核
根文件系統(tǒng)和應(yīng)用程序,發(fā)布產(chǎn)品。
二、基礎(chǔ)知識(shí)
軟件方面的知識(shí):
1、嵌入式微處理器結(jié)構(gòu)與應(yīng)用:
或傳統(tǒng)的"微機(jī)原理與接口"課程,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式系統(tǒng)的人應(yīng)對(duì)ARM處理器工作原理和接口技術(shù)有充分了解,包括匯編指令系統(tǒng)。不了解處理器原理,就沒(méi)辦法寫(xiě)出驅(qū)動(dòng)程序。在嵌入式開(kāi)發(fā)的一些關(guān)鍵部分,如Bootloader等,主要靠匯編寫(xiě)程序。
2、嵌入式操作系統(tǒng)類(lèi)課程:
從事嵌入式系統(tǒng)的人至少須掌握一個(gè)嵌入式操作系統(tǒng)(當(dāng)然越多越好),目前最重要的RTOS主要包括:
(1)、傳統(tǒng)的經(jīng)典RTOS:最主要的是Vxworks操作系統(tǒng),以及其Tornado開(kāi)發(fā)平臺(tái)。Vxworks出現(xiàn)早,實(shí)時(shí)性很強(qiáng),并且內(nèi)核可極微,可靠性較高。特別在通信設(shè)備等實(shí)時(shí)性要求較高的系統(tǒng)中,有比較廣泛的應(yīng)用。
(2)、嵌入式Linux操作系統(tǒng):嵌入式Linux廣泛應(yīng)用的原因當(dāng)然是免費(fèi)、開(kāi)源、支持軟件多、支持者多,成本也低。
(3)、 Windows CE嵌入式操作系統(tǒng):Windows CE是微軟的操作系統(tǒng),也有很大的市場(chǎng)份額,特別是在PDA、手機(jī)等界面要求較高或者要求快速開(kāi)發(fā)的場(chǎng)合。
3、嵌入式開(kāi)發(fā)的其它相關(guān)軟件課程:
(1)、數(shù)字圖像壓縮技術(shù):嵌入式最熱門(mén)的應(yīng)用領(lǐng)域之一,要掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高清電視、機(jī)頂盒等都涉及MPEG高速解碼問(wèn)題。
(2)、通信協(xié)議及編程技術(shù):大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握TCP/IP協(xié)議及其編程;另外,掌握無(wú)線通信協(xié)議及編程也是是很重要的。
(3)、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書(shū)CA等。
硬件方面的知識(shí):
模擬電路、數(shù)字電路、計(jì)算機(jī)組成原理、微處理器結(jié)構(gòu)、單片機(jī)等硬件課程是從事嵌入式開(kāi)發(fā)要掌握的。
嵌入式本身就是從單片機(jī)發(fā)展過(guò)來(lái)的,如今很多單片機(jī)都已經(jīng)帶OS,嵌入式開(kāi)發(fā)領(lǐng)域,驅(qū)動(dòng)人才非常缺乏。寫(xiě)驅(qū)動(dòng)必須掌握操作系統(tǒng)的內(nèi)部工作原理,包括相關(guān)的硬件知識(shí),即所謂的軟硬通吃,所以這方面的人才是一將難求。
Copyright 2024 陜西星楓科技有限公司
陜ICP備18012436號(hào)
陜公網(wǎng)安備61011202000767
地址:陜西省西安市未央?yún)^(qū)未央路80號(hào) EMAIL:1061941020@qq.com
ICP經(jīng)營(yíng)許可證:陜B2-20240222 人力資源證: 陜?nèi)朔C字[2022]第0106003123號(hào)
Powered by PHPYun.