学习目标通过今天课程的学习,学员能掌握嵌入式Linux交叉开发环境的搭建、交叉编译工具链的使用、u-boot烧写内核、文件系统、内核的引导和应用程序的调试。
1.嵌入式Linux开发环境构建
1.1 交叉开发环境介绍
1.2 配置主机开发环境
1.3 建立交叉开发环境
1.4 编译器和二进制工具详解
1.5 bootloader介绍
1.6 u-boot介绍
【实验】
1、安装开发工具
2、配置TFTP网络服务
3、配置NFS网络服务
4、引导目标板启动Linux内核
5、安装gcc交叉编译工具链
6、u-boot命令练习
7、交叉调试应用程序
学习目标理解嵌入式linux引导程序的原理,掌握如何在基于Cortex-A9 4核心的FS4412硬件平台上移植u-boot。
2.开发系统引导程序
2.1 u-boot目录介绍
2.2 u-boot的和配置和编译
2.3 u-boot启动代码分析
2.4 u-boot命令的添加
【实验】
1、设置u-boot环境变量
2、配置编译u-boot
3、移植u-boot-2013.01(u-boot-2016)到FS4412开发板
● 支持dm9000网卡、串口
● 支持从eMMC启动
● 支持eMMC烧写
● 支持uImage的引导
4、添加u-boot新命令
学习目标熟悉内核的源码结构和Makefile语法;掌握和内核、驱动模块编译相关的原理及方法。
3.配置编译Linux内核
3.1 Linux内核介绍
3.2 Linux内核特点
3.3 Linux内核源代码结构
3.4 Linux内核选项解析
3.5 Linux内核编译链接
3.6 内核模块编译、使用方法
【实验】
1、熟悉菜单配置文件的组织结构
2、熟悉内核配置过程选项
3、加入Kconfig新选项
4、编译开发板所需要的内核
5、在内核中加入自己的字符设备程序
学习目标熟悉内核启动流程、掌握内核移植的一般方法、分析平台相关代码结构、分析设备树结构,并能够自己动手移植Linux3.14内核支持Cortex-A9 4核心FS4412开发板。
4.移植Linux内核
4.1 Linux内核源码Makefile分析
4.2 Linux内核移植平台相关代码分析
4.3 动手修改Linux内核源代码
4.4 分析编译过程错误和宏定义的关系
4.5 Linux启动过程代码分析
4.6 Linux-3.14内核平台设备结构介绍
4.7 Linux-3.14内核设备树结构介绍
【实验】
1、配置编译高版本的Linux内核
2、移植Linux-3.14内核支持FS4412开发板
● 添加网卡驱动
● 添加eMMC驱动
● 添加SD卡驱动
● 添加LCD驱动
● 添加USB驱动
3、分析解决移植过程中出现的错误
学习目标掌握内核调试的常用方法和根文件系统的制作。
5.调试Linux内核
5.1 Linux内核调试概述
5.2 Linux内核的打印函数
5.3 Linux内核启动过程错误分析
5.4 解析oops信息
5.5 常用调试方法和工具
6.集成部署Linux文件系统
6.1 Linux根文件系统制作(busybox工具)
6.2 文件系统和存储设备的选择
6.3 通过ramdisk挂载根文件系统
6.4 部署EXT2文件系统的过程
【实验】
1、通过基本调试手段解决内核启动过程错误
2、分析、处理oops错误
3、制作基本的根文件系统
4、通过ramdisk挂载根文件系统
5、制作EXT2镜像并测试
6、添加udev支持