Skip to content

Commit 3471330

Browse files
committed
Hex: Fix min addr and mapped base; fix section being marked uninitialized.
1 parent 052cd10 commit 3471330

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

cle/backends/ihex.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import archinfo
99

1010
from cle.errors import CLEError
11-
11+
from cle.address_translator import AT
1212
from .backend import Backend, register_backend
1313
from .region import Section, Segment
1414

@@ -35,7 +35,7 @@ class HexSection(Section):
3535
added separately (e.g., the MMIO region).
3636
"""
3737

38-
def __init__(self, name, vaddr, size, initialized=False, readable=True, writable=False, executable=True):
38+
def __init__(self, name, vaddr, size, initialized=True, readable=True, writable=False, executable=True):
3939
super().__init__(name, 0, vaddr, size)
4040
self.initialized = initialized
4141
self.readable = readable
@@ -183,8 +183,12 @@ def __init__(
183183
if not got_base:
184184
log.warning("No base address was found in this HEX object file. It is assumed to be 0")
185185

186+
self.mapped_base = 0
187+
self._min_addr = min_addr
188+
self._max_addr = max_addr - self.mapped_base
189+
186190
if self.load_args.get("entry_point") is not None:
187-
self._entry = self.load_args["entry_point"]
191+
self._entry = self._custom_entry_point = self.load_args["entry_point"] - min_addr
188192
got_entry = True
189193

190194
if not got_entry:
@@ -204,9 +208,6 @@ def __init__(
204208

205209
self._create_extra_regions()
206210

207-
self._max_addr = max_addr
208-
self._min_addr = min_addr
209-
210211
@staticmethod
211212
def is_compatible(stream):
212213
stream.seek(0)

0 commit comments

Comments
 (0)