嵌入式硬件基础
快速掌握计算机核心硬件的一揽子原理
基础扫盲:计算机体系结构
传统计算机CPU的工作原理
一脉相承:从CPU到ARM(低功耗32位处理器)
总线架构
主频
外围储存芯片(SDRAM,DDR,NOR FLASH,NAND FLASH)
SDRAM实例分析(工作原理、SDRAM接口电路设计、SDRAM初始化过程详解、怎么测量SDRAM)
FLASH(NOR,NAND,基本结构,接口电路,如何访问,怎么测量)
ARM
1、理解ARM嵌入式体系结构
2、ARM编程初步
一脉相承:从CPU到ARM(低功耗32位处理器)
ARM嵌入式体系结构
应用实战:ARM编程环境(裸机操作)
设备、内核与驱动
认识嵌入式设备、内核、驱动的联系
设备驱动和内核的关系
设备驱动开发和应用程序开发的区别
常见嵌入式设备分类
驱动模块入门
掌握驱动模块编写、编译和加载过程
口诀:内核模块编写要点
模块的初始化和退出函数
模块编译方法
模块的加载和卸载
字符设备驱动开发
完成字符设备驱动开发
字符设备的特点
文件操作指针的定义
设备注册
经验:常用的字符设备操作
驱动开发接口
1 根据项目选择某设备驱动接口作为重点讲解
2 总结驱动设备程序的调试经验
3 举一反三,快速胜任一种陌生设备驱动开发
经验:设备驱动开发技术理论基础与内核
锁、队列串口驱动、触摸屏幕、延时、定时、中断处理、内存分配
IO操作接口
总线设备驱动模型、内核子系统
嵌入式文件系统
掌握嵌入式文件系统的系列核心操作
文件系统 (Filesystem)基础知识
嵌入式系统采用的主要文件系统
Busybox详解
Busybox指令集包括的内容
Busybox源码分析
应用实战:如何应用Busybox来搭建嵌入式文件系统
Busybox的移植
主要设备文件和库文件的组成与搭建
应用实战:Jffs2或yaffs2映像文件的的制作、烧写,以及实际演示
嵌入式开发中对文件系统的基础应用
linux proc文件系统
移植根文件系统
项目第一版本指导
1 项目需求分析、设计和团队分工
2 项目文件系统实现
3 项目辅导
项目需求分析——车载监控终端(参考项目)
采用嵌入式linux作为终端,将项目分为监控中心,车载终端,虚拟GPS模块3个部分分开实现
驱动程序接口实现
基本的根文件系统:Busybox,基本运行库,启动脚本
文件系统采用YAFFS2文件系统,烧写在NANDFlash中
Bootloder
掌握嵌入式设备启动加载原理
Bootloder启动加载原理
Bootloder的主要功能
U-boot(或VIVI)源码分析
U-boot(或VIVI)移植
项目第二版本指导
1 项目引导系统系统实现
2 集中辅导
引导系统采用u-boot作为终端的bootloader
硬件设备初始化、加载操作系统及系统维护
集中辅导
Linux内核
Linux内核认知
操作系统的基本概念和原理
Linux内核的特点
内核开发和应用开发的区别
内核开发环境
内核源代码的组织和目录结构
内核主要功能和模块
内核操作
嵌入式开发中Linux内核配置和编译入门
内核配置工具的使用
内核配置原理
配置文件语法介绍
以交叉编译内核的过程和生成的目标文件
内核引导和初始化过程
掌握内核代码架构
内核运行主线的分析(动态分析)——内核从开机加载到出现shell提示符的运行流程
与内核代码目录结构的静态分析相结合,全面掌握内核代码架构
内核移植过程和方法
理解内核移植过程的原理
细节教学:根据具体开发板讲解内核移植所涉及到的模块、关键点等
经验:如何根据芯片数据手册和硬件原理图修改内核代码
经验:如何阅读芯片的数据手册和硬件原理图
项目第三版本指导
1 项目功能优化完善
2 项目文档编写
新增文件系统接口
协议栈及应用程序运行机制
打印机支持
蜂鸣器支持(模块加载)
项目集中辅导
项目文档编写 |