Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions tbot_contrib/register/SVDParser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import os
import xml.etree.ElementTree as ET
import pickle
import register
from register import Register
class SVDParser:
def __init__(self):
self._groups_dict ={}
self._registers_dict = {}

def parse_file(self, file_name:str, output_name:str) -> None:
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
file_name = os.path.join(THIS_FOLDER, f"{file_name}")
output_name = os.path.join(THIS_FOLDER, f"{output_name}.pkl")
tree = ET.parse(file_name)
root = tree.getroot()

cpu_width = int(root.find("width").text)
print(cpu_width)
for peripherals in root.findall("peripherals"):

for peripheral in peripherals.findall("peripheral"):
group_name= peripheral.find("name").text
base_address = int(peripheral.find("baseAddress").text,16)
print(hex(base_address))
self._groups_dict[group_name]= []
for registers in peripheral.findall("registers"):
for register in registers.findall("register"):
register_name = register.find("name").text
register_width = int(register.find("size").text)
register_address = base_address + int(register.find("addressOffset").text,16)
print(hex(register_address))
self._registers_dict[register_name] = Register(register_name,register_address,register_width)
self._groups_dict[group_name].append(register_name)

with open(f"{output_name}", "wb") as f:
pickle.dump([cpu_width, self._groups_dict, self._registers_dict], f)
22 changes: 22 additions & 0 deletions tbot_contrib/register/example_testcase.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import tbot
from register import CPU


@tbot.testcase
def testcase_prueba() -> None:

with tbot.acquire_lab() as lb:
with tbot.acquire_board(lb) as b:
with tbot.acquire_uboot(b) as ub:
cpu2 = CPU(ub, processor_name="iMX6SDL")
cpu2.read_register("VDI_PS_4")
cpu2.write_register("VDI_PS_4", 0x1)
cpu2.read_register("VDI_PS_4")
# cpu2.read_all_registers_from_group("IPU")
with tbot.acquire_linux(ub) as lx:
cpu2.set_host(lx)
# cpu2.read_register("GPUSR1")
# cpu2.read_all_registers_from_group("IPU")
cpu2.read_register("VDI_PS_4")
cpu2.write_register("VDI_PS_4", 0x12)
cpu2.read_register("VDI_PS_4")
Binary file added tbot_contrib/register/iMX6SDL.pkl
Binary file not shown.
Loading