@@ -348,7 +348,6 @@ def load(self, path):
348
348
self .payload = copy .copy (self .infile_data )
349
349
except FileNotFoundError :
350
350
raise click .UsageError ("Input file not found" )
351
- self .image_size = len (self .payload )
352
351
353
352
# Add the image header if needed.
354
353
if self .pad_header and self .header_size > 0 :
@@ -358,6 +357,8 @@ def load(self, path):
358
357
self .payload = bytes ([self .erased_val ] * self .header_size ) + \
359
358
self .payload
360
359
360
+ self .image_size = len (self .payload ) - self .header_size
361
+
361
362
self .check_header ()
362
363
363
364
def load_compressed (self , data , compression_header ):
@@ -366,14 +367,19 @@ def load_compressed(self, data, compression_header):
366
367
self .image_size = len (self .payload )
367
368
368
369
# Add the image header if needed.
369
- if self .pad_header and self .header_size > 0 :
370
- if self .base_addr :
371
- # Adjust base_addr for new header
372
- self .base_addr -= self .header_size
373
- self .payload = bytes ([self .erased_val ] * self .header_size ) + \
374
- self .payload
375
-
376
- self .check_header ()
370
+ if self .header_size > 0 :
371
+ if self .pad_header :
372
+ if self .base_addr :
373
+ # Adjust base_addr for new header
374
+ self .base_addr -= self .header_size
375
+ self .payload = bytes ([self .erased_val ] * self .header_size ) + \
376
+ self .payload
377
+ else :
378
+ # Fill header padding with zeros to align with what is expected
379
+ # for uncompressed images when no pad_header is requested
380
+ # (see self.check_header())
381
+ self .payload = bytes ([0 ] * self .header_size ) + \
382
+ self .payload
377
383
378
384
def save (self , path , hex_addr = None ):
379
385
"""Save an image from a given file"""
0 commit comments