主题 |
内容 |
Linux 系统开发的总述
|
Linux 开发环境及Linux 系统的组成
MontaVista 等Linux 发行版的主要工作 |
嵌入式应用组织结构
|
界面层原理与相关技术
业务层原理与相关技术
数据层原理与相关技术
接口层原理与相关技术 |
构建嵌入式Linux 系统 |
工具链
内核编译与裁减
根文件系统
应用和库裁减 |
Linux 应用程序调试技巧 |
gdbserver
/ gdb
strace
应用崩溃转储: 段错误和core dump
内存泄露 |
valgrind
mtrace
memwatch |
|
Make 与Makefile
|
Makefile 结构与规则
Autoconf、Automake 和Libtool |
Shell 程序开发 |
变量
函数
条件语句
循环语句 |
性能优化 |
oprofile
gprof
benchmark |
dhrystone
lmbench
whetstone |
|
Linux 进程调度与实时性
|
Linux
进程调度机理
Linux 内核线程
Linux 线程模型
实时任务 |
实时任务的创建
抢占时机剖析 |
硬实时Linux |
RT Linux
RT-Patch |
|
Linux 多进程应用开发
|
进程的属性和状态
进程的创建、执行、消亡
进程相关系统调用
守护进程 |
进程间通信 |
进程间通信基本概念
管道的实现及应用
信号的实现与应用
消息队列的实现与应用
共享内存的实现与应用
信号量 |
Linux 多线程应用开发 |
Linux 线程模型
线程创建、等待、退出
线程属性
实时线程
GDB 调试多线程程序 |
线程间通信 |
POSIX 信号量
互斥锁
条件变量 |
多线程编程模型 |
典型的单线程编程模型
典型的多线程编程模型
线程池 |
多线程与I/O
|
阻塞、非阻塞、异步I/O 与多线程
select 与多线程 |
嵌入式多操作系统并发运行 |
嵌入式虚拟机
OKL4 与Linux |
Linux 网络编程
|
套接字编程基础 |
套接字与端口
套接字编程相关数据结构
套接字类型
big-endian 与little-endian |
面向连接的套接字通信 |
工作流程
socket/bind/listen/accept/connect
函数
发送与接收数据
关闭套接字 |
无连接的套接字通信 |
工作流程
recvfrom 函数
sendto 函数 |
sniffer
与tcpdump |
|
Linux I/O 与文件编程
|
文件I/O 操作编程接口
Linux 设备文件
Linux I/O 操作模式:阻塞与非阻塞
轮询与select 接口
异步I/O
Linux 文件锁 |
GUI |
input
用户空间编程
framebuffer 用户空间编程
常见GUI 分析 |
- Microwindows 和nano-X
- MiniGUI
- GTK
- Qt Embedded
- Android
|
|
嵌入式数据库
|
嵌入式数据库运行原理
嵌入式数据库组织结构
嵌入式数据库访问接口
嵌入式数据库的移植与编程 |
综合项目实践 |
项目实现的功能
系统概要设计
系统详细设计
界面开发与QT应用
业务处理模块开发
建立多线程调度机制
网络通信模块开发
数据库建立访问模块开发
文件建立于访问接口
程序优化、测试(内存泄漏、系统调用跟踪、函数执行时间及频率检测、core dump处理) |