Initial import of NFC GNSS SDK project
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# -*- coding: gbk -*-
|
||||
|
||||
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
def find_mapfile(path):
|
||||
path = Path(path)
|
||||
map_file = None
|
||||
if path.is_dir():
|
||||
map_file = next(path.rglob("*.map"), None)
|
||||
else :
|
||||
pass
|
||||
return map_file
|
||||
|
||||
def parse_mapfile_find_symbols(map_file, target_symbols):
|
||||
with open(map_file, "r", encoding="utf-8", errors="ignore") as f:
|
||||
for line in f:
|
||||
parts = line.strip().split()
|
||||
if len(parts) < 2:
|
||||
continue
|
||||
symbol, address = parts[0], parts[1]
|
||||
if symbol in target_symbols and address.startswith("0x"):
|
||||
target_symbols[symbol] = address
|
||||
return target_symbols
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
path = sys.argv[1]
|
||||
|
||||
target_symbols = {
|
||||
"Load$$DATA$$RW$$Base": None,
|
||||
"Image$$DATA$$RW$$Base": None,
|
||||
"Image$$DATA$$RW$$Length": None
|
||||
}
|
||||
|
||||
mapfile = find_mapfile(path)
|
||||
target_symbols = parse_mapfile_find_symbols(mapfile, target_symbols)
|
||||
|
||||
rw_data_load_addr = target_symbols["Load$$DATA$$RW$$Base"]
|
||||
rw_date_exec_addr = target_symbols["Image$$DATA$$RW$$Base"]
|
||||
rw_data_length = target_symbols["Image$$DATA$$RW$$Length"]
|
||||
rw_data_load_addr = int(rw_data_load_addr, 16)
|
||||
rw_date_exec_addr = int(rw_date_exec_addr, 16)
|
||||
rw_data_length = int(rw_data_length, 16)
|
||||
rw_data_load_end = rw_data_load_addr + rw_data_length
|
||||
print(f"rw_data_load_addr = {rw_data_load_addr:x}")
|
||||
print(f"rw_date_exec_addr = {rw_date_exec_addr:x}")
|
||||
print(f"rw_data_length = {rw_data_length:x}")
|
||||
|
||||
if rw_date_exec_addr < rw_data_load_end :
|
||||
print("****************************************************************")
|
||||
print(f"error: rw_date执行地址与加载重叠,请往后移至少到 {rw_data_load_end:x}!!!")
|
||||
print(f"error: rw_date执行地址与加载重叠,请往后移至少到 {rw_data_load_end:x}!!!")
|
||||
print(f"error: rw_date执行地址与加载重叠,请往后移至少到 {rw_data_load_end:x}!!!")
|
||||
print("****************************************************************")
|
||||
exit(1)
|
||||
exit(0)
|
||||
Reference in New Issue
Block a user