服务热线

400-600-2138

嵌入式linux内核、驱动开发、性能优化

收藏课程
课程编号:65693 时间:2012年10月28日-29日 讲师:宋老师 地点:上海
学习费用:4000 元/位
用手机看:
课程编号 开课日期 地点 培训天数 选择报名

培训对象:

有一定工作经验的嵌入式Linux开发工程师。对嵌入式Linux开发有兴趣的开发人员。

课程收益:

课程大纲:

时间地点: 上海 2012年10月28-29日

课程费用: 4000元/人

培训对象: 有一定工作经验的嵌入式Linux开发工程师。对嵌入式Linux开发有兴趣的开发人员。

学员基础: 具备一定的C/C++开发经验。

课程背景

课程内容全程以案例展开,设计案例约20个,以实际案例展开剖析驱动编程注意事项,分层和分离的设计思想,官方内核对驱动的设计规范;内核中较新的中断底半部机制threaded_irq,较新的连续内存分配器(CMA)也将以实例展开;关于Linux的移植,讲师作为官方Linux内核的维护者,将现身说法讲明新的SoC支持Linux的全过程,以及官方内核对Linux的设计规范要求,社区维护者的思维方式;实际运行Linux各种调试工具,以电路板捕获的真实数据剖析smem、oprofile、LTTng的作用。

培训目标:

使培训人员基本掌握Unix和Linux平台使用以及程序开发。包括:

Linux和Unix系统基础知识及操作;

Linux和Unix系统软件开发;

跨平台软件开发

授课方式: 定制课程 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练

课程特点:1、理论与实践相结合,解决你的实际问题。2、真实案例的剖析,深入浅出的讲解,使你能学以致用。

培训内容:2天

进入嵌入式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与多线程

常用工具(top/vmstat/iostat/sysctl等)

性能优化: oprofile, LTTng, gprof

开机速度: bootchart

功耗:powertop

延迟:latencytop

内存分析: procmem、procrank、smem

top, iostat, netstat等

讲师介绍:

在线报名:

客户报名咨询:020-39971893     400 600 2138

近期相关公开课:

报名服务流程:

中培网优势:

热门课程

会员登录

勾选即代表确认同意《用户协议》

没有账号?立即注册

忘记密码?