Introduction ============ PeakRDL BEAM is a python package which can be used to generate a register abstraction layer for supported BEAM languages (Erlang and Elixir) a SystemRDL definition. Features: * Generates Erlang ``record`` definitions * Field bit offset, width, mask, etc ``-define`` macros. * Generates register bit-field and accessor help functions. .. * Optionally generates a test-case to validate correctness of the generated header. Installing ---------- Install from `PyPi`_ using pip .. code-block:: bash python3 -m pip install peakrdl-beam .. _PyPi: https://pypi.org/project/peakrdl-beam Quick Start ----------- The easiest way to use PeakRDL-beam is via the `PeakRDL command line tool `_: .. code-block:: bash # Install the command line tool python3 -m pip install peakrdl # Generate an Erlang module and header peakrdl beam example.rdl -o example.erl Using the generated module and header, you can access your device registers by name! .. code-block:: erlang -include("example.hrl") main() -> Data = read_register_from_hw(), CtrlRecord = example:des_example__CTRL_f(Data), io:format("CTRL register ~p~n", [CtrlRecord#atxmega_spi__CTRL.mode]). Links ----- - `Source repository `_ - `Release Notes `_ - `Issue tracker `_ - `PyPi `_ - `SystemRDL Specification `_ .. toctree:: :hidden: self header_output module_output configuring api licensing