固件升级


1. 概述

Windows搭配cygwin,编译结束后会自动生成固件SD_CarDV.bin。

Linux环境下编译完成仅生成316d_32_128_msw.bin、316d_32_128_msw.bin.xz两个文件。需要把 "DownloadTool_M5" 文件夹复制到Windows环境下,通过DownloadTool.exe手动生成固件。

2. 固件生成

双击 "DownloadTool.exe",如图1-1所示,单击弹出窗口左下方的 "Create SIF Bin",将在同目录下生成固件 "SD_CarDV.bin"。

图 1‑1 Download 工具

3. 固件生成异常信息

  • 当配置文件DiskInfo.ini设置的参数小于 "DownloadTool_M5" 文件夹下各文件夹实际大小时,会弹出类似图2-1窗口

    图 2‑1 配置参数小于实际文件夹大小

  • "DownloadTool_M5" 文件夹目录太深,可以把它复制到磁盘根目录下再尝试生成固件

  • 电脑缺少 ".NET Framework 3.5"

4. 配置文件DiskInfo.ini

图 3‑1 配置文件

如图3-1,在DiskInfo.ini文件中,

  • 分区大小(Partition Size)单位为扇区(Sector,512Bytes)

  • 分区大小需要是sf_cfg.c中SPINORConfigMatrix[] 对应的SPI Flash的sectorsize的整数倍,各分区设置的值需要大于对应文件夹实际大小

    如图3-1中 "SDKeepCodeSize" 设置为11264,实际分配大小为5.5M (11264 * 512 / 1024)

  • "DirPath" 的值对应 "DownloadTool_M5" 目录下同名文件夹

  • "RawFileName" 的值为各分区对应的BIN档

  • "SDKeepCodeSize" 要大于 "[DEFAULT_FW]" 下所有文件大小的总和。

    其中 "file2" 可以设置为 "316d_32_128_msw.bin",加快开机速度;

    也可以设置为 "316d_32_128_msw.bin.xz",使用更小的SPI Flash 降低成本。

  • 留意生成后的固件大小是否大于SPI Flash大小,如果大于,升级会直接中止并关机。这时需要检查各分区是否有节省空间可能。

  • PART_0的访问可以通过SF:0:\\, PART_1的访问可以通过SF:1:\\

图 3‑2 配置文件2

  • 当Part Type设置FAT时,打包对应目录下的整个文件,生成BIN档,如UserRes文件夹打包成UserRes.bin。

  • 当Part Type设置RAW时,打包目录下的具体文件,Part的首地址即为文件的首地址。