从零搭建掌机 · 嵌入式开发
📚 30章完整版
v1.0
01
嵌入式系统概述
什么是嵌入式系统
嵌入式系统的特点
应用领域
掌机与嵌入式的关系
02
开发环境概览
交叉编译的概念
宿主机与目标机
开发工具链介绍
搭建流程总览
03
Linux操作系统基础
Linux简介
常用命令 (ls, cd, mkdir...)
文件权限管理
vim编辑器基础
04
虚拟机与Ubuntu安装
VMware/VirtualBox安装
Ubuntu镜像下载
虚拟机配置
系统安装与初始化
05
Linux网络配置
网络模式 (桥接/NAT/仅主机)
配置静态IP
SSH服务安装与连接
文件传输 (scp, sftp)
06
交叉编译工具链安装
什么是交叉编译工具链
下载与解压
配置环境变量
验证安装
07
Makefile基础
Makefile的作用
基本语法
变量与自动变量
伪目标 & 编译示例
08
Bootloader与U-Boot
Bootloader的作用
U-Boot简介
U-Boot源码获取
编译U-Boot
09
Linux内核编译
内核源码获取
配置内核 (menuconfig)
编译内核
编译内核模块
10
设备树 (Device Tree)
设备树的概念
dts/dtb/dtsi文件
基本语法
编写一个简单的设备树
11
根文件系统构建
根文件系统的作用
Busybox简介
编译Busybox
构建最小根文件系统
12
文件系统制作与烧录
制作ext4/jffs2镜像
使用dd命令
烧录到SD卡/NAND Flash
13
嵌入式Linux启动流程
从上电到Shell的完整流程
U-Boot启动内核
内核挂载根文件系统
14
字符设备驱动基础
驱动的作用
字符设备与块设备
file_operations结构体
简单的Hello驱动
15
GPIO驱动开发
GPIO子系统介绍
在设备树中描述GPIO
编写GPIO控制驱动
用户空间测试
16
I2C驱动开发
I2C协议简介
I2C子系统架构
编写I2C设备驱动
与传感器通信示例
17
SPI驱动开发
SPI协议简介
SPI子系统架构
编写SPI设备驱动
驱动LCD屏幕示例
18
LCD与显示驱动
Framebuffer概念
LCD硬件接口
配置Framebuffer驱动
显示图片与文字
19
触摸屏驱动
触摸屏类型 (电阻/电容)
输入子系统
编写触摸屏驱动
校准与测试
20
音频驱动开发
ALSA架构简介
I2S协议
配置音频编解码芯片
播放与录音测试
21
Wi-Fi与蓝牙驱动
SDIO与USB接口Wi-Fi模块
移植驱动
配置网络连接
蓝牙配对与通信
22
电源管理
CPU频率调节
休眠与唤醒
电池电量检测
优化功耗的技巧
23
实时性与RTOS
嵌入式Linux的实时性限制
RT_PREEMPT补丁
Xenomai简介
裸机与RTOS对比
24
裸机开发基础
裸机与Linux的区别
启动流程
链接脚本
点灯程序 (汇编版)
25
裸机中断与定时器
中断向量表
GIC控制器
配置定时器
中断服务程序编写
26
裸机UART驱动
UART协议
寄存器配置
轮询与中断方式收发
实现printf
27
裸机LCD驱动
LCD时序
配置控制器
显存操作
绘制点线面
28
裸机文件系统与SD卡
SD卡协议简介
SPI模式读写SD卡
FAT32文件系统实现
29
综合项目:掌机硬件设计
硬件选型 (主控/屏幕/按键/电池)
原理图设计要点
PCB布局建议
30
综合项目:掌机软件集成
整合所有驱动
编写游戏框架 (贪吃蛇)
制作开机动画
打包固件