时间 |
大纲 |
第一天 |
9:00
|
12:00 |
1 嵌入式Linux开发环境构建
目标:通过今天课程的学习,学员能掌握嵌入式Linux交叉开发环境的搭建、交叉编译工具链的使用、交叉编译工具链制作的原理、及学会通过crosstool制作自己的交叉工具链。
1.1 交叉开发环境介绍
1.2 编译交叉开发工具链
1.3 配置主机开发环境
1.4 建立交叉开发环境
1.5 编译器和二进制工具详解
1.6 交叉调试应用程序 |
13:30
|
16:30 |
【实验】
(1) 安装开发工具和文件
(2) 配置超级终端/minicom
(3) 配置TFTP网络服务
(4) 配置NFS网络服务
(5) 引导目标板启动Linux内核
(6) 制作crosstool交叉工具链
(7) 交叉调试应用程序 |
第二天 |
9:00
|
12:00 |
2 开发系统引导程序
目标:理解嵌入式linux引导程序的原理,掌握如何在FS2410硬件平台上移植u-boot。
2.1 Bootloader介绍
2.2 u-boot工程介绍
2.3 u-boot的编译使用
2.4 u-boot源码分析
2.5 u-boot资源分配
2.6 u-boot移植过程 |
13:30
|
16:30 |
【实验】
(1) u-boot常用命令
(2) 添加u-boot新命令
(3) 设置u-boot环境变量
(4) 配置编译u-boot
(5) 移植FS2410的u-boot-1.3.4
● 支持网卡、串口功能
● 支持从nor、nandflash启动
● 支持nor、nandflash烧写
● 支持yaffs2、jffs2文件系统烧写
● 支持u盘文件读取 |
第三天 |
9:00
|
12:00 |
3 配置编译Linux内核
目标:熟悉内核的原码结构和kbuild Makefile语法;掌握和内核、驱动模块编译相关的原理及方法。
3.1 Linux内核介绍
3.2 Linux内核特点
3.3 Linux内核源代码结构
3.4 Linux内核选项解析
3.5 Linux内核编译链接
3.6 内核模块编译、使用方法 |
13:30
|
16:30 |
【实验】
(1) 配置交叉开发环境
(2) 熟悉菜单配置文件的组织结构
(3) 熟悉内核配置过程选项
(4) 加入Kconfig新选项
(5) 编译交叉开发环境所需要的内核
(6) 在内核中加入自己的字符设备程序 |
第四天 |
9:00
|
12:00 |
4 移植Linux内核源码
目标:通过今天课程的学习,学员能够熟悉内核启动流程、掌握内核移植的一般方法、分析平台相关代码结构,并能够自己动手移植高版本内核支持FS2410开发板。
4.1 Linux内核移植介绍
4.2 Linux内核移植平台相关代码分析
4.3 动手修改Linux内核源代码
4.4 分析编译过程错误和宏定义的关系
4.5 Linux启动过程源代码分析
4.6 2.6内核平台设备结构介绍 |
13:30
|
16:30 |
【实验】
(1) 配置编译高版本的Linux内核
(2) 移植高版本(linux-2.6.26)内核支持FS2410板
● 网卡驱动移植
● mtd支持及flash分区方法
● yaffs2文件系统移植
● sd卡驱动
● 液晶支持
● u盘功能
(3) 分析解决编译过程中的错误 |
第五天 |
9:00
|
12:00 |
5 集成部署Linux系统
目标:理解嵌入式linux引导程序的原理,掌握如何在FS2410硬件平台上移植u-boot。
5.1 Linux文件系统制作
5.2 Linux系统集成测试
5.3 文件系统和存储设备的选择
5.4 部署Ramdisk文件系统的过程
5.5 部署JFFS2文件系统的过程
5.6 部署Yaffs2文件系统的过程 |
13:30
|
16:30 |
【实验】
(1) 制作小的文件系统
(2) 添加udev支持
(3) 部署ramdisk文件系统
(4) 部署cramfs文件系统
(5) 部署jffs2文件系统
(6) 部署yaffs2文件系统
(7) 配置u-boot使系统独立运行 |
第六天 |
9:00
|
12:00 |
6 调试Linux内核及优化linux内核
目标:掌握内核调试的常用方法、内核优化的方法策略。
6.1 Linux内核调试概述
6.2 Linux内核的打印函数
6.3 Linux内核启动过程错误分析
6.4 解析oops信息
6.5 常用调试方法和工具
6.6 基本的驱动程序分析
6.7 系统启动时间优化
6.8 电源管理方法
● 动态、静态功耗介绍
● 嵌入式处理器对电源管理的支持
● 嵌入式linux电源管理结构
● 用户层电源管理策略
● 设备驱动层电源管理策略 |
13:30
|
16:30 |
【实验】
(1) 通过基本调试手段解决内核启动过程错误
(2) 分析、处理oops错误
(3) 优化系统,加快系统启动速度
(4) 优化系统,降低系统功耗 |