導讀:今天,牛耳教育的小編就來給各位同屬梳理一下大致的嵌入式的課程培訓體系!
基礎
個人建議只要會一些基本的操作就行了,不需要太深入的學習每一個命令,用到的時候會去搜索就行了。需要掌握的知識如下:
-
環境的搭建;
-
Linux目錄結構;
-
文件類型;
-
基本目錄操作,文件操作,vim,ifconfig,ping,cd,cp,mv,mkdir等,最關鍵是gcc命令要會用;
-
一些簡單的shell腳本;
-
Makefile的編寫。
所謂編程不學C語言,便稱碼農也枉然。不會寫代碼,就建議不要學Linux,否則職業后期全是瓶頸。那些和你說學Linux不需要懂編程的都是再輸LM。學習C語言一定要學習Linux下C編程,C語言網上視頻也很多,知識點不一一介紹了,但是有一點,就是一定要記住,一般的程序員從入門到絕對的精通大概需要2年時間,要想隨心所欲寫出超高質量的代碼,時間因人而異,還要看個人造化。實際上并不需要每個人都成為大師,能成為一個快快樂樂的小碼農,不也是見開心的事嗎?
數據結構很重要,但是在這個上面花太多時間,也是沒必要的。個人建議只要掌握幾個基本的排序和查找算法即可,沒必要把所有算法都研究一遍。
-
能掌握常見的算法比如:冒泡排序、直接插入排序、快速排序、二叉樹等。
-
鏈表操作,創建、增刪改查。
基礎階段,個人強烈建議一定要做一個綜合性項目,從0開始寫。
用鏈表實現一個簡單的《電話本管理軟件》,包括增、刪、改、查、排序等操作,把所有的知識點融會貫通起來。
進階
-
掌握posix的一套api,open、read、write、lseek,close等。
-
熟練寫出文件拷貝的功能模塊輸出。
-
理解緩沖的概念。
-
掌握常用的函數fork、exec族函數、pthread等api;
-
進程創建、回收,一個.c源文件變成可執行程序的過程;
-
crontab、at命令;
-
進程間通信:信號量、消息隊列、共享內存、管道、信號;
-
線程創建,同步互斥,互斥鎖;
-
守護進程;
-
庫的概念,什么是動態庫和靜態庫,如何自己制作動態庫和靜態庫。
-
TCP/IP協議分層以及每一層的功能;不要看OSI,只要知道即可;
-
socketapi的使用,tcp、udp;
-
套接字屬性的設置;
-
C/S架構;
-
多進程、多線程服務器模型;
-
抓包工具使用;
-
常見的網絡協議分析:ping、tftp、ftp等;
進階階段知識點很重要,即使以后你不做linuxc開發,有了這些基礎,你再去學java、c++你的視野一定會不一樣。
該階段可以選擇綜合項目《多線程聊天室》,實現公聊、私聊、注冊登錄,互相發送文件等功能。
高階
-
arm架構、arm的模式、arm指令,尋址,異常,中斷,異常向量表,
-
偽指令、C語言和匯編代碼的互相調用、內聯匯編;
-
常見的外設的裸機驅動開發,led、key、adc、pwm、rtc、看門狗、i2c、spi等
這個階段的內容,對于了解整個計算機軟件的工作原理非常重要,Linux內核的很多機制都要依賴匯編指令,尤其ARM工作模式、尋址、異常,中斷,異常向量表這些概念。
-
uboot移植、rootfs制作、內核剪裁移植,
-
usb、網卡驅動移植,
-
uboot、linux啟動流程,
-
自己添加uboot命令
這一階段的內容對于嵌入式工程師來說,在做實際項目的時候,會經常用到,各個廠家的移植步驟會有所差異,但原理基本相同,熟練掌握這些操作,非常必要。
-
字符設備架構、inode、cdev、file_operations、file之間關系;
-
platform總線、設備樹;
-
同步互斥機制,自旋鎖、信號量、互斥體,原子操作;
-
中斷、中斷底半部;
-
等待隊列,poll的實現;
-
常見設備的驅動的編寫,key,led,gpio,adc、pwm、i2c、mpu6050;
-
網絡設備:網卡驅動分析、netfilter使用;
-
usb架構。
驅動的學習,主要在于多捋架構,多了解計算機的實現原理,每天抱著內核看,像泡女人一樣泡她,遲早你會成為大師。
終極
我想如果能學到這個份上,后面如何發展,已經不需要牛耳教育小編再多費唇舌了,可以繼續學習安卓、QT,也可以深挖物聯網、算法,或者鉆研linux內核優化內核等,每個領域獨當一面,收入都不會低。
最后給打大家一個建議,學習編程沒有任何捷徑可以走,告訴你可以速成的,最好留個心眼。
免責聲明:本文內容來源于公開網絡,若涉及侵權聯系盡快刪除!,【本文標題和網址】嵌入式課程培訓體系的四個階段簡析:http://www.eaglelawnandsnow.com/qrsyykf/857.html