lcd4linux
① 有沒有嵌入式開發的學習路線,越詳細越好
一、學習路徑
萬丈高樓平地起,不管多優秀的工程師都是從小白開始的。一條清晰合理的學習路線能幫助小白們高效率的完成基礎知識的儲備工作,注意這里是知識的儲備過程,而經驗是從實踐中得到的。學習路徑是多種多樣的,不同能力和不同基礎的人有不太相同的路徑,這里分享我自己的學習路徑,供大家參考。
1.了解計算機原理,操作系統基礎知識。了解硬碟,內存和CPU的關系,程序是如何載入到內存運行的,了解操作系統進程切換和時間片的概念。
2.學習C語言,掌握編譯器基本知識,能編寫簡單的程序。學習硬體相關知識。
3.購買洞洞板或者麵包板,配合stm32等單片機核心板及相應教材,實踐IO操作,中斷,定時器,ADC,UART通信,IIC通信,SPI通信,CAN通信等基本功能。在此過程中不斷鞏固提升C語言編程水平。
4.掌握了某一種單片機的基本編程和控制後,可以進軍嵌入式操作系統的學習。在此期間可以繼續使用STM32核心板,加購LCD串口液晶顯示屏,不需要買帶字型檔的顯示屏,簡單實用的串口顯示屏就可以。然後可以從Free RTOS開始學習,這個操作系統代碼少,概念清晰,易於學習操作系統的原理,也易於移植,基本上可以參考官網以及網路上的資料順利的將操作系統移植到STM32核心板。通過FreeRTOS,可以學習嵌入式操作系統的基本原理,並可以編寫LCD驅動程序來感受硬體驅動程序的概念。
5.學習嵌入式linux操作系統,購買ARM9或以上版本的主控的開發板,要求開發板上至少有串口和網口。學習板級支持包的開發,交叉編譯,GDB調試,UBOOT移植,內核移植,根文件系統製作,設備樹,驅動程序編寫,網路編程相關知識。
6.學習物聯網相關模塊的使用,可以購買ESP32核心板進行wifi,藍牙的模塊控制學習,購買其他模塊實現其他小項目的練習。
通過上面的一番閉關修煉,你已經學習了嵌入式開發的主要知識架構,接下來就要多做小項目,多練習排錯,才能不斷積累經驗。
二、學習方法
1.先整再零:
對於一個實例項目,先從整體出發,保證調通,能正常運行,出現預期結果。遇到模糊的問題先跳過,整體有了一定認識後再對個別細節進行深入了解,但不能跳過深入了解細節的環節。
2.邊學邊練:
開發是一類實踐性很強的技能,嵌入式開發要與硬體打交道,就需要更多的動手操作和觀察。
學習某一方向的嵌入式開發知識時,需要給自己的學習進行必要的「投資」,購買麵包板、洞洞板、萬用表、調溫烙鐵套裝、各種器件、晶元,以至開發板。以上材料不需要一次性都買齊,可以按照當前學習的內容分階段購買,經濟條件有限的同學也不用擔心,以上材料的開銷除開發板之外都不貴,可網路購買。對於開發板,可以買學長學姐的二手板卡,能過測試就證明板卡是OK的。
有了學習材料,就要學以致用,例如今天學習了三極體做開關,就可以自己動手畫畫電路圖,然後在洞洞板上實踐一下,通過實際操作,加深印象的同時,也能驗證自己的設計方案。
3.勤於思考和提問,網路如此發達,提問的能力和技巧我就不再贅述了。
三、技能提升建議
如果你進入的是一家規模較小的公司,那麼你可能有機會接觸各類技術。這是絕佳的鍛煉機會,要注意不要特別深入某一方向而不關注其他技術,要知道大牛需要的是多方位的技能。
大公司的話,往往分工比較細致而明確,那就需要在完成自己工作的同時多關注項目組中其他同事遇到的問題,能協助解決最好,不能解決的要關註解決的情況和方法,多蹭經驗。幫助別人的同時就是在幫助自己提高,多花時間處理實際問題是難得的經驗。
不管在哪種場合工作,一定注意經驗的積累,好記不如帶墨,要用文字將經驗記錄下來,將遇到的問題詳細描述清楚,沒事的時候翻看一下,工作時間長了,你會發現這是一筆難得的財富。
限於篇幅,這里就不再多講技術的細節了,希望各位讀者在技術成長的過程當中都能有自己清晰的學習路徑,安排好自己的學習計劃,穩扎穩打!
② 學嵌入式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內核編譯出錯。
你的編譯環境有問題。
as 提示不支持某個參數,而且從上面看你應該在編譯 arm 架構的內核,但後面的提示是 as 命令,這種名字的命令(沒有架構前綴)應該是本地編譯器。我想你不太可能在 arm 上本地編譯內核吧(實際上確實可以,而且我以前玩 arm 也都傾向於 arm 上本地編譯,就是速度慢,需要用 distcc 加速,但兼容好)?
貌似是 -EL 參數 ix86 架構不支持。所以不太可能這步就是應該用本地 as 編譯。
如果不是 arm 本地編譯,那有可能這步用錯了 as 這個匯編器命令。你的台式計算機 as 是 x86 或者 amd64 的,肯定不支持 arm 特有的編譯參數和代碼。
你看看你的編譯文章吧。可能有錯,不符合現在內核編譯的規范了。或者 GCC 版本太老或者太新不支持這個參數。不排除你的交叉編譯環境有問題。
別聽那匿名胡扯的,內核源代碼根本沒有 configure 。
④ XP系統下載機,應該注意哪些方面
lcdproc用過一兩次。最近入了台plam
vx,用lcd4linux成功在其上面顯示系統信息~~之後深入研究lcd4linux,發現功能強大呀....而且源碼在手,今天成功在s60手機上顯示lcd4linux輸出的信息了,強大得很,唯一不足是s60的軟體不怎麼好用。
⑤ 學Linux到底學什麼
第一條:運維應用-->系統架構-->運維開發-->系統開發
第二條:運維應用-->應用dba-->架構dba-->開發DBA
下面詳細每個階段的職位說明:
01.運維應用級別:
這個階段就是玩別人的軟體,例如:linux,nginx,mysql,php,nagios 大多數的linux運維工程師,網路工程師,系統工程師都是這個階段。 這個階段屬於金字塔的底端,工資是相對比較低的。
02.系統架構級別:
這個階段就是用已知軟體架構大規模集群方案以及實現各種技術方案,屬於運維應用上層,需要靠技術,溝通,思想三條線通力配合才能達到這個水平。
03.運維開發級別:
這個階段就是利用已知語言,開發基本的應用層工具,例如:web管理系統,如果具備前兩個運維應用和系統架構的積淀,這個是很輕松可以實現的。
04.系統開發級別:
這個階段就是修改開源的軟體,或者開發新的服務軟體(例如:也開發一個web軟體,存儲軟體)與底層軟體(例如:OS),是更高一層的開發人員。
05.資料庫管理和架構:
這個階段就是也主要是玩別人的軟體,但是數據相對更重要,要求有一定的運維應用的能力。
以上是常規的Linux發展路線,對於想學Linux運維,或正處於Linux運維相關工作的人員,可以根據自身的情況進行定位,選擇適合自己的發展路線,往往可以在職場上更加得心應手!
⑥ shell腳本中lcd是什麼意思
shell腳本中lcd是FTP服務的內置命令,是在本地主機目錄操作的命令。
Shell Script,Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,比用其他編程程序編輯的程序效率更高,它使用了Linux/Unix下的命令。
(6)lcd4linux擴展閱讀:
shell腳本:
打開文本編輯器(可以使用vi/vim命令來創建文件),新建一個文件test.sh,擴展名為sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用php寫shell 腳本,擴展名就用php好了。
輸入一些代碼,第一行一般是這樣:
1、#!/bin/bash
2、echo"HelloWorld!"
"#!" 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種Shell。
echo命令用於向窗口輸出文本。
參考資料來源:網路-Shell腳本
⑦ 哪家的S5PV210開發板有視頻教程呢主要是Linux和Android部分。
目前210開發板視頻很少,基本沒有專門為某個開發板錄的,基本都是第三方的。相比而言,飛凌的OK210視頻還多一點兒,給你個目錄參考一下吧。
Android視頻
1、飛凌S5PV210開發板Android編譯環境搭建視頻教程
2、飛凌S5PV210開發板Android源碼編譯視頻教程
3、飛凌S5PV210開發板將Android燒寫到開發板視頻教程
4、飛凌S5PV210開發板將Android開發環境搭建視頻教程
5、飛凌S5PV210開發板將Android應用開發實例視頻教程
WIN
CE視頻
1、飛凌S5PV210開發板wince環境搭建與編譯視頻教程
2、飛凌S5PV210開發板初識bsp視頻教程
3、飛凌S5PV210開發板bootloader的啟動流程視頻教程
4、飛凌S5PV210開發板LED驅動與應用程序開發視頻教程
5、飛凌S5PV210開發板串口驅動與應用程序開發視頻教程
6、飛凌S5PV210開發板攝像頭驅動與應用程序開發視頻教程
Linux視頻
1、飛凌S5PV210開發板Windows7
安裝Ubuntu12.04(32位)
虛擬機視頻教程
2、飛凌S5PV210開發板配置虛擬機環境視頻教程
3、飛凌S5PV210開發板Linux內核代碼的下載視頻教程
4、飛凌S5PV210開發板移植新的Linux內核代碼到開發板視頻教程
5、飛凌S5PV210開發板在新的Linux內核代碼中增加網路驅動視頻教程
6、飛凌S5PV210開發板在新的Linux內核代碼中增加LED驅動視頻教程
7、飛凌S5PV210開發板在新的Linux內核代碼中增加串口驅動視頻教程
8、飛凌S5PV210開發板在新的Linux內核代碼中增加LCD顯示功能視頻教程
9、飛凌S5PV210開發板在新的Linux內核代碼中增加電阻觸摸功能視頻教程
10、飛凌S5PV210開發板編寫Led應用程序視頻教程
11、飛凌S5PV210開發板編寫串口測試應用程序視頻教程
QT視頻
1、飛凌S5PV210開發板QT
creator
集成開發環境介紹視頻教程
2、
飛凌S5PV210開發板hello
world視頻教程
3、飛凌S5PV210開發板ubuntu環境搭建視頻教程
4、飛凌S5PV210開發板如何在開發板上運行qt4.7程序視頻教程
5、飛凌S5PV210開發板應用開發實例視頻教程
裸機視頻
1、飛凌S5PV210開發板下載bin文件到開發板視頻教程
2、飛凌S5PV210開發板裸機開發環境搭建視頻教程
3、飛凌S5PV210開發板實例1:蜂鳴器實驗視頻教程
4、飛凌S5PV210開發板實例2:LED流水燈實驗視頻教程
5、飛凌S5PV210開發板實例3:按鍵實驗視頻教程
6、飛凌S5PV210開發板實例4:串口操實驗視頻教程
7、飛凌S5PV210開發板實例5:IIC實驗視頻教程
8、飛凌S5PV210開發板實例6:PWM實驗視頻教程
硬體設計視頻
1、飛凌S5PV210開發板AD10的安裝視頻教程
2、飛凌S5PV210開發板AD10的介紹視頻教程
3、飛凌S5PV210開發板AD10元件庫的製作方法視頻教程
4、飛凌S5PV210開發板AD10封裝庫的製作方法視頻教程
5、飛凌S5PV210開發板OK210最小系統可行性分析視頻教程
6、飛凌S5PV210開發板設計原理圖視頻教程
7、飛凌S5PV210開發板生成PCB視頻教程
8、飛凌S5PV210開發板制板流程講解視頻教程
⑧ video4linux編程中RGB24格式的採集數據怎樣顯示在LCD屏幕上
s3c2440內核默認是16格式的,如果要以RGB24格式顯示出來,在低於2.6.22版本的系統上要在s3c2440fb.c裡面更改驅動
⑨ 求助幫忙解決op下的帶dpf驅動的lcd4linux
先裝個環境,xampp等,然後裝MOODLE或者直接下moodle的安裝一體包,直接裝就可以了