嵌入式linux基礎教程
① linux嵌入式開發學習步驟有哪些
新手必讀哦,來自華清遠見高級講師總結的「linux嵌入式開發11大步驟」
Linux 基礎
Shell 編程基礎
Linux 下的 C 編程基礎
嵌入式系統開發基礎
嵌入式系統移植
嵌入式 Linux 下串口通信
嵌入式系統中多進程程序設計
嵌入式系統中多線程程序設計
嵌入式 Linux 網路編程
GUI 程序開發
Linux 字元設備驅動程序
文件系統
(步驟詳細內容請去華清遠見嵌入式學院首頁查看)
② 嵌入式系統自學
嵌入式系統軟體工程 方法實用技術及應用,免費下載
鏈接:https://pan..com/s/10No3IypKyLg01bV4T9b22w
《嵌入式系統軟體工程:基礎知識、方法和應用》系統地闡述嵌入式系統軟體工程所涉及的過程、方法、內容,以及在典型工業領域中的應用。全書內容分為兩大部分:第一部分介紹嵌入式系統軟體工程方法論,主要包括嵌入式軟體的開發過程(需求工程、軟體和系統體系結構、編程和測試等內容),開發和測試中所採用的標准,與安全性相關的軟體系統的准入,以及嵌入式軟體所涉及的法律問題:第二部分介紹嵌入式系統軟體在汽車領域、軌道交通領域、航天領域、醫療器械、工業自動化、通信系統中的應用,在每個應用領域重點介紹具體應用領域的一些特定需求、技術和限制條件,以及它們對於嵌入式系統軟體開發過程的影響。
③ 新手如何學習Linux
新手學習建議找准學習方向報班學習。
Linux主體分為「運維」與「開發」兩個方向,無論你是Linux相關從業者,還是說愛好都可以歸類到這里,其中「運維」一般是初學者或者轉行人員的首選,而Linux運維主要是對伺服器穩定、性能與安全方面的維護和調試。
實際上Linux入門並不困難,只要具備Linux基礎,讀懂Linux的命令格式,大多數的服務架構都是可以按照文檔部署出來。當然做Linux開發,個人建議去參加培訓學習更有效率,如果報班學習則大概需要4-6個月時間。
學習主要內容有:
1)網路基礎與linux系統的管理
2)優化及高可用技能
3)虛擬化與雲平台技術
4)開發運維
畢業後可從事的工作有:
1)Linux運維工程師
2)資料庫工程師
3)雲計算運維工程師
4)自動化運維工程師
5)雲計算架構工程師等
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
④ 嵌入式開發如何入門
嵌入式開發主要有兩種,像STM32、飛思卡爾等系列單片機屬於無操作系統的,直接對寄存器或者利用庫函數操作的,這種學習來難度相對小一些,就業前景也不錯。
還有一些像ARM9,或者CortexA8、A9系列的可以運行Linux或者安卓操作系統的嵌入式軟體系統開發,由於需要學習的內容較多,學習時間較長,那麼學習起來就有一定的難度,工資也相對高一些。
課程內容主要包括:
②Linux核心操作與演算法:Linux系統使用,Linux-c編程核心技術,精品數據結構,Linux-c編程精髓;
③核心操作與演算法:Linux系統編程,Linux網路編程核心技術,UI編程,Java核心編程,安卓核心技術;
④ARM+Linux底層開發:數字電路,ARM編程核心,Linux系統開發,嵌入式Linux驅動開發;
⑤大型項目實踐:每期安排各類型真實的項目,詳細可以找我要資料。
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
⑤ 學嵌入式linux需要先學什麼
韋東山:6000字長文告訴你如何學習嵌入式linux
鏈接:網頁鏈接
第1章 單片機和Linux的區別
1.1 有哪些產品使用單片機或Linux
所有的電子產品,所用技術都可以認為要麼是單片機,要麼是Linux;GUI方面主要是QT/Android,它們都是運行於Linux之上的。
下面我們用類比和邏輯推導出嵌入式Linux系統的組成,沒錯,「推導」。
從上圖可以知道:
① 組成:
嵌入式Linux系統
= bootloader + linux內核 + 根文件系統(裡面含有APP)。
② bootloader:
它的目的是啟動內核,去哪等讀內核?讀到哪裡?去Flash等外設讀內核,存到內存里去。所以需要有Flash里外設的驅動能力,為了調試方便還會有網路功能。
所以,可以認為 booloader = 裸機集合,它就是一個復雜的單片機程序。
③ Linux內核
Linux內核的最主要目的是去啟動APP,APP保存在哪裡?保存在「根文件系統」里。「根文件系統」又保存在哪裡?在Flash、SD卡等設備里,甚至可能在網路上。所以Linux內核要有這些Flash、SD卡里設備的驅動能力。
不僅如此,Linux內核還有進程調度能力、內存管理等功能。
所以:Linux內核 = 驅動集合 + 進程調度 + 內存管理等。
2.3 要學習bootloader嗎
Bootloader有很多種,常用的叫作u-boot。
在實際工作中,對於u-boot基本上是修修改改,甚至不改。但是u-boot本身是很復雜的,比如為了便於調試,它支持網路功能;有些內核是保存在FAT32分區里,於是它要能解析FAT32分區,讀FAT32分區的文件。
花那麼多精力去學習u-boot,但是工作中基本用不到,這對初學者很不友善。
所以,對於初學者,我建議:理解u-boot的作用、會使用u-boot的命令,這就可以了。
如果你的工作就是修改、完善bootloader,那麼再去研究它吧。
2.4 要學習Linux內核、要學習驅動程序嗎
之前我們說過Linux內核 = 驅動集合 + 進程調度 + 內存管理等,如果要學習Linux內核,從驅動程序入手是一個好辦法。
但是人人都要學習Linux內核、人人都要學習Linux驅動嗎?顯然不是。
作為初學者,懂幾個簡單的驅動程序,有利於工作交流;理解中斷、進程、線程的概念,無論是對驅動開發、應用程序開發,都是很有好處的。
所以對於初學者,建議前期只學習這幾個驅動:LED、按鍵、中斷。
① LED驅動程序:
這是最簡單的驅動程序。
② 按鍵驅動程序:
它也比較簡單,從它引入「中斷」。
③ 中斷:
從「中斷」它可以引入:休眠-喚醒、進程/線程、POLL機制、非同步通知等概念。這些概念無論是對驅動開發,還是對應用開發,都很重要。
所以,對於初學者,我建議必須學習這幾個驅動:LED、按鍵、中斷。
入門之後,如果你想從事內核開發、驅動開發,那麼可以去鑽研幾個驅動程序(輸入系統、I2C匯流排、SPI匯流排等),掌握若干個大型驅動程序後,你對內核的套路就有所了解了,再去研究其他部分(比如進程管理、文件系統)時你會發現套路是如此通用。
攝像頭(VL42)、音效卡ALSA驅動是Linux中比較復雜的2類驅動,它們是很難的,如果工作與此相關再去研究。
2.5,要學習Linux應用程序嗎?先學一些基礎技能
要學,即使以後你只想研究內核,一些基本的應用開發編寫能力也是需要的:
① 基本設備的訪問,比如LCD、輸入設備
② 進程、線程、進程通信、線程同步與互斥
③ 休眠-喚醒、POLL機制、信號
④ 網路編程
①②③部分的知識,跟驅動有密切的關系,它們是相輔相承的。
掌握了基本驅動開發能力、基本應用開發能力之後,在工作中你就可以跟別人友好溝通了,不至於一臉懵逼。
2.6,應用程序是怎麼啟動的?要了解一下根文件系統
你辛辛苦苦寫出了應用程序,怎麼把它放到板子上,讓它開機就自動啟動?
你寫的程序,它依賴於哪些庫,這些庫放到板子上哪個目錄?
怎麼做一個可升級的系統?即使升級中途斷電了,也要保證程序至少還可以運行老的版本?
這些都需要我們了解一下根文件系統。
先了解一下init進程:它要讀取配置文件,根據配置文件啟動各個APP。
了解了init進程,你就了解了根文件系統的組成,就可以隨心所欲裁剪系統,為你的項目製作出最精簡的系統。
第3章 學習方法
3.1,先不要打破砂鍋問到底
嵌入式涉及的東西太多太雜了,如果心裡沒有主線,碰到什麼都要去研究個透徹,最終反而忘記自己要學什麼了。
嵌入式涉及硬體知識、軟體知識,軟體里涉及匯編、ARM架構、C語言、Makefile、Shell;又分為bootloader、內核、驅動、基本的APP、GUI。
比如我們會用到Makefile,了解它的基本規則,會用我們提供的Makefile就可以。
不需要深入研究那些make函數,因為在工作中都有現成的Makefile給你使用,不需要自己去編寫一套Makefile。何必花上好幾天去深入研究它呢?
比如我們會用到bootloader,難道又要花上幾個月來深入研究u-boot嗎?工作中基本不需要改u-boot,會用那幾個命令就可以。
甚至有些學員先去買本shell的書來學習shell命令,何必?我們在視頻中用到什麼命令,你不懂時再去網路一下這些命令就可以了。
不要脫離初學者的主線:應用基礎、驅動基礎。有了這2個基礎後,你想深入研究某部分時,再去花時間吧。
3.2,思路要清晰,不怕抄代碼
視頻里的代碼,請你一定要自己去寫一次、寫多次。為什麼我現在寫驅動那麼熟?我2009年在華清遠見上課時,
每次上課我都要給學生寫一次那些驅動,十幾次下來閉著眼睛都知道內核的套路了。
記不住那些函數?我也記不住,我都是去參考同類的驅動程序,這又不是閉卷考試。
但是要理清楚思路,你寫這個程序要完成什麼功能、怎麼實現這些功能?這個要弄清楚。
有了思路後再寫代碼,不知道怎麼寫?沒關系,看看視頻,看看示例,然後關閉視頻看看能否自己寫出來。
3.3,對自己的方向很了解,我只能帶你到這里了
我的專長是操作系統,是快速地帶領大家掌握一些項目開發的基礎知識。
如果你決定深入研究某方面時,我並不能帶你多久。你要去看源碼,去看這方面的專業書籍。
比如想深入鑽研內核的內存管理時,它有頁表映射(你需要閱讀ARM架構的手冊)、SLAB分配器、vmalloc/malloc實現、mmap實現、缺頁中斷、父進程子進程之間的頁面管理等等,內容非常多。有時候連書籍都沒有,你需要直接啃代碼。
當你想從事某個行業時,就需要深入研究行業相關的知識。
比如CAN匯流排,它可以寫成一本書:CAN協議、CAN報文、Socket CAN、車身網路拓撲結構,CAN應用報文,CAN網路管理報文,CAN診斷報文。
想做物聯網網關,需要深入研究MQTT,MQTT協議相對簡單,但是MQTT英文原版協議有130多頁,中文版有近100頁,是一本小書了。
每個行業都有自己的業務邏輯,在掌握基本的編程能力之一,你需要結合具體的業務去深入學習。
-☆ END ☆-
⑥ 嵌入式linux怎麼學學習嵌入式linux有什麼方法
個人總結的嵌入式學習步驟:
嵌入式學習步驟分為三個階段
1.:基礎與理論階段
主要包括一些理論知識,你至少了解這行業吧,基本的Linux系統使用;其次就是嵌入式核心開發語言C語言(必須精通);了解c語言數據結構及經典演算法編程;最後就是要了解嵌入式產品的一個基本的開發流程,這對後續的開發有很大的幫助,不至於是那麼的迷茫。
2.:嵌入式系統核心開發
整理了下,至少這些是你要學會的,當前企業招人,應用層的開發挺多,特別剛入行前期,神馬驅動的、移植的相關的可能你還不熟練,找工作就靠下面這些知識點了。
嵌入式 linux應用編程;
嵌入式 Linux並發程序設計;
嵌入式 Linux網路編程;
嵌入式資料庫開發;
嵌入式 Linux應用綜合項目;
ARM處理器編程;
ARM硬體介面開發;
3.:底層
嵌入式底層一般會涉及到,如何把你寫的程序移植到開發板上運行,那麼就會接觸到系統移植、內核驅動開發等等,這是嵌入式工程師最高境界。主要要學以下這些:
嵌入式Linux系統開發;
嵌入式Linux內核開發;
嵌入式Linux驅動開發基礎;
嵌入式Linux驅動高級開發;
嵌入式學習步驟就是這么多,除以上相關學習內容外,對於嵌入式學習者來講還應該具備一些學習態度和學習方法。
1.在學習和工作中要腳踏實地
在對所學內容有一定了解之後,在任何項目進行中就保留自己的想法,如果自己能夠解決更好,如果不能可以找其他朋友幫忙,共同探討遇到的問題,如果只懂執行過程,沒有自己的想法,即使人家把代碼給咱,咱又能了解多少?
2.多看代碼、多寫代碼
3.及時對自己的知識進行充電。來華清遠見星創客精英訓練營,是一個不錯的進階提升的培訓班。
建議現在打算學習嵌入式的朋友們一定要多看、多練,見多識廣,熟能生巧。
以上嵌入式學習步驟主要涉及的內容有嵌入式專業知識的學習和學習態度的一些小建議,希望以上內容對你會有所幫助
米奇 2017-10-23 17:26:57查看前後消息
首先介紹一下什麼是嵌入式,嵌入式學習是以計算機技術為基礎,軟硬體可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。由於嵌入式系統通常具有低功耗、體積小、集成度高等等特點,嵌入式系統在我們日常生活中形成了非常大的應用領域。
嵌入式要學什麼:
1.嵌入式學習之基礎篇階段:
這部分內容主要是能夠看得懂硬體工作原理,特別是操作系統級軟體,這部分內容主要有C語言基礎,嵌入式Linux操作系統使用,嵌入式LinuxC語言高級編程,數據結構以及經典演算法,java語言基礎,java語言高級編程等內容,這些科目內容眾多,但相對來講都是一些比較簡單的基礎,容易掌握。
2.嵌入式學習之linux學習階段:
這部分內容能夠更好地深入掌握Linux系統,主要內容包括嵌入式Linux文件I/O,嵌入式Linux庫的製作和使用,嵌入式Linux開發程序設計,嵌入式Linux網路編程,嵌入式資料庫開發,嵌入式Linux綜合案例等基礎相關內容。
3.嵌入式學習之底層開發階段:
嵌入式學習第三階段需要掌握嵌入式系統及底層開發相關內容,學習內容主要包括ARM處理器編程,ARM硬體介面編程,物聯網基礎等ARM相關內容,此外,還包括嵌入式Linux系統移植/內核開發/驅動開發等必備內容。
4.嵌入式學習之拓展與實踐階段:
拓展與實踐內容主要包括攜帶型智能醫療系統,網路機頂盒項目,倉儲物聯網系統以及智能農業綜合實訓系統等內容,把所學內容和知識點更好地應用於實踐工作中。
以上就是我總結的嵌入式要學什麼,要說嵌入式進階提升,華清遠見星創客精英訓練營是非常好的修煉場,有最新的項目實戰和職場老鳥的帶領,對未來就業很有幫助。總之,嵌入式就是要努力用心的學習,就可以學得好。
⑦ 怎麼一步一步學嵌入式linux
嵌入式工程師step by step(轉)
*(1)首先學嵌入不是為了跟風,而是為了逐浪。不是要看大家都去做
* 這一行才去做。是真的喜歡,這樣才能精,才能做到「逐浪」!
*(2)成功的歷程是漫長、艱辛的,要有一顆艱韌不拔的心:P
*(3)文章中說的學習過程和資料大致差不多。但可惜的是在我花了很
* 長時間入門後才發現這篇文章,要不那短時間會縮減不少。
* 個人覺得需要注意的一點是:文中提到的步驟不是按步就班的,根據
* 個人的情況補全即可:P
**************************************************************/
近來嵌入式挺火,於是大家都往這里擠。我想提醒大家的是,嵌入式馬上也會成為如今的軟體業。在你進來之前請先考慮清楚。但只要我們真的學精了一樣東西,不管它將來變成什麼樣,哪怕最後只剩下一個人,那個人也一定就是你自己。
很多人以為搞嵌入式就是隨便找本書看看,在電腦上編幾個程序就完事。非也,其實嵌入式的門檻是比較高的。具體如下:
1、您得有一定數量的Money。
(1)、開發板貴
(2)、培訓費更貴
(3)、開發平台是貴得不能再貴。(除非您只是想玩玩而已)
2、需要學習的東西多。(1)、window環境編程;(2)、Linux環境編程;(3)、單片機
3、最後也是最重要的一點,你得有堅韌不拔之志和一顆平常之心。
(1)、自信 堅強 積極 勤快 (註:好的自信是自覺的!)
(2)、成功其實就是成為最好的您自己
嵌入式門檻雖然較高,但也跟其他事物一樣,並不是牢不可破。只要我們用心去對待,東雪終將化去,春風定會吹來。具體步驟如下:
1、《C語言》第二版 譚浩強 ; 《C程序設計語言》第二版 徐寶文譯機戒工業出版社
你能區分開指針數組和數組指針嗎?你知道函數指針嗎?
你能區分開定義一個變數時系統給它分配的空間與用malloc()函數給一個變數分配的空間有什麼不一樣嗎?
2、《數據結構》C語言版 黃國愉、葉乃青編 清華大學出版社
你能合上書本,用C語言實現書中的單鏈表、雙鏈表數據結構嗎?
3、《實用C++程序設計》第二板 中國電力出版社 Steve_Oualline著
此階段主要是學習其面向對象的編程思想,加深對C語言和數據結構的理解。
4、學習單片機,最好能找個前輩帶一帶。
你能用51單片機做出一樣實際的東西嗎?即使它再簡單!
要注意加深對中斷的理解。
5、學習ARM單片機。
(1)、細讀《ARM微控制器基礎與實戰》周立工編寫 (註:即使你不用書中的開發板)
(2)、細讀相關晶元的原版英文文檔。如:arm920TE.pdf S3C2410_1.2.pdf
6、學習uCOS!!操作系統。
(1)、細讀《嵌入式實時操作系統uC/OS-!!》第二版 召貝貝譯
你能把uCOS!!移植到自己的平台上嗎?
(2)、能編寫在uCOS!!操作系統環境下運行的針對具體硬體的驅動程序
7、熟悉Linux環境,學習Linux環境編程,學習交叉編程
(1)、細讀《linux命令大全.pdf》
(2)、細讀《GNU Make 使用手冊(中譯版).pdf》
(3)、學習創建交叉編程環境.
8、學習Linux操作系統。
(1)、《UNIX環境高級編程》
(2)、細讀「joyfire 筆記」,可在「」網站的好書下載欄目獲取
(3)、細讀《linux內核完全注釋》
(4)、細讀《understanding the linux kernel 2》
(5)、利用源代碼閱讀利器工具」Source Insight」進行真正的linux內核原碼刨析
(6)、最後進行內核移植,並能編寫在linux操作系統環境下運行的針對具體硬體的驅動程序
9、學習Linux設備驅動編寫。可參考《Linux設備驅動程序》
10、復習C++,學慣用QT進行圖形界面編程
(1)、細讀《QT編程寶典》
(2)、學會通過查看QT電子文檔進行QT GUI實地編程
(3)、學習交叉編程.(其實就是把命令qmake變為tmake)
11、當然,你也可學習一下PCB的製作和設計一個自己的CPU(即軟殼)
至此,你已學完嵌入式的整流程!但謹記:一個有思想的人才真是一個力量無邊的人;有容乃大,能予方強!
⑧ 該怎樣學習嵌入式Linux的基礎課程
嵌入式Linux操作系統學習規劃
ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟體開發目標:
(1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9)
(2) 必須掌握一個嵌入式操作系統 (初步定為uclinux或linux,版本待定)
(3) 必須熟悉嵌入式軟體開發流程並至少做一個嵌入式軟體項目。
從事嵌入式軟體開發的好處是:
(1)目前國內外這方面的人都很稀缺。這一領域入門門檻較高,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數人無條件接觸。
(2)與企業計算等應用軟體不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。
(3)哪天若想創業,搞自已的產品,嵌入式不像應用軟體那樣容易被盜版。硬體設計一般都是請其它公司給訂做(這叫「貼牌」:OEM),都是通用的硬體,我們只管設計軟體就變成自己的產品了。
(4)興趣所在,這是最主要的。
從事嵌入式軟體開發的缺點是:
(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬體基礎不好,特別是操作系統級軟體功底不深,則可能不適於此行。
(2)這方面的企業數量要遠少於企業計算類企業。
(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基於嵌入式的難度。但大多數公司也並無此要求,只要有經驗即可。
(4)平台依託強,換平台比較辛苦。
興趣的由來:
1、成功觀念不同,不虛度此生,就是我的成功。
2、喜歡思考,挑戰邏輯思維。
3、喜歡C
C是一種能發揮思維極限的語言。關於C的精神的一些方面可以被概述成短句如下:
相信程序員。
不要阻止程序員做那些需要去做的。
保持語言短小精幹。
一種方法做一個操作。
使得它運行的夠快,盡管它並不能保證將是可移植的。
4、喜歡底層開發,討厭vb類開發工具(並不是說vb不好)。
5、發展前景好,適合創業,不想自己要死了的時候還是一個工程師。
方法步驟:
1、基礎知識:
目的:能看懂硬體工作原理,但重點在嵌入式軟體,特別是操作系統級軟體,那將是我的優勢。
科目:數字電路、計算機組成原理、嵌入式微處理器結構。
匯編語言、C/C++、編譯原理、離散數學。
數據結構和演算法、操作系統、軟體工程、網路、資料庫。
方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。不一定全學,可根據需要選修。
主攻書籍:the c++ programming language(一直沒時間讀)、數據結構-C2。
2、學習linux:
目的:深入掌握linux系統。
方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。先看深,那主講原理。看幾遍後,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最後深入代碼。
主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。
3、學習嵌入式linux:
目的:掌握嵌入式處理器其及系統。
方法:(1)嵌入式微處理器結構與應用:直接arm原理及匯編即可,不要重復x86。
(2)嵌入式操作系統類:ucOS/II簡單,開源,可供入門。而後深入研究uClinux。
(3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。
主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm匯編指令等。
4、深入學習:
A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼演算法和技術。
B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。
2010-8-21 16:46 回復
122.90.173.* 2樓
C、網路與信息安全技術:如加密技術,數字證書CA等。
D、DSP技術:Digital Signal Process,DSP處理器通過硬體實現數字信號處理演算法。
說明:太多細節未說明,可根據實際情況調整。重點在於1、3,不必完全按照順序作。對於學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。對於linux內核,學習編程,讀一些優秀代碼也是有必要的。
注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。想成為合格的程序員,前提是必須熟練至少一種編程語言,並具有良好的邏輯思維。一定要理論結合實踐。
不要一味鑽研技術,雖然擠出時間是很難做到的,但還是要留點餘地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。還有一些不願意做但必須要做的!
技術是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。
嵌入式書籍推薦
Linux基礎
1、《Linux與Unix Shell 編程指南》
C語言基礎
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux應用程序開發詳解》
Linux內核
1、《深入理解Linux內核》(第三版)
2、《Linux內核源代碼情景分析》毛德操 胡希明著
研發方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP詳解》
3、《Linux內核編程》
4、《Linux設備驅動開發》(LDD)
5、《Linux高級程序設計》 楊宗德著
硬體基礎
1、《ARM體系結構與編程》杜春雷著
2、S3C2410 Datasheet
英語基礎
1、《計算機與通信專業英語》
系統教程
1、《嵌入式系統――體系結構、編程與設計》
2、《嵌入式系統――採用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
4、《嵌入式ARM系統原理與實例開發》 楊宗德著
理論基礎
1、《演算法導論》
2、《數據結構(C語言版)》
3、《計算機組織與體系結構?性能分析》
4、《深入理解計算機系統》【美】Randal E. Bryant David O''Hallaron著
5、《操作系統:精髓與設計原理》
6、《編譯原理》
7、《數據通信與計算機網路》
8、《數據壓縮原理與應用》
C語言書籍推薦
1. The C programming language 《C程序設計語言》
2. Pointers on C 《C和指針》
3. C traps and pitfalls 《C陷阱與缺陷》
4. Expert C Lanuage 《專家C編程》
5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs
《編程精粹--Microsoft 編寫優質無錯C程序秘訣》
6. Programming Embedded Systems in C and C++ 《嵌入式系統編程》
7.《C語言嵌入式系統編程修煉》
8.《高質量C++/C編程指南》林銳
盡可能多的編碼,要學好C,不能只注重C本身。演算法,架構方式等都很重要。
這里很多書其實是推薦而已,不必太在意,關鍵還是基礎,才是重中之重!!!
這是從網路 福州鼎嵌貼吧看來的 呵呵
建議樓主自己去它那看看
http://tieba..com/f?kw=%E7%A6%8F%E5%B7%9E%E9%BC%8E%E5%B5%8C&fr=tb0_search&ie=utf-8
⑨ 如何快速學習嵌入式Linux課程
如何快速學習嵌入式Linux課程?嵌入式要學哪些課程?嵌入式用一句話概括,就是寫程序,用軟體控制硬體。嵌入式的應用領域非常多。智能家居,智能農業,智能醫療等等都屬於嵌入式。那麼嵌入式該怎麼學習呢?
1.C語言
自上而下的學習首先是寫代碼,寫用戶的應用程序。每種語言的使用目的是不同的,嵌入式的語言是C語言。
所以首先要學習C語言的基本語法,C庫提供了大量的函數,我們可以調用以實現一些功能。所以還要熟悉C庫的常用函數。
C語言一定要學好,它是基礎。Linux內核大部分也是用C語言實現的。
2.Linux系統的基本使用
在學習C語言的過程中,可以適當學會Linux系統的基本使用。你可能沒有聽說過Linux,但你肯定聽說過windows,系統有很多共通之處。可以在學習過程中對比理解。
而且Linux系統提供了C語言的編輯器gcc,你可以在系統上寫完代碼之後,在系統上編譯並運行,這樣,在學習C語言的階段你也熟悉了Linux系統的使用。
3.數據結構
當你學完了C語言的基本語法,此時你的c語言水平只是入門階段。你還要學習一門沒有新知識的課程----數據結構。這門課程就是大量的使用指針、數組、結構體、函數。經過這個階段你才能算是掌握了C語言。
而且後面學習內核的過程中,內核中也是有大量的鏈表之類的數據結構的。
4.內核
此時,我們要往下開始系統內核的學習。Linux的內核包括以下幾個部分:進程管理、內存管理、網路堆棧、虛擬文件系統、設備驅動等。
內核是一個系統最重要的部件。想要真正的認識它需要你一步一步的積累。這個階段推薦大家先依次學習文件IO、進程線程、網路編程。
5.設備驅動
驅動是硬體和應用程序之間的橋梁,如果一個應用程序要操作硬體,必須要有驅動。
一句話總結:驅動就是根據相應的硬體,寫出驅動程序作為調用介面提供給用戶,用戶使用該介面就可實現控制硬體的目的。
其次,在驅動的學習中,我們會慢慢學習內核。內核的各種模塊,內核源碼等等。
6.硬體
對於一個嵌入式工程師來說,能夠看懂電路圖即可。即只需要掌握基本的電路知識,看懂電路圖。至於開發板的畫圖、布線、腐蝕、焊接等步驟,可以不必深入研究。這些技能是屬於硬體工程師們的要求。
另外,一個程序員雙語很重要,你學習了面向過程的C語言,推薦大家掌握一門面向對象的語言,可以是c++、java或者python都可。
其次,你要單獨實現一個完整的項目,UI界面部分必不可少。做頁面可以用qt、可以用網頁、也可以用手機端。這可以使你自己做的項目更加完善。
最後我想說,學習不能圖快。任何學習都需要踏踏實實沉下心來努力地學,祝你學有所成。嵌入式開發要學習的內容,大概就是以上這些。