@@ -348,7 +348,6 @@ def load(self, path):
348348 self .payload = copy .copy (self .infile_data )
349349 except FileNotFoundError :
350350 raise click .UsageError ("Input file not found" )
351- self .image_size = len (self .payload )
352351
353352 # Add the image header if needed.
354353 if self .pad_header and self .header_size > 0 :
@@ -358,6 +357,8 @@ def load(self, path):
358357 self .payload = bytes ([self .erased_val ] * self .header_size ) + \
359358 self .payload
360359
360+ self .image_size = len (self .payload ) - self .header_size
361+
361362 self .check_header ()
362363
363364 def load_compressed (self , data , compression_header ):
@@ -366,14 +367,19 @@ def load_compressed(self, data, compression_header):
366367 self .image_size = len (self .payload )
367368
368369 # 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
377383
378384 def save (self , path , hex_addr = None ):
379385 """Save an image from a given file"""
0 commit comments