教育中心 > 短期强化培训 > 嵌入式Linux应用实验班
 
  课程描述
    详细介绍嵌入式开发流程、搭建交叉编译环境、GNU Tools的使用、bootloader的原理、linux kernel的配置、Linux下Socket编程、进程间通信编程、图形界面编程。并通过大量实例演示使学员快速掌握嵌入式Linux开发流程及与应用相关的编程方法。
  质量保证

     ·所有课程内容均可免费重听,直到学员完全掌握为止。
     ·凡是亚嵌学员,在以后工作中遇到课程相关问题,可得到免费技术支持。
     ·雄厚的师资力量、经典的课程体系、丰富的教学经验确保教学质量。
     ·成绩优秀的学员可免费到亚嵌合作单位实习、就业。

  培养对象
   嵌入式linux初学者,或具有一定经验但想了解开发全部过程的学员。
  行业需求

  工业控制,军工企事业,电信/网络/通讯,航空航天,汽车电子行业,医疗仪器,仪器仪表与电子。

  基础要求
    熟练掌握C语言编程。
  课程教材
     (1)《AKAE嵌入式linux应用班讲义》(2)《AKAE嵌入式linux应用班实验指导书》
  推荐教材
    (1)《源码开放的嵌入式系统软件分析与实践》、(2)《MiniGUI 学习版》
  实验器材
S3C2410 开发板

  教师简介

    李明:清华大学硕士,AKA 嵌入式小组核心成员,嵌入式软件仿真开源(SkyEye)项目核心成员,清华大学信息技术国家实验室系统工程师, 组织并参与清华大学多项智能嵌入式平台的研发,多年的技术普及及教学经历。   

  开课情况
  
开课时间: 4天 (24学时)
             (脱产班)
             (周末班)

上课地点:
            中科院校区
学    费:
            (公司)3800元;(个人)3200元;(学生)2600元

            
为保证教学质量,本班为小班授课,15人为满,
            报满15人即停止报名或顺延下一期,如您决定上课请及时填写报名表并办理报名手续。
 (报名时需携带本人身份证复印件1张及本人一寸照片3张)
  教学大纲

课程安排

课程内容

第一天上午
(理论课 3学时)

交叉编译工具介绍(Cross-Compiler)与启动代码分析(Bootloader)
1. 嵌入式Linux综述
   Linux的由来及现状 / 嵌入式操作系统分类 / 嵌入式linux的典型应用及分
   类实时Linux / ARMlinux / uClinux / ARM、PPC、MIPS、X86 体系结构
2. 嵌入式Linux开发基本概念
   启动代码 / 内核 / 文件系统 / 根文件系统 / 驱动程序 / 设备文件
   其他概念如(版本号、补丁、JTAG调试)
3. 嵌入式Linux开发工具介绍
   GCC及其它交叉编译器 / Makefile项目管理工具 / SkyEye 仿真工具
   其他二进制辅助工具( ld、objdump、objcopy、nm、readelf 等 )
4. 启动代码Bootloader分析各种典型的bootloader(uboot、armboot、
   redboot、grub)基本命令介绍引导程序的开发注意事项(启动代码的二阶
   段、内存地址分配、与操作系统交互等) 开发实例分析: u-Boot 的架构
   、命令用法及其扩

第一天下午
(理论课 3学时)

嵌入式Linux移植(Embedded Linux Porting)与根文件系统
(RootFileSystem)
1. Linux 与 uClinux 的目录结构
   硬件相关代码目录 / 驱动程序代码目录 / 硬件相关头文件目录
   uClinux uClibC 库程序目录 / user 用户应用程序目录 / romfs 根文件系
   统目录 uClinux 的特点与差异 (加载方式、根文件系统、可执行文件格式
   、应用程序库等)
2. 内核编译和配置
   源码下载 / 补丁文件 / 配置文件修改和使用 / 相关 Makefile 重点部分
   分析ARM Linux 配置选项和裁减、编译步骤 / uClinux配置选项和裁减、编
   译步骤二进制文件的生成 / SkyEye 仿真调试演示 / ELF、BIN、FLAT文件
   格式介绍uClinux Image File(image.ram、image.rom、
   image.binromfs.img)文件含义剖析
3. 根文件系统
   各种常见的根文件系统介绍(RomFS、JFFS2、NFS、EXT2、Cramfs、
   YAFFS等)
   根文件系统的作用和相关文件 / 最小的根系统Initrd 的制作(使用
   BusyBox)NFS 网络根文件系统(NFS服务器的搭建、网络根文件系统的加载
   )
4. Linux 根文件系统常用文件分析
   文件系统的结构 / 相关常用文件(initrd,inittab,fstab,rc脚本编写
   等)

第二天上午
(理论课 3学时)

嵌入式Linux应用程序开发与调试方法(Applications and Debugging)
1. 应用程序开发
   移植应用程序 / 添加应用程序到uClinux中 / 移植动态库
   可执行文件的加载方式(FTP传送、NFS共享、ROMFS打包、脚本批处理等)
2. 高级应用程序开发技巧
   源码文件管理 / 分级目录递归编译 / 自动生成系统配置文件 / 条件编译等
   开发实例分析:基于数据采集和网络传输系统的编程开发代码框架
3. 嵌入式调试技术
   点灯大法 / 格式化输出 / JTAG 调试工作原理介绍 / GDB 调试桩 Stub 介绍
   使用 GDB & gdbserver进行远程调试(基于串口和网络调试应用程序)
4. SkyEye 仿真调试工具
   SkyEye 背景介绍 / 模拟硬件介绍 / 可以支持的操作系统与网络协议栈
   SkyEye 应用实例分析:uClinux on SkyEye / uC/OS-II on SkyEye / MiniGUI    on SkyEye

第二天下午
(理论课 3学时)

嵌入式图形和数据库开发实例
1. 嵌入式图形系统概述(Embedded GUI Programming)
   常用的嵌入式图形系统 / 嵌入式图形系统的基本架构 / 不同嵌入式图形系统的
   特点和各自优势
2. MiniGUI的配置和安装
   MiniGUI的特点 / MiniGUI的架构 / 编译安装MiniGUI / 配置MiniGUI
3. MiniGUI的编程
   MiniGUI的编程API / Helloworld编程实例 / MiniGUI的控件概述
4. SQLite的编译安装及使用
   嵌入式的数据库简介 / SQLite的特点和结构 / SQLite的编译和安装 / SQLite的
   编程

第三天上午
(实验课 3学时)

实验一:嵌入式linux开发环境建立
实验目的:掌握交叉编译环境的建立;掌握内核的交叉编译;掌握redboot的操作
实验要求:要求独立完成内核编译,上载,运行,直到hello world程序在目标板上
          运行成功。
实验内容:在S3C2410开发板上运行linux。

第三天下午
(实验课 3学时)

实验二:根文件系统的建立
实验目的:掌握根文件系统的建立。掌握静态编译,动态编译应用程序
实验要求:要求独立完成根文件系统的建立,编写一个hello world程序运行在
          S3C2410上,比较动态编译与静态编译的不同。
实验内容:在S3C2410上运行hello world程序。

第四天上午
(实验课 3学时)

实验三:基于S3C2410的MiniGUI实验
实验目的:掌握minigui应用程序的编译和运行,理解minigui在开发板上的移植
实验要求:要求独立编译minigui库、资源和应用程序,并通过根文件系统的方式在
          目标板上成功运行hello world程序或其他实例程序。
实验内容:在S3C2410开发板上运行minigui应用程序。

第四天下午
(实验课 3学时)

实验四:基于S3C2410的sqlite实验
实验目的:掌握sqlite应用程序的编译和运行,在开发板上的运行。
实验要求:要求交叉编译sqlite,并通过测试程序静态连接sqlite库,并通过根文件
          系统的方式在目标板上成功运行hello world程序。
实验内容:在ARM9 S3C2410开发板上运行sqlite应用程序