From a111bc36513a4ab9752870d713c9c2e28b94a660 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Fri, 9 May 2025 17:57:46 +0200 Subject: [PATCH] update SREC generator --- Ccs/ccs_function_lib.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index c3d1fc5..bdbb140 100644 --- a/Ccs/ccs_function_lib.py +++ b/Ccs/ccs_function_lib.py @@ -4189,7 +4189,7 @@ def segment_data(data, segid, addr, seglen=480): return segments -def source_to_srec(data, outfile, memaddr, header=None, bytes_per_line=32, skip_bytes=0): +def source_to_srec(data, outfile, memaddr, header=None, bytes_per_line=32, skip_bytes=0, line_term='\n'): """ :param data: @@ -4221,15 +4221,16 @@ def source_to_srec(data, outfile, memaddr, header=None, bytes_per_line=32, skip_ data = data[skip_bytes:] if header is None: - fname = outfile.split('/')[-1][-60:] - header = 'S0{:02X}0000{:}'.format(len(fname.encode('ascii')) + 3, fname.encode('ascii').ljust(24).hex().upper()) + # fname = outfile.split('/')[-1][-60:] + fname = os.path.basename(outfile)[:32].encode('ascii') + b'\x00' + header = 'S0{:02X}0000{:}'.format(len(fname) + 3, fname.hex().upper()) header += '{:02X}'.format(srec_chksum(header[2:])) datalen = len(data) data = io.BytesIO(data) sreclist = [] - terminator = 'S705{:08X}'.format(memaddr) + terminator = 'S705{:08X}'.format(0) terminator += '{:02X}'.format(srec_chksum(terminator[2:])) while data.tell() < datalen: @@ -4242,8 +4243,8 @@ def source_to_srec(data, outfile, memaddr, header=None, bytes_per_line=32, skip_ memaddr += chunklen with open(outfile, 'w') as fd: - fd.write(header + '\n') - fd.write('\n'.join(sreclist) + '\n') + fd.write(header + line_term) + fd.write(line_term.join(sreclist) + line_term) fd.write(terminator) print('Data written to file: "{}", skipped first {} bytes.'.format(outfile, skip_bytes)) -- GitLab