8
8
import archinfo
9
9
10
10
from cle .errors import CLEError
11
-
11
+ from cle . address_translator import AT
12
12
from .backend import Backend , register_backend
13
13
from .region import Section , Segment
14
14
@@ -35,7 +35,7 @@ class HexSection(Section):
35
35
added separately (e.g., the MMIO region).
36
36
"""
37
37
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 ):
39
39
super ().__init__ (name , 0 , vaddr , size )
40
40
self .initialized = initialized
41
41
self .readable = readable
@@ -183,8 +183,12 @@ def __init__(
183
183
if not got_base :
184
184
log .warning ("No base address was found in this HEX object file. It is assumed to be 0" )
185
185
186
+ self .mapped_base = 0
187
+ self ._min_addr = min_addr
188
+ self ._max_addr = max_addr - self .mapped_base
189
+
186
190
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
188
192
got_entry = True
189
193
190
194
if not got_entry :
@@ -204,9 +208,6 @@ def __init__(
204
208
205
209
self ._create_extra_regions ()
206
210
207
- self ._max_addr = max_addr
208
- self ._min_addr = min_addr
209
-
210
211
@staticmethod
211
212
def is_compatible (stream ):
212
213
stream .seek (0 )
0 commit comments