📟 avatar2 外设交互
实战30章
🎒 风格 · 轻松入门
01
avatar2初探
什么是avatar2?为什么用它模拟外设?核心概念(Target、Model、Protocol)介绍。
02
环境搭建
安装avatar2与QEMU,配置Python虚拟环境,验证第一个Hello World模拟。
03
核心对象Target
创建Target、连接QEMU后端、启动与关闭模拟器。
04
内存操作
读写目标内存(read_memory/write_memory),理解地址空间与页表。
05
寄存器操作
读写CPU寄存器(read_register/write_register),以ARM Cortex-M为例。
06
第一个外设模型
用Python编写一个简单的GPIO输出模型,控制LED亮灭。
07
中断机制
模拟中断控制器(NVIC),向目标CPU注入中断。
08
定时器模型
模拟SysTick定时器,实现毫秒级延时回调。
09
UART串口模型
模拟UART外设,实现目标与主机的双向数据收发。
10
内存映射外设
将外设寄存器映射到目标地址空间,处理读写请求。
11
协议(Protocol)基础
理解avatar2的协议层,编写自定义MemoryProtocol。
12
多外设协同
同时模拟GPIO、UART、Timer,让它们协同工作。
13
状态同步
保持模拟器状态与模型状态一致,避免竞态条件。
14
调试与日志
使用avatar2的日志系统,调试外设交互问题。
15
性能优化
减少模拟延迟,批量处理内存访问请求。
16
模拟Flash存储器
实现一个简单的Flash模型,支持读/写/擦除操作。
17
模拟EEPROM
实现I2C EEPROM模型,模拟I2C总线协议。
18
模拟SPI Flash
实现SPI接口的Flash模型,处理命令序列。
19
模拟DMA控制器
模拟DMA传输,实现内存到外设的数据搬运。
20
模拟ADC
模拟模数转换器,从模型生成模拟电压值。
21
模拟PWM输出
模拟脉宽调制器,生成可配置占空比的波形。
22
模拟按键输入
模拟外部按键,通过GPIO中断通知目标。
23
模拟LCD显示屏
模拟SPI接口的LCD,在主机端渲染像素数据。
24
模拟传感器(温度)
模拟温度传感器,通过I2C返回温度值。
25
模拟传感器(加速度计)
模拟加速度计,通过SPI返回三轴数据。
26
模拟网络控制器
模拟以太网MAC,处理网络数据包收发。
27
模拟USB设备
模拟USB HID设备(如鼠标),处理描述符与报告。
28
模拟SD卡
模拟SD卡控制器,实现块读写与文件系统交互。
29
综合项目一:智能手环
模拟智能手环外设集(心率、步数、屏幕、蓝牙)。
30
综合项目二:工业PLC
模拟工业PLC外设集(数字量输入输出、模拟量输入、通信总线)。