色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 學習Linux一點心得

學習Linux一點心得 時間:2018-09-28      來源:未知

從2016年8月15日入職到現在有半年時間了,簡單談一下自己的心得及對自己學習Linux的一點理解。

本人也是從參加華清遠見培訓才開始接觸Linux,經過培訓老師的講解、自己平時查閱資料以及實際工作中的接觸,對Linux認識也逐漸加深。下面把自己的認識過程簡單說明一下,可以供剛入門的同學參考。

1、 學習Linux絕對是一項系統工程,不要想著幾個月或幾天可以搞定。隨著對Linux認識的深入,你會越來越覺得這是不可能的(跟智商沒關系),因為涉及的知識點實在太多。那我們是不是要把所有的知識學完才能工作,這個到沒有必要,因為實際工作(某個崗位)不需要那么多知識。所以,把教學大綱內容的掌握了,應該可以勝任某些初級工作。

2、 如果從事底層開發,與硬件打交道,你需要對CPU架構有個大概的了解,因為要讓系統跑起來,你必須知道Linux的引導過程。通常ARM架構和X86的引導過程還是有差異的,盡管原理差不多。我們在培訓的時候主要接觸的是ARM平臺,但有可能工作時接觸的X86架構,因此你除了要知道U-boot如何引導ARM平臺的Linux內核,還要知道grub如何引導X86平臺下的Linux內核,因為當前Linux主要發行版基本都是采用Grub2來引導。有時間需要了解一下grub2,可能還要知道MBR、EFI等,這些是X86平臺的BIOS相關的知識。掌握了這些你才能在開發平臺上安裝系統,不管什么平臺都能搞定,才能以不變應萬變。上課時,可能老師會講init進程,但我要告訴你,如果你實際遇到的init行為跟上課時不一樣,不要奇怪,因為現在發行版的init已經被重寫了好幾個版本,上個時講的是Sysv標準�,F在發行版init雖然部分兼容sysv,但變化也是非常大的。具體的可以上網搜索UpStart 和 systemd。

3、 我們的主要工作不可能僅僅安裝一個Linux操作系統,通常主要工作應當是設備驅動的移植或開發。這個需要的知識就比較專業了,不是簡單套用一下字符設備、塊設備或網絡設備能搞定的。需要熟知硬件設備的工作過程,如何設置寄存器,寄存器的地址是什么,這個就要“肯“芯片的datasheet和考驗個人E文的能力了,有可能讀了一遍不知所云。還要熟悉相關標準和協議(比如:pci、usb、i2c、spi等),這有可能又是幾百或上千頁的文檔需要閱讀。再者就是Linux相關子系統的實現,比如tty、gpio、i2c、usb、pci、net、blk等,因為終你的驅動代碼要調用這些子系統的內核代碼,你不能僅僅參考模板代碼,因為那樣如果出現問題,你將束手無策。

4、 文件系統可以說是Linux的靈魂,因為有人云Linux中“一切皆文件”。不要覺得只有磁盤上才存在文件系統,內存中也有文件系統,而且有很多。典型的sysfs文件系統就是內存文件系統,搞Linux驅動開發,sysfs文件系統是必須要掌握的,他和驅動程序的關系不是一般的密切,了解sysfs文件系統就必須了解Kobject對象體系,這個體系的內容也比較豐富。

5、 實際項目開發設計多的就是通訊設備,除了板上的spi、i2c通訊外,設備間的通訊主要為串口(RS232、422、485)、網口(802.11)以及無線通訊(wifi、bt、3g、4g),這些通訊協議即使不能完全掌握,也要了解大概。

6、 驅動開發可以參考模板,但調試驅動是沒有模板參考的。驅動程序開發的真正的能力是體現在解決問題的能力,你不可能憑空想象和猜測哪里出問題了,需要有手段。這就要用到調試方法、手段了,還有就是對內核相關驅動架構要非常清楚,能夠通過內核消息,定位問題大致位置。如果你的硬件知識過硬,不僅不需要和硬件工程師扯皮,還可以“謙虛的“地提示他,硬件哪里可能是有問題的。

7、 如果實在搞不定,不要忘記找“度娘“。以我的經驗,應該可以找到80%的答案。

8、 分享一個實際項目—PCI總線轉16串口卡。一看項目的名字,就知道是與PCI總線和串口有關,PCI總線是X86平臺上常用總線,現在已經發展到PCIe了,PCI是32/64位總線而PCIe是串行總線,但速度更快(3.0版的1x帶寬達到8.0Gbps)。協議上PCIe是基本兼容PCI的,所以Linux內核中采用是同一個架構�,F在PC、工控機上的千兆網卡、SATA3.0等基本都是采用PCIe轉化,只有這樣才能滿足帶寬要求。至于串口部分,如果開發過Uart(8250)驅動,應該沒問題。實際的硬件部分是由PLX9054+FPGA來實現,由于存在FPGA,串口部分寄存器由FPGA工程師提供,這個需要軟件和硬件磨合。后的驅動應該是一個復合驅動,你不能簡單套用字符設備、塊設備或網絡設備那一套。PCI部分的驅動,你不僅要了解PCI協議、PCI配置過程(配置空間的讀寫),為了實現PCI設備上電自動配置還涉及到EEPROM芯片的燒寫,同時還要熟悉Linux內核PCI部分架構,以及驅動程序的注冊。整個驅動部分不是兩塊簡單疊加,需要有機結合。如果你不知道PCI配置空間、IO空間、內存空間,不熟悉內存映射機制、虛擬內存概念,不了解PCI的INTA—INTD或PCIe的MSI等中斷機制,這個驅動是搞不出來的。這一個項目涉及的知識點非常多,即使是串口部分,也不是簡單一個字符設備可以搞定的,你需要知道tty、線路規程、UART協議。

9、 搞驅動開發既需要積累知識、又需要積累經驗,切記紙上談兵、好高騖遠。實在沒什么Linux學習方法推薦,如果要推薦的話,我個人覺得可以參考這個配置《3+1+1+1+1》,具體為:3本書(Linux內核開發(Robert Love)、深入理解Linux內核(Daniel P. Bovet / Marco Cesati)、Linux設備驅動程序(Jonathan Corbet))+1個軟件(Source Insight)+1套內核源碼(建議版本至少大于2.6)+1個網絡搜索引擎+1個持續的學習熱情。這里說一下閱讀內核代碼,對于初學者可能非常痛苦,因為內核代碼里面有很多鏈表、鎖、出錯處理以及你聞所未聞的算法,更傷心的是當你懷揣無比堅定的信念,興致勃勃地用SI跟蹤代碼,要一探究竟,結果代碼跟到一半無法進行了。這是因為內核很多地方采用了函數指針和回調機制,只有在執行的時候,才指向具體的函數。這樣是不是就沒法跟蹤了呢,當然不是,具體就不詳述了,可以到網上查找相關資料。

10、 基礎知識也需要掌握,Shell編程、Make工具的使用、內核編譯系統、gcc編譯和鏈接、elf格式加載過程、ext2文件系統等,扎實的基礎知識,可以讓你學習新知識事半功倍。

以上簡單羅列了一下個人在學習Linux過程中的一點體會,有些細節沒有展開。若想了解涉及到的具體知識點,請自己到網上搜索。由于自己也剛剛入門,如果誤導了你,還請見諒!

上一篇:AS606指紋模塊調試總結

下一篇:Android傳感器開發

鍗庢竻鍥句功棣�

0鍏冪數瀛愪功锛岄檺鏃跺厤璐圭敵棰�

10鏈崕娓呭浘涔�PDF鐗�

鎵爜鍏虫敞鍗庢竻杩滆鍏紬鍙�
鑷姩鍥炲鈥�2鈥濓紝鍗冲彲鐢抽锛�
熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 羞羞午夜爽爽爽爱爱爱爱人人人 | 麻豆av免费网站 | 铁牛tv萌白酱jk喷水视频 | 婷婷激情综合五月俺也去看 | 亚洲日韩看片无码超清 | 久久精品国产99久久丝袜 | 19禁无遮挡啪啪无码网站性色 | 台湾av国产片精品麻豆传 | 娇小性色xxxxx | 国产AV国片偷人妻麻豆郑州公司 | 好硬好湿好爽好深视频 | 亚洲精品无码久久久久Y | 特级xxxxx欧美孕妇 | 男女性高爱潮免费网站 | 24小时日本在线www免费的 | 欧美日韩中文国产一区 | 亚洲阿V天堂网2019无码 | 成熟女人特级毛片www免费 | 一二三四在线观看视频韩国 | CHINESE熟女熟妇1乱老女人 | 法国性经典xxxxx | 人人澡人人爽欧一区 | 亚洲成A人片在线观看无码3D | 久久久久亚洲精品无码系列 | 日本乱子人伦在线视频 | 欧美日韩亚洲国产天堂A | 蜜桃视频在线观看网站 | 日本人妻出轨中文字幕 | 欧牲交a欧美牲交aⅴ | 日本精品无码久久久久三级国产 | 免费毛儿一区二区十八岁 | 国产又粗又爽又猛的视频A片 | 日韩视频在线观看不卡 | 婷婷一区二区三区四区 | 网络毛片| a级毛片免费观看在线播放 亚洲嫩妇 | 蜜臀AV色欲A片无码精品一区 | 国产对白国语对白 | 久久午夜免费观看 | 老司机永久免费视频网站 | 亚洲成av人片在线观看无码不卡 |