diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 0000000..1a11c87 --- /dev/null +++ b/ReadMe.txt @@ -0,0 +1,12 @@ + + + +2024.10.15 + 使用ram.bin 下载程序,需要使用build版本,因为这个不需要配置串口波特率,启动之后会自动进入下载流程 + kl3有两个sbl区,如果sbl1校验失败,会自动运行sbl2,但是如果sbl1存在问题,则可能导致程序跑不起来 + 烧录的时候只会擦除烧录区域,未烧录的区域会保持原样 + 使用bootram.bin时,build版本支持全功能 + +2024.10.15 + 烧录文件可能会加密,bin的第一个字节表示加密方式 第二个字节表示加密种子,加密算法根据这个种子来计算 + 好像加密方式都用的方式3 异或,所以取第一个字节与3异或就能得到加密种子 \ No newline at end of file diff --git a/bin_to_hex.py b/bin_to_hex.py index 6f6caba..a583285 100644 --- a/bin_to_hex.py +++ b/bin_to_hex.py @@ -203,7 +203,8 @@ def bin_to_hex(bin:bytearray,f): turned_old=0 out_text='' if(pkt_header_check(bin)): - out_text+=tran_pkg_header(bin[0:96])+'\n' + out_text=tran_pkg_header(bin[0:96])+'\n' + f.write(out_text) while turned < all_size: if(turned+pack_size<=all_size): data=bin[turned:turned+pack_size] @@ -228,9 +229,13 @@ def bin_to_hex(bin:bytearray,f): -def bin_to_hex_file(bin_file_name:str,hex_file_name:str): +def bin_to_hex_file(bin_file_name:str,hex_file_name:str,enc=0): with open(bin_file_name,mode='rb') as f: - bin=f.read() + bin=bytearray(f.read()) + if(enc): + pat=(bin[0]^0x03)&0xff + for index in range(len(bin)): + bin[index]=bin[index]^pat with open(hex_file_name,mode='w+',encoding="utf-8") as f: bin_to_hex(bin,f) @@ -238,4 +243,8 @@ def bin_to_hex_file(bin_file_name:str,hex_file_name:str): if __name__ == "__main__": # bin_to_hex_file(sys.argv[1],sys.argv[2],sys.argv[3]) # load_flash_info("work/upload-test.info") - bin_to_hex_file(sys.argv[1],sys.argv[2]) + if(len(sys.argv)>=3): + enc=1 + else: + enc=0 + bin_to_hex_file(sys.argv[1],"work/"+sys.argv[1]+".txt",enc) diff --git a/vscode_cpp_setting.py b/vscode_cpp_setting.py index 74920e4..b9e0630 100644 --- a/vscode_cpp_setting.py +++ b/vscode_cpp_setting.py @@ -9,7 +9,7 @@ import time ''' 2024.8.26 - kunlun项目生成vscode配置 + kunlun项目根据build_log.log生成vscode配置 在Mainline文件夹中运行 '''