Speaker
Description
In order to simplify the software architecture that has been developed for the Sirius Beam Position Monitors (BPM) and Fast Orbit Feedback (FOFB) systems, currently running on MicroTCA crates with FPGA devices communicating over PCIe, a new library and accompanying EPICS IOC have been developed. The hardware interaction is done entirely in userspace by means of the Linux sysfs filesystem; library users have an interface that tries to provide and receive the data in the most digestible format; and the library interacts directly with the hardware. Due to the direct coupling between the library and the hardware, only one client can be interacting with the hardware at a time; the goal is that a long running software, typically an IOC, will be the main user of the library, in order to expose its functionalities to multiple users. The resulting library was called μHAL and is open source. As an added benefit, changes to this base layer have also led to considerably shorter and simpler IOC implementations, to the point that adding up the lines of code for a given module in both μHAL and the new IOC results in around half the lines of code for that same module in the existing architecture.