
曙海教學(xué)優(yōu)勢(shì)
本課程面向企事業(yè)項(xiàng)目實(shí)際需要,秉承二十一年積累的教學(xué)品質(zhì),嵌入式linux內(nèi)核、驅(qū)動(dòng)開發(fā)、性能優(yōu)化培訓(xùn)課程-以項(xiàng)目實(shí)現(xiàn)為導(dǎo)向,老師將會(huì)與您分享設(shè)計(jì)的全流程以及工具的綜合使用經(jīng)驗(yàn)、技巧。線上/線下/上門皆可,嵌入式linux內(nèi)核、驅(qū)動(dòng)開發(fā)、性能優(yōu)化培訓(xùn)課程-專家,課程可定制,熱線:4008699035。
  曙海的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。曙海的課程在業(yè)內(nèi)有著響亮的知名度。大批企業(yè)和曙海
     建立了良好的合作關(guān)系,20多年來(lái),合作企事業(yè)單位以達(dá)30多萬(wàn)。
嵌入式linux內(nèi)核、驅(qū)動(dòng)開發(fā)、性能優(yōu)化培訓(xùn)課程
嵌入式Linux簡(jiǎn)介
?Linux的特點(diǎn)、版本演進(jìn)與發(fā)展方向
?嵌入式Linux系統(tǒng)組成
?開發(fā)環(huán)境構(gòu)建
?安裝設(shè)置ARM工具鏈
?安裝設(shè)置NFS、SSH、TFTP服務(wù)
?GNU工具鏈和GDB調(diào)試
嵌入式Linux構(gòu)建與啟動(dòng)過(guò)程分析
?文件系統(tǒng)組成
?Busybox編譯與配置
?加入C庫(kù)
?Linux啟動(dòng)過(guò)程
?Bootloader
?內(nèi)核啟動(dòng)過(guò)程
?用戶空間init
?嵌入式Linux裁剪
?內(nèi)核Kconfig和Makefile
?內(nèi)核源代碼目錄
?內(nèi)核裁剪
?文件系統(tǒng)裁剪
Linux內(nèi)核進(jìn)程調(diào)度
?task_struct
?進(jìn)程調(diào)度算法
?進(jìn)程調(diào)度時(shí)機(jī)
?實(shí)時(shí)性
Linux內(nèi)核內(nèi)存管理
?mm_struct,?vma
?buddy系統(tǒng)
?slab、kmalloc
?DMA、NORMAL、HIGHMEM?ZONE
?靜態(tài)內(nèi)存映射
?連續(xù)內(nèi)存管理,CMA
Linux內(nèi)核文件系統(tǒng)
?虛擬文件系統(tǒng)
?inode、dentry、superblock
?文件系統(tǒng)與block層
?Flash文件系統(tǒng)
Linux?內(nèi)核系統(tǒng)調(diào)用
?Linux系統(tǒng)調(diào)用實(shí)現(xiàn)原理
?Linux系統(tǒng)調(diào)用實(shí)現(xiàn)
?增加一個(gè)新的系統(tǒng)調(diào)用
內(nèi)核編程主要API
?同步與并發(fā)
?等待隊(duì)列
?內(nèi)核延時(shí)
?內(nèi)存申請(qǐng)和釋放
?定時(shí)器
?中斷頂?shù)装氩?/span>
?軟中斷
?tasklet
?工作隊(duì)列
?threaded_irq
?Linux內(nèi)核線程
?IO與內(nèi)存訪問(wèn)
?DMA與cache一致性
Linux內(nèi)核模塊
?內(nèi)核模塊init和exit
?輸入?yún)?shù)
?輸出參數(shù)
?案例部分:4個(gè)試驗(yàn)案例演示模塊各個(gè)功能
Linux內(nèi)核調(diào)試方法
?printk
?Oops和panic
?內(nèi)核debug選項(xiàng)
?gdb、kgdb和kdb
?使用仿真器
Linux設(shè)備驅(qū)動(dòng)模型
?Linux設(shè)備分類
?Sys,總線,設(shè)備和驅(qū)動(dòng)
?熱插拔
?電源管理
?udev
Linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
?Linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
?globalmem虛擬設(shè)備實(shí)例描述
?globalmem設(shè)備驅(qū)動(dòng)
?globalmem驅(qū)動(dòng)的編譯與加載
?globalmem驅(qū)動(dòng)在用戶空間的驗(yàn)證
Linux設(shè)備驅(qū)動(dòng)中的并發(fā)控制
?并發(fā)控制的概念
?何時(shí)需要并發(fā)控制
?自旋鎖
?信號(hào)量,mutex
?增加并發(fā)控制后的globalmem驅(qū)動(dòng)
Linux設(shè)備驅(qū)動(dòng)中的阻塞與非阻塞I/O
?阻塞與非阻塞I/O
?poll操作的概念
?何時(shí)需要poll操作
?等待隊(duì)列waitqueues
?Linux?poll操作相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
?支持poll操作的globalmem驅(qū)動(dòng)
Linux?設(shè)備驅(qū)動(dòng)中的異步通知
?異步通知的概念
?何時(shí)需要異步通知
?Linux異步通知相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
?支持異步通知的globalmem驅(qū)動(dòng)
?在globalmem驅(qū)動(dòng)中增加異步通知
?在用戶空間驗(yàn)證globalmem的異步通知
Linux?MTD子系統(tǒng)與FLASH驅(qū)動(dòng)
?Linux?MTD子系統(tǒng)結(jié)構(gòu)
?NOR?FLASH驅(qū)動(dòng)
?NAND?FLASH驅(qū)動(dòng)
?FLASH文件系統(tǒng):JFFS2/YAFFS2/UBI
Linux?網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)
?Linux網(wǎng)絡(luò)協(xié)議棧
?sk_buff
?Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
?數(shù)據(jù)發(fā)送流程
?數(shù)據(jù)接收流程
設(shè)備驅(qū)動(dòng)的分層
?設(shè)備驅(qū)動(dòng)分層框架
?實(shí)例1:input子系統(tǒng)
?實(shí)例2:LCD子系統(tǒng)
I2C驅(qū)動(dòng)
?I2C主機(jī)驅(qū)動(dòng)
?I2C?client驅(qū)動(dòng)
?I2C驅(qū)動(dòng)電源管理
?I2C板文件信息
SPI驅(qū)動(dòng)
?SPI主機(jī)驅(qū)動(dòng)
?SPI?client驅(qū)動(dòng)
?SPI驅(qū)動(dòng)電源管理
?SPI板文件信息
platform設(shè)備驅(qū)動(dòng)
?platform驅(qū)動(dòng)
?platform設(shè)備
?platform設(shè)備板級(jí)信息
將Linux移植到一個(gè)新的ARM?SoC
?early_printk
?L2?cache
?OS?timer
?clk?tree
?GPIO
?pinmux
?IRQ?chip
?DMA
?MACH_INIT
?device?tree
?社區(qū)維護(hù)
Linux調(diào)試與性能優(yōu)化
?strace
?core?dump
?gdb與多線程
?常用工具
?性能優(yōu)化:?oprofile,?LTTng,?gprof
?開機(jī)速度:?bootchart
?功耗:powertop
?延遲:latencytop
?內(nèi)存分析:?procmem、procrank、smem
?top,?iostat,?netstat等