xflash Debugging
本章节主要描述在xflash命令行工具的使用过程中,遇到的相关问题,以及对应的参考解决方式。
xflash无反应/失去响应
使用v15.1.4以上版本的XTC工具中的xflash命令在线烧录.xe文件,始终停留在烧录过程中。
这可能是由于XTAG没有连接xLink线,或者没有正确连接xLink线所导致的。
解决思路:
在xflash命令最后添加--force-jtag,该命令会使得芯片通过JTAG调试/烧录固件,而不使用xlink(默认选项)。使用示例如下:
xflash --factory $example.xe$ --spi-spec $example.spec$ --force-jtag
请将$example$包裹的内容替换成对应的文件全名。
--force-jtag
指示程序 仅通过JTAG进行调试,而不使用更快的xSCOPE link。默认情况下,如果在XN文件中声明,则使用xSCOPE link。 建议仅在xSCOPE link物理断开时使用该选项。
未声明portHolder 0
在xflash时,出现如下错误
error: parse error before ',' token
error: use of undeclared identifer `portHolder 0'
解决思路:
XN文件中Flash mode,与xxx.spec的mode不匹配,需要将Flash使用的模式设置为一致,均为QSPI Mode或SPI Mode。
下面是Flash模式匹配错误的两个示例:
- 在XN文件中定义flash使用QSPI模式(Class="SQIFlash"),而在烧录时使用的
xxx.spec定义的模式是SPI(17. READ cmd为0x0B)。 - 在XN文件中定义flash使用SPI模式(Class="SPIFlash"),而在烧录时使用的
xxx.spec定义的模式是QSPI(17. READ cmd为0xEB)。
请检查XN文件或SPI-SPEC
在xflash xxx.xe文件时,出现错误:
error: Site 0 has started. Error: Incomplete configuration for flash device at node "0". Please check XN file or SPI-SPEC.
error: Error: F03013 Failed to run: 0x7fffa47caa60.
情况1: XN文件当中定义的SPI mode ,而实际的硬件连接是QSPI mode,或者XN的是QSPI 模式,硬件是SPI mode
解决思路:
XN文件中Flash mode,与xxx.spec的mode不匹配,需要将Flash使用的模式设置为一致,均为QSPI Mode或SPI Mode。
情况2:xflash时,通过--spi-spec 指定的xxx.spec文件,文件中的device_id参数,与实际使用Flash device id不一样
解决思路:
将device_id参数, 修改为实际的Flash device id。
Flash device id获取命令如下
xflash --spi-read-id 0x9f --target=XCORE-AI-EXPLORER
验证页0x00000000失败
在xflash xxx.xe文件时,出现错误
Site 0 write 0x00000000. Verify failed for page 0x00000000, offset 0x0000 (read 0x00, expected 0x02).
解决思路:
需要将Flash的xxx.spec描述文件中,PROT_TYPE_SR 更改为 PROT_TYPE_NONE,即去除保护;既然不需要保护了,那么QSPI_SP, QSPI_SU参数可以设定为 {{0,0},{0x00,0x00}}
Code DFU部分:DFU_FLASH_DEVICE参数,同样是需要修改的
该报错信息可能由多种原因引起,需要根据实际情况进行分析,上述解决思路仅针对某些情况有效。