课程目标 嵌入式Linux系统开发班 |
掌握嵌入式系统开发的流程,系统移植的方法,Bootloader的原理,学会编写Bootloader。能够进行嵌入式系统相关的项目开发。 |
培养对象 |
嵌入式系统开发工程师、系统移植工程师。 |
上课时间和上课地点 |
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:云峰大厦
近开课时间(周末班/连续班/晚班):Linux系统开发:2024年12月30日...... |
学时和学费 |
★课时:
共5天,总计30学时
◆外地学员:代理安排食宿(需提前预定)
☆注重质量
☆边讲边练
☆合格学员免费推荐工作
专注高端培训17年,曙海提供的课程得到本行业的广泛认可,学员的能力
得到大家的认同,受到用人单位的广泛赞誉。
★实验设备请点击这儿查看★ |
班级规模及环境 |
为严控教学质量,让学员有充分的提问机会,我们坚持超级小班教学,每个班级的人数限定为5人,多余人员安排到下一期。人手一套开发板和实验用的PC主机。 |
教学质量保障 |
1、学习中如有部分授课内容理解不透或消化不好,可免费在下期培训班中重听;
2、培训结束后,培训老师留给学员手机和Email,免费提供半年的技术支持,充分保证培训后出效果;
3、合格学员可免费享受推荐就业的机会。 |
师资团队 |
【李冠涛】
金牌讲师,具有10几年嵌入式技术从业经验和十年嵌入式linux驱动开发经验,对于嵌入式Linux的实现和应用有深入研究,主持开发过多个大型嵌入式项目,涉及网络,通讯,控制,信息终端等各行各业,例如航天在轨数据采集系统、地震数据采集分析系统、车载MP4设备等。对系统移植有很强的经验,在X86/ARM/XSCALE/PowerPC/MIPS等各种体系结构平台上移植Linux内核;对于嵌入式Linux的实时性和uCLinux的特点有深入研究。
【陈亮宇】
著名IT企业硬件工程师,对于硬件产业的发展有详细的了解,在嵌入式系统的讲解和传授中偏重于嵌入式软件对硬件的技术支持方面的知识,在行业中能得到广泛的应用。具有十多年嵌入式开发实战经验,6年嵌入式培训经验,熟悉ARM/PPC/MIP平台,对嵌入式Linux、uc/OS、uClinux有深入的研究。目前专攻手机设计和培训。曾为数个大型企业进行手机开发、Linux开发方面的培训。在参与的项目中,曾使用了Coldfire、POWERPC、S3C2410、PXA255等多款处理器,完成了平台移植、Bootloader移植等工作。
★更多师资力量请见曙海师资团队。 |
课程进度安排 |
课程大纲 |
第一阶段 |
1 嵌入式Linux开发环境构建
1.1 交叉开发环境介绍
1.2 编译交叉开发工具链
1.3 配置主机开发环境
1.4 建立交叉开发环境
1.5 编译器和二进制工具详解
1.6 交叉调试应用程序
|
实验内容:基于S3C2410 FS2410实验板,建立Linux交叉开发环境,调试Linux应用程序。
(1) 熟悉Redhat Linux
9虚拟机环境
(2) 安装开发工具和文件
(3) 配置超级终端/minicom
(4) 配置TFTP网络服务
(5) 配置NFS网络服务
(6) 引导目标板启动Linux内核
(7) 交叉编译应用程序
(8) 交叉调试应用程序
|
第二阶段 |
2 开发系统引导程序
2.1 Bootloader介绍
2.2 u-boot工程介绍
2.3 u-boot的编译使用
2.4 u-boot源码分析
2.5 u-boot资源分配
2.6 u-boot移植过程
|
实验内容:掌握u-boot常用命令,分析修改u-boot-1.1.2源代码,移植到FS2410实验板上。
(1) u-boot常用命令
(2) 添加u-boot新命令
(3) 设置u-boot环境变量
(4) 配置编译u-boot
(5) 移植FS2410的u-boot
|
第三阶段 |
3 vivi详解
3.1 vivi的体系架构
3.2 vivi启动的第一阶段
3.3 vivi启动的第二阶段
vivi的基本命令
3.3 mem命令
3.4 load命令
3.5 part命令
3.6 param命令
3.7 boot命令
3.8 go命令
3.9 bon命令
3.10 reset命令
3.11 help命令 |
实验内容:熟练掌握vivi常用命令
(1) 常用命令练习
(2) boot命令的使用
(3) part命令的使用 |
第四阶段 |
4 Linux内核初步第一阶段讲解
4.1 Linux内核目录结构
4.2 详解Linux内核源代码 |
实验内容:熟悉Linux内核源代码
(1) 掌握内核结构
(2) 把握内核关键点
(3) 学会阅读分析内核 |
第五阶段 |
5 ARM微处理器的结构
5.1 体系结构
5.2 寄存器结构
5.3 指令结构
ARM指令集详解
5.4 跳转指令
5.5 数据处理指令
5.6 乘法指令与乘加指令
5.7 程序状态寄存器访问指令
5.8 加载/存储指令
5.9 批量数据加载/存储指令
5.10 数据交换指令
5.11 移位指令
5.12 协处理器指令
5.13 异常产生指令 |
第六阶段 |
6 配置编译Linux内核
6.1 Linux内核介绍
6.2 Linux内核特点
6.3 Linux内核源代码结构
6.4 Linux内核选项解析
6.5 Linux内核编译链接
|
实验内容:配置FS2410板的Linux内核,熟悉内核配置选项;编译交叉开发环境所需要的内核
(1) 配置交叉开发环境
(2) 熟悉菜单配置文件的组织结构
(3) 熟悉内核配置过程选项
(4) 加入Kconfig新选项
(5) 编译交叉开发环境所需要的内核
|
第七阶段 |
7 移植Linux内核源码
7.1 Linux内核移植介绍
7.2 Linux内核移植平台相关代码分析
7.3 动手修改Linux内核源代码
7.4 分析编译过程错误和宏定义的关系
7.5 Linux启动过程源代码分析
|
实验内容:熟悉Linux内核平台相关代码,为FS2410板移植高版本的Linux内核
(1) 配置交叉开发环境
(2) 配置编译高版本的Linux内核
(3) 移植FS2410板Linux内核支持到高版本
(4) 分析解决编译过程中的错误 |
第八阶段 |
8 调试Linux内核
8.1 Linux内核调试概述
8.2 Linux内核的打印函数
8.3 Linux内核启动过程错误分析
8.4 解析oops信息
8.5 常用调试方法和工具
8.6 基本的驱动程序分析
|
实验内容:熟悉Linux启动过程信息打印函数,分析出错信息的位置,掌握基本的调试方法
(1) 配置交叉开发环境
(2) 通过基本调试手段解决内核启动过程错误
(3) 添加串口网口等基本驱动程序
(4) 为FS2410板添加MTD分区表 |
第九阶段 |
9 集成部署Linux系统
9.1 Linux文件系统制作
9.2 Linux系统集成测试
9.3 文件系统和存储设备的选择
9.4 部署Ramdisk文件系统的过程
9.5 部署JFFS2文件系统的过程 |
实验内容:基于ARM平台上完成ramdisk文件系统的制作和部署
(1) 制作小的文件系统
(2) 部署ramdisk文件系统
(3) 部署jffs2文件系统
(4) 配置u-boot使系统独立运行
|