搞个嵌入式linux培训班的课程来看下,就知道要学什么了
C语言基础、C++基础、数据结构、操作系统原理、Linux应用基础、电子电路基础
开课前一周:入学基础测试与辅导(C语言、C++、linux基础、数据结构、电子电路)
第一天上
数电&C语言基础测试
第一天下
C++语言&操作系统基础测试
第二天上
操作系统基础
第二天下
Linux基础
正式课程
序号 课程内容
Linux开发基础一
学习目标:
熟练安装、操作linux系统,
并能配置各种开发环境与常用服务
教学案例:
Linux系统安装
Linux开发平台搭建与开发工具使用
1
Linux 概述; Linux发行版;
Linux开发环境搭建-vmware虚拟机;Linux系统安装
Linux的基础知识; Linux文件系统和文件; Shell的使用;常用的shell命令;Linux的软件安装;
Linux 下的C语言编程基础;Linux下VIM的使用;
编译器GCC的使用;调试器gdb的使用;
Linux下多文件编译与项目管理工具make的使用;
Linux开发基础二
学习目标:
基本掌握C、C++语言,掌握常用数据结构
教学案例:
指法练习游戏
成绩管理系统
2
C语言基础强化
C语言的内存布局与常见库函数
3
数据结构强化
链表、队列、栈、树、哈希表
4
Linux下的C++语言基础强化
面向对象的编程方法 类及对象的封装 类的继承与派生
虚函数与多态性 构造函数与虚构函数
5
小项目:
指法练习游戏
成绩管理系统
嵌入式硬件开发部分
学习目标:
熟悉ARM微处理器体系架构、指令与外围器件;掌握通用外设接口的编程方法。
教学案例:
Watchdog控制程序
RTC时钟控制程序
LCD显示控制程序
ADC转换采集程序
触摸屏控制程序
Nandflash读写控制程序
1
Gec2440硬件开发平台搭建
Bootloader烧写、内核烧写、文件系统烧写
ARM开发调试环境建立
MDK开发环境使用
2
嵌入式微处理器 ARM寄存器 ARM工作模式
ARM异常中断 ARM汇编指令分类
ARM汇编指令寻址方式
ARM汇编程序设计 C及汇编语言混合编程
3
J-Linuk仿真器使用
ARM GPIO应用
ARM存储器控制器
ARM工作模式转换;
4
ARM中断控制器(IRQ和FIQ)
ARM时钟及定时器;
看门狗定时器应用;
5
TFT LCD驱动程序设计
LCD显示曲线及图片;
6
ADC控制器应用;
触摸屏应用及校准
7
NOR Flash应用设计;
NAND Flash应用设计
8
PWM时钟应用;实时时钟及闹钟应用
ARM启动代码设计 蜂鸣器控制
嵌入式应用编程部分
学习目标:
熟悉应用各种系统调用
熟悉TCP/IP协议
熟悉基于QT的GUI界面开发
教学案例:
QQ聊天程序
基于QT界面的聊天系统
1、基本应用程序设计
1
Linux交叉开发环境介绍;GNU交叉工具链的使用; 宿主机与PC机间的通信;串口通信;
Minicom配置使用,Windows超级终端配置实验;
NFS共享设置实验 交叉调试;
2
文件I/O操作编程;
Linux系统调用与用户编程接口;
Linux中文件及文件描述符概述;
不带缓存的文件I/O操作;标准I/O开发。
文件操作 目录操作 特殊文件
3
Linux进程概述;Linux下进程结构;
Linux下进程的模式类型;Linux下进程管理;
Linux进程控制编程;守护进程;信号及信号处理
4
进程间通信;多线程编程
管道;管道创建与读写;标准流管道;FIFO信号量;
共享内存实现;消息队列实现
线程概述与分类;Linux线程技术发展;线程的实现和基本操作; 线程访问控制。
2、网络程序设计
5
TCP/IP协议概述;OSI参考模型和TCP/IP参考模型;
TCP/IP协议栈;TCP和UDP;
套接字基础 网络Socket概述;Socket通信原理;
Socket基础编程。
6
小项目:
QQ聊天程序
3、界面程序设计
7
Linux下嵌入式gui编程介绍;
Qt介绍;通过Qt designer认识Qt;
信号和槽;Qt的事件
8
QT中的多线程编程;
Qt 中的网络编程。
9
小项目一:
带QT界面的聊天系统
驱动部分
学习目标:
熟悉bootloader启动原理及流程;掌握U-boot裁剪与移植
熟悉linux内核体系架构;掌握2.6.30内核的裁剪与移植
熟悉文件系统实现原理;掌握制作根文件系统
熟悉常见接口的驱动原理;
教学案例:
移植Bootloader引导程序
GPIO驱动程序
按键中断驱动程序
WatchDog驱动程序
块设备驱动程序
网络设备驱动程序
1
根文件系统制作(cramfs、jffs2、yaffs)
根文件系统的目录结构;根文件系统内容;
常见根文件系统制作;添加设备文件;添加动态链接库;
添加系统应用程序;添加配置文件;
2
支持QT显示的根文件系统制作
文件系统的目录结构;带QT根文件系统的主要内容;
添加LCD与触摸屏等设备文件;添加QT动态链接库;
添加系统应用程序;添加系统配置文件支持QT显示;
3
Bootloader介绍;GEC2440Bootloader分析;
常见bootloader源码分析;
4
u-boot配置与编译;
u-boot移植;
u-boot 使用
5
Linux内核结构
配置与编译移植 Linux内核模块设计
配置裁剪Linux内核并移植到GEC2440开发板
6
字符驱动
GPIO设备驱动,实现电子开关功能
7
驱动的中断 延时 并发控制
设备驱动的阻塞与非阻塞、异步通信
按键中断驱动,实现电子键盘功能
8
块设备驱动
9
网络设备驱动 网卡设备驱动
10
设备驱动调试与移植技巧
项目实战部分
学习目标:
熟悉实际项目开发流程;掌握项目开发平搭建;积累项目开发经验
研发项目:
基于2440的无线网络播放机VOD
项目能力重点实战
项目设计能力