基于TensorFlow Lite Micro的Arduino手势识别:从模型训练到边缘部署实战
2026/6/2 18:40:04
硬件平台:瑞芯微 RK3588
U-Boot 源码路径:
./u-boot文档版本:v1.0
环境变量是 U-Boot 中用于存储配置信息的键值对系统,类似于操作系统的环境变量。它控制着 U-Boot 的启动行为、网络配置、设备参数等核心功能。
简单理解:环境变量就像 U-Boot 的"设置文件",记录了各种配置参数。
bootdelay=5# 启动倒计时bootcmd=boot_android# 启动命令baudrate=1500000# 串口波特率serverip=192.168.1.1# TFTP 服务器 IP环境变量在存储设备中以特定的二进制格式存储:
+------------------+ | CRC32 校验和 | (4 字节) +------------------+ | 标志位(可选) | (1 字节,冗余环境时) +------------------+ | 数据区 | (实际环境变量数据) | "key1=value1\0" | | "key2=value2\0" | | ... | | "\0" | (双 NULL 结束) +------------------+关键点说明:
key=value对以\0(NULL 字符)分隔\0\0)结束env_t)文件位置:u-boot/include/environment.h:165-176
typedefstructenvironment_s{uint32_tcrc;/* CRC32 校验和 */#ifdefCONFIG_SYS_REDUNDAND_ENVIRONMENTunsignedcharflags;/* 活动/过时标志 */#endifunsignedchardata[ENV_SIZE];/* 环境变量数据 */}env_t;字段说明:
crc:对 data 字段进行 CRC32 计算,用于数据校验flags:冗余环境机制使用,标记哪个副本是有效的data:实际存储的环境变量数据env_driver)文件位置:u-boot/include/environment.h:231-274
structenv_driver{constchar*name;enumenv_locationlocation;/* 从存储设备加载环境 */int(*load)(void);/* 保存环境到存储设备 */int(*save)(void);/* 初始化早期环境 */int(*init)(void);};设计理念:
文件位置:u-boot/include/environment.h:212-229
enumenv_location{ENVL_EEPROM,/* EEPROM 存储器 */ENVL_EXT4,/* EXT4 文件系统 */ENVL_FAT,/* FAT 文件系统 */ENVL_FLASH,/* NOR Flash */ENVL_MMC,/* MMC/eMMC/SD 卡 */← RK3588 使用 ENVL_NAND,/* NAND Flash */ENVL_NVRAM,/* NVRAM */ENVL_ONENAND,/* OneNAND */ENVL_REMOTE,/* 远程环境 */ENVL_SPI_FLASH,/* SPI Flash */ENVL_UBI,/* UBI 文件系统 */ENVL_NOWHERE,/* 不持久化 */ENVL_BLK,/* 块设备 */ENVL_COUNT,ENVL_UNKNOWN,};