Cargando…

Code Generation Tools and Editor for Memory Maps

Cheburashka, a toolset created in the Radio Frequency Group at CERN, has become an essential part of our hardware and software developments. Due to changing requirements, this toolset has been recently rewritten in C++ and Python. A hardware developer, using the graphical editor, defines a memory ma...

Descripción completa

Detalles Bibliográficos
Autores principales: Plutecki, Przemyslaw, Bielawski, Bartosz Przemyslaw, Butterworth, Andrew
Lenguaje:eng
Publicado: 2020
Materias:
Acceso en línea:https://dx.doi.org/10.18429/JACoW-ICALEPCS2019-MOPHA115
http://cds.cern.ch/record/2778511
_version_ 1780971749042552832
author Plutecki, Przemyslaw
Bielawski, Bartosz Przemyslaw
Butterworth, Andrew
author_facet Plutecki, Przemyslaw
Bielawski, Bartosz Przemyslaw
Butterworth, Andrew
author_sort Plutecki, Przemyslaw
collection CERN
description Cheburashka, a toolset created in the Radio Frequency Group at CERN, has become an essential part of our hardware and software developments. Due to changing requirements, this toolset has been recently rewritten in C++ and Python. A hardware developer, using the graphical editor, defines a memory map, which is subsequently used to ensure consistency between software and hardware. The memory map file is an input for a variety of tools used by the hardware engineers, such as VHDL code generators. In addition to aiding the firmware development, our tools generate C++ wrapper libraries. The wrapper provides a simple interface on top of a Linux device driver to read and write registers by exposing memory map nodes in a hierarchical way, performing all low-level bit manipulations and checks internally. To interact with the hardware, a software that runs on a front-end computer is needed. Cheburashka allows us to generate FESA (Front-End Software Architecture) classes with parts of the operational interface already present. This paper describes the evolution of the graphical editor and the Python tools used for C++ code generation, along with a description of their main features.
id cern-2778511
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2020
record_format invenio
spelling cern-27785112022-01-14T14:55:45Zdoi:10.18429/JACoW-ICALEPCS2019-MOPHA115http://cds.cern.ch/record/2778511engPlutecki, PrzemyslawBielawski, Bartosz PrzemyslawButterworth, AndrewCode Generation Tools and Editor for Memory MapsAccelerators and Storage RingsCheburashka, a toolset created in the Radio Frequency Group at CERN, has become an essential part of our hardware and software developments. Due to changing requirements, this toolset has been recently rewritten in C++ and Python. A hardware developer, using the graphical editor, defines a memory map, which is subsequently used to ensure consistency between software and hardware. The memory map file is an input for a variety of tools used by the hardware engineers, such as VHDL code generators. In addition to aiding the firmware development, our tools generate C++ wrapper libraries. The wrapper provides a simple interface on top of a Linux device driver to read and write registers by exposing memory map nodes in a hierarchical way, performing all low-level bit manipulations and checks internally. To interact with the hardware, a software that runs on a front-end computer is needed. Cheburashka allows us to generate FESA (Front-End Software Architecture) classes with parts of the operational interface already present. This paper describes the evolution of the graphical editor and the Python tools used for C++ code generation, along with a description of their main features.oai:cds.cern.ch:27785112020
spellingShingle Accelerators and Storage Rings
Plutecki, Przemyslaw
Bielawski, Bartosz Przemyslaw
Butterworth, Andrew
Code Generation Tools and Editor for Memory Maps
title Code Generation Tools and Editor for Memory Maps
title_full Code Generation Tools and Editor for Memory Maps
title_fullStr Code Generation Tools and Editor for Memory Maps
title_full_unstemmed Code Generation Tools and Editor for Memory Maps
title_short Code Generation Tools and Editor for Memory Maps
title_sort code generation tools and editor for memory maps
topic Accelerators and Storage Rings
url https://dx.doi.org/10.18429/JACoW-ICALEPCS2019-MOPHA115
http://cds.cern.ch/record/2778511
work_keys_str_mv AT pluteckiprzemyslaw codegenerationtoolsandeditorformemorymaps
AT bielawskibartoszprzemyslaw codegenerationtoolsandeditorformemorymaps
AT butterworthandrew codegenerationtoolsandeditorformemorymaps