🛠️ NuttX调试 & GDB实战
30章
🎯 风格 · 紧凑目录
01
课程导论
为什么需要调试NuttX?调试工具全景概览
02
GDB基础回顾
GDB的启动与退出、断点管理、单步调试
03
NuttX编译与调试环境搭建
工具链选择、OpenOCD配置、JLink/GDB Server
04
NuttX内存布局分析
链接脚本解读、RAM/Flash分区、堆栈地址计算
05
GDB调试NuttX内核
加载符号表、调试内核启动流程、分析任务切换
06
调试NuttX任务与线程
查看任务列表、切换上下文、分析栈回溯
07
调试中断与异常
注册中断向量、断点触发中断、分析异常栈帧
08
调试设备驱动
GPIO、UART、SPI驱动调试实战
09
调试文件系统
挂载点检查、文件操作跟踪、缓冲区分析
10
调试网络协议栈
NuttX TCP/IP栈调试、socket断点、数据包分析
11
调试内存管理
malloc/free跟踪、内存泄漏检测、堆碎片分析
12
调试信号量与互斥锁
死锁检测、优先级反转、信号量状态查看
13
调试消息队列
消息收发跟踪、队列溢出分析
14
调试工作队列
工作项调度、延迟执行、优先级问题
15
调试定时器
系统滴答、软件定时器、超时处理
16
调试动态加载模块
ELF加载器、符号解析、模块断点
17
调试系统调用
系统调用入口、参数检查、返回值跟踪
18
调试电源管理
休眠唤醒流程、时钟门控、功耗分析
19
调试SMP多核
CPU亲和性、核间通信、锁竞争
20
调试MPU/MMU
内存保护、页错误分析、权限检查
21
调试C++异常与RTTI
NuttX中的C++支持、异常处理、类型信息
22
调试汇编代码
启动汇编、中断向量表、上下文切换汇编
23
GDB脚本自动化
Python GDB脚本、批量断点、自动化测试
24
GDB与Trace工具结合
systrace、ftrace、perf
25
GDB与Core Dump
生成与分析coredump、事后调试
26
GDB与JTAG/SWD调试
硬件调试器使用、JTAG链配置、SWD时序
27
GDB与QEMU模拟器
QEMU调试NuttX、网络仿真、外设模拟
28
GDB与IDE集成
VS Code、Eclipse、CLion调试配置
29
常见调试问题与解决方案
HardFault分析、栈溢出、野指针
30
综合实战
调试一个完整的NuttX应用(从启动到崩溃分析)