NXP MCUBootUtility 与 MCUXpresso IDE 烧录对比:2 种方法生成 3 种固件格式
NXP MCUBootUtility 与 MCUXpresso IDE 烧录对比:2 种方法生成 3 种固件格式
当开发者完成代码编写和编译后,面临的下一个关键问题是如何将程序高效、可靠地烧录到目标开发板中。对于使用恩智浦MCU的开发者来说,主要有两种烧录路径:使用官方MCUXpresso IDE内置的烧录功能,或者选择第三方工具NXP-MCUBootUtility。这两种方法各有特点,适用于不同的开发场景和需求。
本文将深入对比这两种烧录方法,重点分析它们在操作流程、支持格式、烧录速度以及特殊功能(如XIP支持)等方面的差异。我们还将详细介绍如何从.axf文件生成.bin/.hex文件的不同方法,以及针对RT1060等支持QSPI Flash XIP运行模式的MCU所需的特殊处理。
1. 固件格式转换:从.axf到可烧录文件
在嵌入式开发中,编译器通常生成.axf格式的调试文件,但实际烧录时需要转换为更通用的.bin或.hex格式。MCUXpresso IDE和MCUBootUtility提供了不同的转换方法。
1.1 使用MCUXpresso IDE进行格式转换
MCUXpresso IDE基于Eclipse平台,提供了完整的开发环境,包括编译、调试和烧录功能。在IDE中转换文件格式非常简单:
- 在项目资源管理器中,右键点击编译生成的.axf文件
- 选择"Binary Utilities" → "Create Binary"
- 在弹出的对话框中,可以选择生成.bin或.hex格式
- 指定输出文件名和路径后,点击"OK"完成转换
转换后的文件特点:
- 如果是RT1060等支持XIP的MCU,生成的.bin文件会自动包含必要的XIP头信息
- 转换过程会保留所有必要的段信息,确保程序能在目标硬件上正确运行
提示:对于需要精确控制内存布局的项目,可以在转换前修改链接脚本,确保生成的二进制文件符合预期。
1.2 使用MCUBootUtility进行格式转换
NXP-MCUBootUtility作为独立工具,也支持从.axf到.bin/.hex的转换:
# 假设MCUBootUtility安装在以下路径 cd /path/to/MCUBootUtility/bin ./mcubootutility --convert input.axf --output output.bin --format bin转换选项对比:
| 功能 | MCUXpresso IDE | MCUBootUtility |
|---|---|---|
| 图形界面操作 | 支持 | 支持 |
| 命令行操作 | 不支持 | 支持 |
| 自动添加XIP头 | 支持 | 支持 |
| 批量转换 | 不支持 | 支持 |
| 自定义内存布局 | 需要修改链接脚本 | 提供额外参数选项 |
2. 烧录方法对比:IDE内置功能 vs 独立工具
2.1 MCUXpresso IDE内置烧录功能
MCUXpresso IDE提供了集成的烧录解决方案,特别适合开发调试阶段使用。其烧录流程如下:
- 确保开发板通过调试器(如J-Link、LPC-Link等)正确连接到主机
- 在IDE中选择目标配置(Debug或Release)
- 点击"Debug"按钮旁边的下拉箭头,选择"Flash Program"
- 在弹出的对话框中选择要烧录的文件(支持.axf、.bin、.hex等格式)
- 点击"Program"开始烧录
烧录性能指标:
- 平均烧录速度:约50-100KB/s(取决于调试器类型)
- 支持断点调试:是
- 支持芯片擦除:是
- 支持部分编程:是
2.2 NXP-MCUBootUtility烧录流程
MCUBootUtility是一个专门为恩智浦MCU设计的独立烧录工具,支持更多高级功能:
- 下载并解压MCUBootUtility(最新版本可从GitHub获取)
- 连接开发板,并将启动模式设置为串行下载模式(对于RT1060,拨码开关设置为1off2off3on4on)
- 运行MCUBootUtility,选择正确的MCU型号
- 点击"Connect"按钮建立连接
- 选择要烧录的文件(支持.bin、.hex、.sb等格式)
- 点击"All-In-One Action"开始烧录
特殊功能支持:
- 自动添加XIP头信息
- 支持安全启动(Secure Boot)相关操作
- 提供Flash配置工具
- 支持批量生产模式
3. XIP模式与特殊格式处理
XIP(eXecute In Place)是一种让MCU直接从外部Flash执行代码的技术,恩智浦的i.MX RT系列MCU广泛支持这一特性。但XIP模式需要特殊的文件格式和处理。
3.1 XIP头的作用
XIP头包含以下关键信息:
- Flash配置参数(如时钟频率、等待状态等)
- 程序入口地址
- 校验和信息
- 安全相关配置
典型XIP头结构:
| 偏移量 | 长度 | 描述 |
|---|---|---|
| 0x000 | 4 | 魔术字(0x42464346) |
| 0x004 | 4 | 版本号 |
| 0x008 | 4 | 保留 |
| 0x00C | 4 | 程序入口地址 |
| ... | ... | Flash配置参数 |
3.2 工具对XIP的自动处理
两种工具都能自动处理XIP需求,但方式不同:
- MCUXpresso IDE:在编译阶段根据SDK中的配置自动生成正确的XIP头
- MCUBootUtility:在烧录阶段检测并自动添加必要的XIP头信息
对于RT1060开发板,典型的Flash配置参数如下:
#define FLASH_CONFIG { \ 0x42464346, /* 魔术字 */ \ 0x56010000, /* 版本号 */ \ 0x00000000, /* 保留 */ \ 0x60000000, /* 程序入口地址 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000, /* 保留 */ \ 0x00000000,