曙海教学优势
本课程面向企事业项目实际需要,秉承二十一年积累的教学品质,嵌入式linux内核、驱动开发、性能优化培训课程以项目实现为导向,老师将会与您分享设计的全流程以及工具的综合使用技巧、经验。线上/线下/上门皆可,嵌入式linux内核、驱动开发、性能优化培训课程专家,课程可定制,热线:4008699035。
大批企业和曙海
建立了良好的合作关系,合作企业30万+。曙海的课程培养了大批受企业欢迎的工程师。曙海的课程在业内有着响亮的知名度。
嵌入式linux内核、驱动开发、性能优化培训课程
嵌入式Linux简介
Linux的特点、版本演进与发展方向
嵌入式Linux系统组成
开发环境构建
安装设置ARM工具链
安装设置NFS、SSH、TFTP服务
GNU工具链和GDB调试
嵌入式Linux构建与启动过程分析
文件系统组成
Busybox编译与配置
加入C库
Linux启动过程
Bootloader
内核启动过程
用户空间init
嵌入式Linux裁剪
内核Kconfig和Makefile
内核源代码目录
内核裁剪
文件系统裁剪
Linux内核进程调度
task_struct
进程调度算法
进程调度时机
实时性
Linux内核内存管理
mm_struct, vma
buddy系统
slab、kmalloc
DMA、NORMAL、HIGHMEM ZONE
静态内存映射
连续内存管理,CMA
Linux内核文件系统
虚拟文件系统
inode、dentry、superblock
文件系统与block层
Flash文件系统
Linux 内核系统调用
Linux系统调用实现原理
Linux系统调用实现
增加一个新的系统调用
内核编程主要API
同步与并发
等待队列
内核延时
内存申请和释放
定时器
中断顶底半部
软中断
tasklet
工作队列
threaded_irq
Linux内核线程
IO与内存访问
DMA与cache一致性
Linux内核模块
内核模块init和exit
输入参数
输出参数
案例部分:4个试验案例演示模块各个功能
Linux内核调试方法
printk
Oops和panic
内核debug选项
gdb、kgdb和kdb
使用仿真器
Linux设备驱动模型
Linux设备分类
Sys,总线,设备和驱动
热插拔
电源管理
udev
Linux字符设备驱动结构
Linux字符设备驱动结构
globalmem虚拟设备实例描述
globalmem设备驱动
globalmem驱动的编译与加载
globalmem驱动在用户空间的验证
Linux设备驱动中的并发控制
并发控制的概念
何时需要并发控制
自旋锁
信号量,mutex
增加并发控制后的globalmem驱动
Linux设备驱动中的阻塞与非阻塞I/O
阻塞与非阻塞I/O
poll操作的概念
何时需要poll操作
等待队列waitqueues
Linux poll操作相关数据结构与函数
支持poll操作的globalmem驱动
Linux 设备驱动中的异步通知
异步通知的概念
何时需要异步通知
Linux异步通知相关数据结构与函数
支持异步通知的globalmem驱动
在globalmem驱动中增加异步通知
在用户空间验证globalmem的异步通知
Linux MTD子系统与FLASH驱动
Linux MTD子系统结构
NOR FLASH驱动
NAND FLASH驱动
FLASH文件系统:JFFS2/YAFFS2/UBI
Linux 网络设备驱动
Linux网络协议栈
sk_buff
Linux网络设备驱动结构
数据发送流程
数据接收流程
设备驱动的分层
设备驱动分层框架
实例1:input子系统
实例2:LCD子系统
I2C驱动
I2C主机驱动
I2C client驱动
I2C驱动电源管理
I2C板文件信息
SPI驱动
SPI主机驱动
SPI client驱动
SPI驱动电源管理
SPI板文件信息
platform设备驱动
platform驱动
platform设备
platform设备板级信息
将Linux移植到一个新的ARM SoC
early_printk
L2 cache
OS timer
clk tree
GPIO
pinmux
IRQ chip
DMA
MACH_INIT
device tree
社区维护
Linux调试与性能优化
strace
core dump
gdb与多线程
常用工具
性能优化: oprofile, LTTng, gprof
开机速度: bootchart
功耗:powertop
延迟:latencytop
内存分析: procmem、procrank、smem
top, iostat, netstat等