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