📘 NuttX 系统调用 & 用户态编程
实战课程 · 30 章完整目录
⚡ QEMU 实战
🧩 用户态/内核态
🐧 系统调用
📡 网络/传感器
🗂️ 点击卡片跳转章节
01
NuttX简介与开发环境搭建
NuttX是什么?为什么选择NuttX?搭建基于QEMU的模拟开发环境。
02
NuttX源码结构解析
顶级目录、arch、drivers、fs、sched、libs等核心目录的作用。
03
NuttX配置系统
Kconfig、defconfig、menuconfig的使用,如何裁剪内核。
04
NuttX构建系统
Makefile体系、编译流程、链接脚本、生成目标文件。
05
NuttX启动流程
从Reset向量到main函数的完整路径,board_initialize()的作用。
06
NuttX任务管理
任务控制块(TCB)、任务创建与删除、任务优先级、调度策略。
07
NuttX系统调用机制
SVC软中断、系统调用表(syscall_table)、参数传递。
08
用户态与内核态切换
MPU/MMU保护、特权级切换、栈切换、上下文保存与恢复。
09
系统调用实现原理
从用户态调用到内核服务的完整链路,以open()为例。
10
系统调用表详解
syscall.csv、syscall_lookup.h、系统调用号分配。
11
用户态编程基础
NuttX用户态程序结构、入口点、链接脚本、启动代码。
12
用户态内存管理
用户堆、mmap、brk、内存保护、页错误处理。
13
用户态文件I/O
open/read/write/close的调用链,文件描述符管理。
14
用户态进程间通信
消息队列、信号量、共享内存、管道。
15
用户态信号处理
信号注册、信号发送、信号处理函数执行、sigaction。
16
用户态定时器
POSIX定时器、alarm、setitimer、高精度定时。
17
用户态网络编程
BSD Socket API、lwIP集成、TCP/UDP示例。
18
用户态设备驱动访问
ioctl、mmap设备内存、中断处理。
19
用户态线程管理
pthread实现、线程同步、线程局部存储。
20
用户态动态链接
ELF加载器、动态库、符号解析、重定位。
21
用户态调试技术
strace、gdbstub、printf调试、日志系统。
22
系统调用性能优化
减少上下文切换、批量系统调用、vDSO机制。
23
用户态异常处理
段错误、除零错误、非法指令、信号传递。
24
用户态与内核态共享数据
共享内存、procfs、sysfs。
25
用户态电源管理
suspend/resume、wake lock、定时唤醒。
26
用户态安全机制
沙箱、权限检查、能力模型、seccomp。
27
用户态实时性
优先级继承、抢占点、调度延迟、RT测试。
28
用户态与内核态混合编程
ioctl、sysfs、netlink、自定义系统调用。
29
NuttX用户态应用移植
从Linux移植到NuttX的常见问题与解决方案。
30
综合实战:HTTP服务器+传感器
构建完整的NuttX用户态应用程序(HTTP服务器+传感器数据采集)。