CERN Accelerating science

Article
Title Code Generation Tools and Editor for Memory Maps
Author(s) Plutecki, Przemyslaw (CERN) ; Bielawski, Bartosz Przemyslaw (CERN) ; Butterworth, Andrew (CERN)
Publication 2020
Number of pages 4
In: 17th Biennial International Conference on Accelerator and Large Experimental Physics Control Systems (ICALEPCS), New York, United States, 5 - 11 Oct 2019, pp.MOPHA115
DOI 10.18429/JACoW-ICALEPCS2019-MOPHA115
Subject category Accelerators and Storage Rings
Abstract 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.
Copyright/License publication: © JACoW 2019 (License: CC-BY-3.0)

Corresponding record in: Inspire


 Element opprettet 2021-08-14, sist endret 2022-01-14


Fulltekst:
Last ned fulltekst
PDF