時間:2019-07-16 00:00:00 來源:信盈達(dá) 作者:信盈達(dá)
最近調(diào)查發(fā)現(xiàn),對于嵌入式軟件方面來說很多用人單位,hr在招人期間,遇到了很大的問題就是:每年畢業(yè)的大學(xué)生很多,但是就是招不到合適的嵌入式軟件開發(fā)人員,大部分原因是因?yàn)槟芰Σ粔?,不能達(dá)到他們的工作需求。你要知道,學(xué)習(xí)嵌入式就要滿足社會的需求,及用人單位的需要,那么問題來了,如何才能成為一個合格的嵌入式軟件工程師,嵌入式軟件學(xué)習(xí)方法又有哪些呢,為了自己的將來就業(yè)這必須看。
嵌入式專業(yè)是一門實(shí)踐性非常強(qiáng)的學(xué)科,只有多動手,多實(shí)踐,多編程,多調(diào)試,多看書,多思考才能真正掌握好嵌入式開發(fā)技術(shù)。
現(xiàn)在很多同學(xué)也意識到了學(xué)校培養(yǎng)模式和社會需求脫節(jié)問題,有一部分同學(xué)也先行行動起來,開始注重培養(yǎng)自己的實(shí)際動手能力,培養(yǎng)自己實(shí)際分析問題,解決問題的問題,培養(yǎng)自己在嵌入式專業(yè)實(shí)際編程,和調(diào)試程序的能力。但是嵌入式專業(yè)不同于其他學(xué)科,嵌入式專業(yè)是一門綜合性非常強(qiáng),涉及知識面非常廣的學(xué)科,對于初學(xué)者來說,面對那么多教程,課本,那么多知識點(diǎn),往往不知道從何處下手,不知道哪些是重點(diǎn),哪些不是重點(diǎn),這些知識點(diǎn)之間有什么關(guān)聯(lián),一臉的茫然,然后東一榔頭,西一棒子,折騰了幾個月甚至大半年后,還是找不著學(xué)習(xí)嵌入式的方向,還徘徊在嵌入式開發(fā)的大門之外。那么重點(diǎn)來了,嵌入式軟件學(xué)習(xí)在這里告訴你。
首先我們先來嵌入式軟件是什么:嵌入式軟件就是嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件。那么常用的嵌入式操作系統(tǒng)就是linux了,有很多嵌入式操作系統(tǒng),說多了會不明白,那么就以嵌入式linux系統(tǒng)為例來了解。
一般人用的電腦都會裝Windows系統(tǒng),要想在Windows上跑其它系統(tǒng),得安裝虛擬機(jī)。而目前主流的虛擬機(jī)有vmware、VirtualBox、hyperV等,你可以隨便選一個安裝。然后去官網(wǎng)下載個人版的Linux鏡像(.iso文件)并把它安裝在虛擬機(jī)里面即可,這里給出主流Linux系統(tǒng)的官網(wǎng)鏈接:ubuntu、fedora、centos、debian、suse。如果你沒有用過linux的話,推薦使用ubuntu。
6、版本控制器。有svn,cvs,git等,推薦學(xué)git。有了git,你就不必手動備份代碼了。
linux的命令是你在學(xué)習(xí)中經(jīng)常用到的,所以可以在百度上查或者買本linux命令的書來學(xué)哦。
在實(shí)際工作中,復(fù)雜的系統(tǒng)管理操作,不會一行一行地敲命令,而是用腳本(命令是基礎(chǔ))。腳本也是一種編程語言,只不過是解釋型語言。相比C/C++、C#、JAVA這類高級語言,腳本要易學(xué)很多(因?yàn)樵黾恿苏Z法糖)。在Linux下,shell也有很多種,如:bsh、bash、csh、tcsh、ksh、zsh等,一般是學(xué)bash,其它的遇到再學(xué)也不遲,因?yàn)槎际谴笸‘惖?。推薦《Linux Shell編程從初學(xué)到精通》
盡管已經(jīng)明白了很多了,但是不管什么編程都是還會涉及C語言的,所以C語言是必須要好好學(xué)的。此外,C語言的執(zhí)行效率比bash要高,網(wǎng)絡(luò)編程的Socket也常常用C語言開發(fā)。在這里,得掌握基本的文件操作、進(jìn)程/線程控制、Socket等。推薦《嵌入式Linux C語言開發(fā)》
六、了解硬件方面的知識
對硬件方面還是要稍微了解一下的,不然不能和硬件對接哦,這里就不多說硬件方面的知識了,對于硬件你可以從:單片機(jī),數(shù)據(jù)結(jié)構(gòu),編譯原理,數(shù)據(jù)庫等。
學(xué)完上面這些理論之后,得再復(fù)習(xí)一下linux下C編程,你會有更大的收獲。
由于系統(tǒng)還沒起來,所以驅(qū)動能用到的API(內(nèi)核的部分API,如:kprintk、kmalloc等)并不多,很多函數(shù)還是得自己寫的,其中,會經(jīng)常訪問臨界資源,所以得掌握自旋鎖、睡眠鎖。此外,驅(qū)動程序出問題的話,整個系統(tǒng)就掛掉了,所以還要掌握各種調(diào)試驅(qū)動的方法,如:goto語句、日志系統(tǒng)、KDB等。接下來就要熟悉掌握字符設(shè)備和塊設(shè)備的驅(qū)動程序了。
在學(xué)習(xí)操作系統(tǒng)原理的時候,已經(jīng)有介紹文件系統(tǒng)了,而且不需要深入研究文件系統(tǒng)的具體算法,只需要了解其特性再學(xué)會使用它就可以了。如:NFS、FAT32、NTFS、yaffs2、ext4、ZFS等。
一般初學(xué),可以先掌握內(nèi)核剪裁(具體工作就是填寫若干個選項(xiàng))。剪裁只是去掉內(nèi)核部分不需要的功能,以減少代碼體積。這里只要求你對內(nèi)核的各個功能選項(xiàng)都很熟悉就可以了。如果剪裁還不能滿足要求的話,得閱讀內(nèi)核源碼,修改內(nèi)核了。
單片機(jī)也有bootloader,在keil C下的startup.a51,主要是做一些初始化工作。那么,在ARM上面的bootloader也是一樣的功能,同樣,也沒有那么重要所以把它排在后面。常用的bootloader有vivi和uboot,一般學(xué)習(xí)uboot,主要掌握uboot的啟動流程和移植。在經(jīng)過前面的學(xué)習(xí),那么uboot對你來說已經(jīng)非常容易的了,一般只需要學(xué)會使用uboot或者用已經(jīng)移植好的uboot,不需要深入研究它。推薦《Ubuntu Linux從初學(xué)到精通》
以上就是嵌入式學(xué)習(xí)的幾個重要的知識內(nèi)容,詳細(xì)內(nèi)容可以查看信盈達(dá)的嵌入式課程大綱。
免費(fèi)領(lǐng)取試聽卡
申請已經(jīng)提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報(bào)名咨詢!