1. 程式人生 > >韋東山視訊教程視訊的章節和要點

韋東山視訊教程視訊的章節和要點

第一部分 ARM體系結構與裸機實驗

韋東山Linux視訊第1期

第01課 環境搭建及工具、概念介紹

第1部分的細化,以後就在Linux上工作了,環境必須先建好

第02課 GPIO實驗

寫出第1個裸板程式,掌握幾條彙編指令,彙編怎麼呼叫C

知道怎麼操作GPIO,瞭解2440的啟動過程

寫出第1個Makefile,

第03課 儲存管理器實驗

掌握SDRAM的初始化方法

掌握位置無關指令,相對跳轉、絕對跳轉

掌握程式碼重定位

第04課 MMU實驗

大概瞭解ARM裡虛擬地址、實體地址的概念

瞭解記憶體對映的基理

掌握連結指令碼的寫法

感覺有難度的就跨過

第05課 NAND FLASH控制器

掌握第1個協議類介面:NAND的操作原理

掌握把NAND中的程式重定位的方法

第06課 中斷控制器

掌握ARM架構的中斷處理過程

第07課 系統時鐘和UART實驗

掌握提高系統時鐘的方法,掌握串列埠的操作

第08課 LCD實驗

掌握LCD的操作方法,掌握時序設定(建議同時看第2期LCD驅動)

再次深入瞭解連結指令碼,為何要清BSS段

第09課 U-BOOT分析

結合<嵌入式Linux應用開發完全手冊>瞭解u-boot的執行流程

理解u-boot的命令實現方法,能自己新增一個命令

瞭解u-boot怎麼傳引數給核心,怎樣啟動核心

第10課 核心啟動流程分析

掌握Linux核心的啟動流程:u-boot傳入的機器ID的處理

u-boot傳入的其他引數的處理

核心怎麼去啟動第1個應用程式

第11課 構建根檔案系統

第1個程序的作用

根檔案系統的構成

製作檔案系統映象檔案、燒寫

第12課節 字元裝置驅動程式

簡單的字元裝置驅動:框架、查詢方式、中斷方式、poll、

非同步通知、同步互斥等基本概念

第二部分 高階驅動程式及除錯

韋東山Linux視訊第2期

第13課 輸入子系統

第12課裡的驅動程式碼基本上都是自己寫的,

第13課分析核心自帶的驅動,理解後再新增自己的硬體支援

輸入子系統是很重要的,觸控式螢幕、鍵盤、滑鼠等都是這套框架

第14課 驅動程式分層分離概念_匯流排驅動裝置模型

核心裡大量使用所謂的平臺驅動、平臺裝置,這只是一個技巧

第15課 LCD驅動程式

掌握frame buffer這套自帶驅動

掌握LCD的操作原理、時序設定

掌握編寫硬體相關的LCD底層驅動

第16課 觸控式螢幕驅動程式

掌握電阻式觸控式螢幕的操作原理

掌握輸入子系統的第2個驅動(第1個驅動是第13課)

第17課 USB驅動程式

掌握USB驅動程式的框架:USB主機控制器驅動、USB裝置驅動

掌握USB裝置驅動的編寫方法

掌握USB資料的讀寫方法

第18課 塊裝置驅動程式

瞭解塊裝置驅動程式的框架,為何引入塊裝置驅動

掌握第1個最簡單的塊裝置驅動程式:用記憶體模擬硬碟

第19課 NAND FLASH驅動程式

MTD裝置的分層

NAND FLASH的操作原理

NAND FLASH的時序設定

NAND FALSH底層硬體驅動的設計

劃分分割槽

第20課 NOR FLASH驅動程式

MTD裝置的分層

NOR FLASH的操作原理

NOR FLASH的時序設定

NOR FALSH底層硬體驅動的設計

劃分分割槽

第21課 網絡卡驅動程式

瞭解第3類驅動:網絡卡驅動的框架

編寫一個虛擬網絡卡驅動來加深瞭解

第22課 網絡卡驅動程式

記憶體類介面晶片的操作方法:確定基址、設定時序

移植:編譯、出錯、解決錯誤、再編譯

第23課 I2C裝置裸板程式

掌握I2C協議,掌握在S3C2440上怎麼操作I2C

第24課 I2C驅動程式

掌握I2C裝置驅動程式的框架及編寫方法

第25課 字元裝置驅動程式概念糾正之另一種寫法

egister_chrdev之外的第2中寫法:cdev

第26課 OSS模型音效卡驅動的框架及UDA1341、WM9876驅動移植

 

第27課 DMA

在核心下怎麼使用DMA

第28課 熱撥插機制(hotplug)和mdev的使用

結合核心程式碼瞭解裝置節點的自動建立及刪除

掌握mdev的使用方法

實現熱撥插動作,比如讓U盤自動掛載

第29課 裸板除錯

點燈、列印、用JTAG工具進行原始碼級(gdb,eclipse)的除錯

進行原始碼級(gdb,eclipse)除錯的前提條件

第30課 驅動程式除錯

printk列印,借用proc檔案系統、分析oops資訊、棧資訊回溯

自制工具──暫存器編輯器

第31課 從系統的角度進行應用程式除錯

用strace命令跟蹤系統呼叫

用gdb和gdbserver除錯

自制系統呼叫

編寫輸入模擬器

第32課 新核心下的I2C驅動程式

新核心下的I2C驅動程式框架

編寫I2C裝置驅動程式

不寫驅動程式,從使用者態直接訪問

編寫I2C匯流排驅動程式

畢業班第1課 自己寫bootloader

這是第3部分裸板的整合:啟動程式碼、重定位、NAND操作、

傳引數給核心、啟動核心

從這個簡單的程式,你可以理解u-boot的最重要功能

畢業班第2課 移植最新u-boot

這也是第3部分裸板的實際應用

畢業班第3課 移植3.4.2核心,構造根檔案系統

 

畢業班第4課 移植驅動到3.4.2核心

有人說2.6.22.6核心太老了,你看了這一課就會發現

使用老核心可以讓你學到更多,並且把驅動移到新核心很簡單

第三部分    實戰專案

韋東山Linux視訊第3期

第1個專案

數碼相框

第1課_數碼相框之系統框架

總體講述這個專案所涉及的框架,所需要的知識

第2課第1節_字元的編碼方式

講解怎樣在LCD上顯示文字, 從最簡單的點限顯示講起,
到複雜的向量字型顯示──這在實際應用中大量用到,
這一課對LCD的操作也更加深入

第2課第2節_字元的點陣顯示

第2課第3.1節_freetype理論介紹

第2課第3.2節_在PC上測試freetype

第2課第3.3節_在LCD上顯示一個向量字型

第2課第3.4節_在LCD上顯示多行文字

第3課第1節_額外專案_電子書之效果及框架

額外專案1,實現了在LCD上顯示閱讀文字
知識點:檔案編碼方式, UNICODE,
首次嘗試以面向對像的方法編寫應用程式

以面向對像的方法編寫的程式很容易擴充套件, 這是一個示例

第3課第2節_額外專案_電子書之程式碼閱讀及編寫

第3課第3節_額外專案_電子書之指標的操作

第3課第4節_額外專案_電子書之連結串列的操作

第3課第5節_額外專案_電子書之在PC上顯示

第4課_編寫通用的Makefile

從零寫出一個複雜的Makefile,工作中可以把它用於所有專案

第5課第1節_使用多種方法支援多輸入_框架及輪詢方式

以多種方式實現了輸入事件的讀取

第5課第2節_使用多種方法支援多輸入_select方式

第5課第3節_使用多種方法支援多輸入_多執行緒

第6課第1節_一小時學會網路程式設計_兩個簡單例子_tcp_udp

掌握網路程式設計,掌握遠端列印(實際產品一般沒有串列埠供你操作)

第6課第2節_修改電子書原始碼支援遠端列印1

第6課第2節_修改電子書原始碼支援遠端列印2

第7課_libjpeg的使用

使用開源庫顯示JPG圖片

第8課第1節_數碼相框功能及程式框架

這一節實現了數碼相框的架構設計,
以MainPage為例講解了具體頁面的程式設計,
把MainPage理解後, 其他頁面的操作是相似的

串講了其他頁面的程式碼,
改進了其中一個頁面, 它實際上就是一個檔案瀏覽器

第8課第2節_數碼相框程式編寫_先寫框架

第8課第3.1節_數碼相框程式編寫_圖示顯示之bmp資料提取

第8課第3.2節_數碼相框程式編寫_圖示顯示之縮放

第8課第3.3節_數碼相框程式編寫_圖示顯示之測試

第8課第4.1節_數碼相框程式GUI編寫_MainPage視訊記憶體管理

第8課第4.3節_數碼相框程式GUI編寫_MainPage輸入功能

第8課第4.4節_數碼相框GUI程式編寫_MainPage測試

第8課第5.1節_數碼相框效果演示及編譯使用方法

第8課第5.2節_數碼相框完整程式碼的講解

第8課第5.3節_數碼相框改進效能_支援中文

第8課第5.4節_數碼相框課後作業及思路

第2個專案 

遠端視訊監控

第1課第1節_攝像頭驅動_V4L2框架分析

虛擬驅動程式忽略了複雜的硬體操作,
通過它可以快速理解V4L2視訊驅動

第1課第2節_攝像頭驅動_虛擬驅動vivi的測試

第1課第3節_攝像頭驅動_虛擬驅動vivi徹底分析

第1課第4節_攝像頭驅動_從零寫一個虛擬驅動

第2課第1節_攝像頭驅動_USB攝像頭驅動框架分析

工作中我們不一定要自己寫攝像頭驅動,
但是要會修改,
會修改的前提是能看得懂,
看得懂的好方法是: 從零寫一個

第2課第2節_攝像頭驅動_從零寫USB攝像頭驅動之分析描述符

第2課第3節_攝像頭驅動_從零寫USB攝像頭驅動之實現資料傳輸_框架

第2課第4節_攝像頭驅動_從零寫USB攝像頭驅動之實現資料傳輸_簡單函式

第2課第5節_攝像頭驅動_從零寫USB攝像頭驅動之實現資料傳輸_設定引數

第2課第6節_攝像頭驅動_從零寫USB攝像頭驅動之實現資料傳輸_URB

第2課第7節_攝像頭驅動_從零寫USB攝像頭驅動之實現資料傳輸_除錯

第2課第8節_攝像頭驅動_從零寫USB攝像頭驅動之設定屬性

第3課第1節_自制USB攝像頭硬體的驅動編寫_修改UVC

我們開發了一款USB、CMOS介面二合一的攝像頭,
用兩種方法實現它的驅動程式

第3課第2節_自制USB攝像頭硬體的驅動編寫_修改MYUVC

第4課第1節_在LCD上顯示攝像頭影象_效果_框架_準備工作

衍生專案:
加上儲存圖片功能的話, 這就是一個數碼相機.
這個程式支援YUV,MJPEG,RGB格式的攝像頭,
可以在LCD或PC上顯示攝像頭影象

第4課第2節_在LCD上顯示攝像頭影象_實現攝像頭模組

第4課第3節_在LCD上顯示攝像頭影象_實現轉換模組

第4課第4節_在LCD上顯示攝像頭影象_整合程式碼

第4課第5節_在LCD上顯示攝像頭影象_除錯測試

第4課第6節_在LCD上顯示攝像頭影象_在PC上顯示

第5課第1節_CMOS攝像頭之硬體原理

根據V4L2的規範,從零實現了CMOS攝像頭驅動程式
並寫一個測試程式把影象在LCD上顯示出來

第5課第2節_從零寫CMOS攝像頭驅動1_畫框架

第5課第3節_從零寫CMOS攝像頭驅動2_編寫驅動程式框架

第5課第4節_從零寫CMOS攝像頭驅動3_初始化攝像頭模組

第5課第5節_從零寫CMOS攝像頭驅動4.1_逐個講解並設定攝像頭控制器的暫存器

第5課第6節_從零寫CMOS攝像頭驅動4.2_逐個講解並設定攝像頭控制器的暫存器

第5課第7節_從零寫CMOS攝像頭驅動4.3_逐個講解並設定攝像頭控制器的暫存器

第5課第8節_從零寫CMOS攝像頭驅動5_編譯除錯

第6課第1節_額外專案2_行動式無線監控1_效果演示

衍生專案:把USB攝像頭接到無線路由器上,使用手冊連線無線路由器,在手機上觀看攝像頭影象

第6課第2節_額外專案2_行動式無線監控2_實現過程(上)

第6課第3節_額外專案2_行動式無線監控3_實現過程(下)

第7課第1節_使用WIFI網絡卡_準備工作及配置核心

介紹使用WIFI時的若干概念,
移植WIFI驅動程式,
編譯開源工具使用WIFI網絡卡,
最後會寫一個應用程式仿照手機實現設定、使用WIFI的功能

第7課第2節_使用WIFI網絡卡_概念及工具iw(STA模式)

第7課第3節_使用WIFI網絡卡_工具wpa_supplicant(STA模式)

第7課第4節_使用WIFI網絡卡_工具dhcp及全自動使用wifi

第7課第5節_使用WIFI網絡卡_AP模式

第7課第6節_使用WIFI網絡卡_仿手機寫wifi操作程式

第8課第1節_3G上網絡卡_工具及使用

使用開源工具使用3G上網絡卡,並仿照開源工具程式設計使用它

第8課第2節_3G上網絡卡_程式設計自動切換模式

第8課第3節_3G上網絡卡_程式設計自動確認撥號埠

第9課第02節_ALSA音效卡_裸板之編寫程式_P

先寫出音效卡的裸板程式,這使得我們可以掌握音效卡的硬體操作過程;

再分析ALSA驅動程式的框架及呼叫過程,

然後從零寫出一個ALSA音效卡驅動,這使得我們可以徹底掌握ALSA驅動。

雖然工作中我們很可能只是移植廠家提供的驅動,但是前提是我們要對驅動框架有深入的理解,而最好的學習方法就是從零寫出來。

作為移植的示例,我們還移植了WM8976的音效卡驅動。

最後,簡單地寫了一個ALSA應用程式。

第9課第03節_ALSA音效卡_裸板之編譯和測試1

第9課第04節_ALSA音效卡_ALSA驅動框架

第9課第05節_ALSA音效卡_ASoC驅動框架

第9課第06節_ALSA音效卡_體驗音效卡

第9課第07節_ALSA音效卡_分析呼叫過程

第9課第08節_ALSA音效卡_從零編寫之框架

第9課第09節_ALSA音效卡_從零編寫之引數設定

第9課第10節_ALSA音效卡_從零編寫之資料傳輸

第9課第11節_ALSA音效卡_從零編寫之除錯

第9課第12節_ALSA音效卡_從零編寫之新增音量控制

第9課第13節_ALSA音效卡_從零編寫之WM8976

第9課第14節_ALSA音效卡_移植原廠WM8976驅動

第9課第15節_ALSA音效卡_修改核心音效卡BUG

第9課第16節_ALSA音效卡_編寫ALSA音效卡應用程式

第10課第1節_講解mjpg-streamer_移植_效果演示

我們使用開源工具mjpg-streamer來作為伺服器端以傳輸視訊,這本課程裡,先分析它的原始碼;然後寫一個PC客戶端程式以接收視訊並顯示出來。

第10課第2節_講解mjpg-streamer_框架

第10課第3節_講解mjpg-streamer_原始碼分析(上)_主程序

第10課第4節_講解mjpg-streamer_原始碼分析(中)_輸入通道_視訊採集過程

第10課第5節_講解mjpg-streamer_原始碼分析(下)_輸出通道_視訊傳輸過程

第10課第6節_講解mjpg-streamer_自己寫客服端(上)

第10課第7節_講解mjpg-streamer_自己寫客服端(下)

第10課第8節_講解mjpg-streamer_自己寫客服端_編譯除錯

第1課第1節_電源管理概述

  
先介紹電源管理,再修改uboot支援電源管理命令,繼而修改驅動新增電源管理,介紹runtime_PM框架,regulator,
最後編寫支援開關機的應用程式

第2課第1節_在uboot實現電源管理_編寫休眠功能
第2課第2節_在uboot實現電源管理_編寫喚醒功能
第2課第3節_在uboot實現電源管理_除錯
第3課第1節_系統睡眠模型_Linux的suspend流程
第3課第2節_系統睡眠模型_修改核心或驅動以使用suspend功能
第3課第3節_系統睡眠模型_給驅動程式新增電源管理功能
第4課第1節_runtime_PM框架第3課第3節_系統睡眠模型_給驅動程式新增電源管理功能
第4課第2節_runtime_PM修改驅動程式和使用
第5課第1節_regulator系統的概念並編寫程式碼
第5課第2節_regulator系統之編譯測試
第6課第1節_APP_修改數碼相框以支援自動關閉LCD
第6課第2節_APP_編寫支援開關機(suspend)的應用程式

第7課_從系統角度考慮電源管理,我們要學習更多