添加升级包制作流程;
This commit is contained in:
@@ -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
|
||||
|
||||
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__":
|
||||
# path_bin = Path("F:\\Work\\FPGA\\Test\\Vivado\\test_update\\test_update.vitis\\upgrade_system\\Debug\\sd_card\\BOOT.BIN")
|
||||
# test3(path_bin)
|
||||
print("Merge Image generated successfully.")
|
||||
print(f"File Info:")
|
||||
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:
|
||||
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:]
|
||||
return bytearray(Image), main_data_b
|
||||
|
||||
root = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\uart_tool\p460")
|
||||
result = root
|
||||
def Process1():
|
||||
""" 镜像生成流程 """
|
||||
root = Path(r"test\p460")
|
||||
result = Path(r"test\p460\result")
|
||||
# 正常启动镜像
|
||||
hex_boot = root / r"bootloader.hex"
|
||||
hex_main = root / r"SLCP001_240625_2030_V1.04.hex"
|
||||
hex_back = root / r"SLCP001_240625_2030_B1.04.hex"
|
||||
hex_main = root / r"lamina_adapter.hex"
|
||||
hex_back = root / r"lamina_adapter_back.hex"
|
||||
|
||||
file_image = result / f'{hex_main.stem[:-6]}_ROM.bin'
|
||||
file_main_header = result / 'SLCP001_header_main.bin'
|
||||
@@ -474,3 +485,33 @@ if __name__ == "__main__":
|
||||
data_image[0x054018: 0x05401A] = [0x00, 0x01]
|
||||
data_image[0x056018: 0x05601A] = [0x00, 0x01]
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user