diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index c3d1fc58065bad239cddcf567640f7820ba46977..bdbb140e53a3d296a58b0f8ec57a899e81e39f71 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))