Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

XFLASH使用手册

概览

xflash xe文件
xflash [选项]

功能描述

XFLASH 用于创建 xCORE 闪存格式的二进制文件,如下图所示。此外,它还能够将这些文件烧录到用于启动 XMOS 系统的闪存设备中。

flash-format

闪存格式示意图

常规选项

以下选项用于定义构成二进制文件及其布局的程序映像和数据。为确保映像在扇区边界对齐,必要时会插入填充。

--factory <xe文件> [大小]

将指定的 <xe文件> 设置为出厂映像。如果给出了大小参数,系统会添加填充,确保该映像与下一映像之间至少有指定的大小间隔。默认的大小单位是“字节”,也可以使用 k 作为后缀,表示千字节。只能指定一个出厂映像。

--upgrade <id> <xe文件> [大小]

将指定的 <xe文件> 设置为带有版本 id 的升级映像。每个版本号必须是大于 0 的唯一数字。如果给出了大小参数,系统会添加填充,确保该映像与下一映像之间至少有指定的大小间隔。默认的大小单位是“字节”,也可以使用 k 作为后缀,表示千字节。可以按照命令行上的指定顺序,将多个升级映像插入到启动分区中。如果没有指定出厂映像,可以指定一个单独的升级映像,并通过 -o 选项将其写入文件。

--factory-version <版本>

指定创建出厂映像时使用的工具发布主版本号。可接受的版本值包括:13.0、13.1、13.2、14.0、14.1、14.2、14.3、15.0 和 15.1。仅当提供了 --upgrade 而没有提供 --factory 时,才需要指定此选项。此选项确保生成的闪存升级映像与安装的出厂映像格式兼容。

--boot-partition-size <n>

设置启动分区的大小为 n 字节。如果不指定,默认使用闪存设备的总大小。n 必须大于或等于存储引导程序、出厂映像和任何升级映像所需的最小空间。XFlash 会将实际的启动分区大小向上舍入到闪存的下一个扇区边界。

--data <文件>

指定要写入数据分区的 文件 内容。

--loader <文件>

指定 文件 中包含的自定义闪存加载器函数,文件 可以是对象文件(.o)或库文件(.a)。默认情况下,XTC 闪存加载器会加载经过 CRC 验证的最高版本号的映像。自定义加载器可以选择覆盖此映像。

--idnum <32位整数>

指定一个数值标识符,该标识符将被存储在闪存中。

--idstr <字符串>

指定一个字符串标识符,该标识符将被存储在闪存中。

--verbose

在目标系统上加载程序时,打印额外的信息。

--help

打印支持的命令行选项说明。

--version

显示版本号和版权信息。

目标设备选项

以下选项用于指定二进制文件将被烧录到哪个闪存设备。闪存设备的类型决定了 SPI 分频器、扇区大小和存储容量的参数。

--list-devices, -l

打印连接到 PC 的所有 JTAG 适配器以及每个 JTAG 链上的设备的编号列表,格式为:

ID         名称         适配器 ID           设备

-- ---- ---------- -------

适配器按照序列号排序。

--id <ID>

指定连接到目标硬件的适配器。XFLASH 会连接到目标平台并识别其上连接的闪存设备类型。

--adapter-id <适配器序列号>

通过指定适配器的序列号来连接目标硬件。XFLASH 会连接到目标硬件并识别其上连接的闪存设备类型。

--jtag-speed <n>

设置 JTAG 时钟的分频值为 n。相应的 JTAG 时钟速度为 6/(n+1)MHz。JTAG 时钟的默认分频值为 0,即 6MHz。

--spi-spec <文件>

支持 文件 中指定的闪存设备(参见 添加对新闪存设备的支持)。

--quad-spi-clock <参数>

为第二阶段加载器设置 Quad SPI 时钟。参数 可选值包括:5MHz、6.25MHz、8.33MHz、12.5MHz、13.88MHz、15.62MHz、17.85MHz、20.83MHz、25MHz、31.25MHz、41.67MHz、50MHz。

--spi-div <n>

设置 SPI 时钟的分频值为 n,从而得到 100/2*nMHz 的 SPI 时钟速度。如果没有指定目标设备,默认的分频值为 3(即 16.7MHz)。

--fast-spi-div <n>

设置快速启动期间使用的 QuadSPI 时钟的分频值为 n,从而得到 (xcore_clock_speed2×n)MHz\left(\frac{xcore\_clock\_speed}{2} \times n\right)\text{MHz} 的 QuadSPI 时钟速度。默认情况下,分频值为 5(即 500MHz xcore_clock 下为 50MHz)。快速启动支持的分频值包括 3、4、5 和 6。

--spi-read-id <命令>

读取连接设备的 SPI 制造商 ID。命令 应从 SPI 制造商的数据手册中获得。如果网络中有多个设备,将返回所有设备的 ID。

--noinq

不运行设备查询程序,该程序检查映像是否在扇区边界上对齐。如果未使用 --noinq,XFLASH 将尝试通过 JTAG 连接到设备。

--force-pll-reset

在引导过程中写入 PLL 寄存器时强制 xCORE-200 设备复位。默认情况下,xCORE-200 设备在写入 PLL 寄存器时不会复位,以实现更快的启动速度。

--image-search-page

指示第二阶段引导加载器在启动分区的每个页面边界搜索潜在的升级映像。这是 14.0 版及之前所有版本工具的默认搜索机制。

--image-search-sector

指示第二阶段引导加载器在启动分区的每个扇区边界搜索潜在的升级映像。这是 14.2 版工具的新默认搜索机制。

--image-search-address <地址>

指示第二阶段引导加载器在启动分区的指定地址搜索潜在的升级映像。此选项最多可使用三次,允许在闪存中存在三个独立的升级映像。

安全选项

以下选项与 AES 模块 配合使用。 [//]:(TODO:OTPdoc)

--key <密钥文件>

使用 密钥文件 中的密钥对启动分区中的映像进行加密。

--disable-otp

使得闪存加载器在程序启动后禁止访问 OTP(一次性编程)内存。如果使用了 --key 选项,则此行为为默认设置。

--enable-otp

使得闪存加载器在程序启动后启用对 OTP 内存的访问。除非使用了 --key 选项,否则此行为为默认设置。

编程选项

默认情况下,XFLASH 将生成的二进制文件编程到目标闪存设备中。

--outfile <文件>, -o <文件>

将输出放在 文件 中,并禁用编程。如果目标平台从多个闪存设备启动,则会创建多个输出文件,每个设备一个。每个输出文件的名称为 file_<节点\>,其中 <节点> 是对应节点的 Id 属性 的值。

以下选项执行目标闪存设备上的通用读取、写入和擦除操作。必须指定一个目标 XN 文件,该文件提供了用于与硬件平台上的 SPI 设备通信的端口。

--target-file <xn文件> [节点]

xn-文件 指定为目标平台。如果 xn-文件 指定了多个闪存设备,则必须指定一个值给 节点。该值必须对应于连接到目标闪存设备的节点的 Id 属性

--target <平台> [节点]

指定一个目标平台。平台配置必须在 platform.xn 文件中指定,该文件会在 XCC_DEVICE_PATH 环境变量指定的路径中搜索。如果 xn-文件 指定了多个闪存设备,则必须指定一个值给 节点。该值必须对应于连接到目标闪存设备的节点的 Id 属性

--erase-all

擦除闪存设备上的所有内存。

--read-all

读取闪存设备上所有内存的内容,并将其写入主机上的文件。必须与 -o 一起使用。

--write-all <文件>

文件 中的字节写入闪存设备。

--no-reset-on-write

防止 XFLASH 在编程设备后重置 xCORE。