添加升级包制作流程;

This commit is contained in:
何 泽隆
2024-08-05 23:56:25 +08:00
parent fb88f85490
commit 28853a9df8
2 changed files with 59 additions and 15 deletions

3
.gitignore vendored
View File

@@ -4,6 +4,9 @@
# 缓存文件 # 缓存文件
**/__pycache__/*.pyc **/__pycache__/*.pyc
# 测试文件
test
# 生成结果 # 生成结果
result/*.bin result/*.bin
result/*.html result/*.html

View File

@@ -425,27 +425,38 @@ def GenerateImage_SLCP001_p460(path_boot, path_main, path_back):
return bytearray(Image), main_header, main_data_b, main_data_e, back_header, back_data_b, back_data_e return bytearray(Image), main_header, main_data_b, main_data_e, back_header, back_data_b, back_data_e
def GeneratePackage_SLCP001_p460(path_hex):
""" 叠光适配器-460平台版本 生成升级包 """
config = {
'prod_type': [0x45, 0x00], # 产品类型
'method_compress': False, # 文件压缩
'prog_id': list(b"SLCP001"), # 程序识别号
'prog_type': 'app', # 程序类型
'area_code': [0x00, 0x00], # 地区
}
main_header, main_data_b, main_data_e = make_datafile3(path_hex, config)
if __name__ == "__main__": print("Merge Image generated successfully.")
# path_bin = Path("F:\\Work\\FPGA\\Test\\Vivado\\test_update\\test_update.vitis\\upgrade_system\\Debug\\sd_card\\BOOT.BIN") print(f"File Info:")
# test3(path_bin) print(f"\t header_length={len(main_header)}, bin_length={len(main_data_b)}[{hex(len(main_data_b))}]")
# test2() # 组装镜像
Image = [0xFF] * (len(main_header) + len(main_data_e))
offset_image = 0
Image[offset_image: offset_image + len(main_header)] = main_header
offset_image += len(main_header)
Image[offset_image: offset_image + len(main_data_e)] = main_data_e
if 0: return bytearray(Image), main_data_b
bin_back = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\lamina_adapter_back.bin")
bin_main = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\lamina_adapter_main.bin")
main_header1 = bin_main.read_bytes()[:184]
main_data_e1 = bin_main.read_bytes()[184:]
back_header1 = bin_back.read_bytes()[:184]
back_data_e1 = bin_back.read_bytes()[184:]
root = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\uart_tool\p460") def Process1():
result = root """ 镜像生成流程 """
root = Path(r"test\p460")
result = Path(r"test\p460\result")
# 正常启动镜像 # 正常启动镜像
hex_boot = root / r"bootloader.hex" hex_boot = root / r"bootloader.hex"
hex_main = root / r"SLCP001_240625_2030_V1.04.hex" hex_main = root / r"lamina_adapter.hex"
hex_back = root / r"SLCP001_240625_2030_B1.04.hex" hex_back = root / r"lamina_adapter_back.hex"
file_image = result / f'{hex_main.stem[:-6]}_ROM.bin' file_image = result / f'{hex_main.stem[:-6]}_ROM.bin'
file_main_header = result / 'SLCP001_header_main.bin' file_main_header = result / 'SLCP001_header_main.bin'
@@ -474,3 +485,33 @@ if __name__ == "__main__":
data_image[0x054018: 0x05401A] = [0x00, 0x01] data_image[0x054018: 0x05401A] = [0x00, 0x01]
data_image[0x056018: 0x05601A] = [0x00, 0x01] data_image[0x056018: 0x05601A] = [0x00, 0x01]
file_image3.write_bytes(data_image) file_image3.write_bytes(data_image)
def Process2():
""" 升级包生成流程 """
root = Path(r"test\p460")
result = Path(r"test\p460\result")
hex_main = root / r"lamina_adapter_t1.hex"
file_package = result / f'{hex_main.stem}.dat'
file_bin = result / f'{hex_main.stem}.bin'
data_package, data_bins = GeneratePackage_SLCP001_p460(hex_main)
file_package.write_bytes(data_package)
file_bin.write_bytes(data_bins)
if __name__ == "__main__":
# path_bin = Path("F:\\Work\\FPGA\\Test\\Vivado\\test_update\\test_update.vitis\\upgrade_system\\Debug\\sd_card\\BOOT.BIN")
# test3(path_bin)
# test2()
if 0:
bin_back = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\lamina_adapter_back.bin")
bin_main = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\lamina_adapter_main.bin")
main_header1 = bin_main.read_bytes()[:184]
main_data_e1 = bin_main.read_bytes()[184:]
back_header1 = bin_back.read_bytes()[:184]
back_data_e1 = bin_back.read_bytes()[184:]
Process1()