Linux Driver for built-in ADC using DMA and Programmable Real-Time Unit (PRU) support on Beaglebone Black used as embedded HPC-performance-monitoring device
In recent years, energy-efficiency is becoming a key challenge in the High Performance Computing (HPC) domain. Indeed, while the demand for more powerful supercomputers is constantly increasing, integrated computing architectures are facing power/thermal challenges that are limiting the performance benefits of technology scaling. However, even if energy-efficiency is of primary interest, such infrastructures have a limited introspection on the measurement of power and energy dissipated at run-time. Aiming at bridging this gap, we designed and developed at IIS, in collaboration with some Commercial Partners, a scalable and highly accurate power-consumption monitoring framework, based on a state-of-the-art embedded monitoring device (namely a Beaglebone Black) and a power-sensing-board placed at the node power-supply.
Goal of this Project → Implementation and testing of a Linux Device Driver for the built-in Beaglebone Black ADC, using DMA support for the data-copy from the ADC HW-FIFO to SW-FIFO at kernel-space and the real-time embedded co-processor (PRU) for post-processing of the data-stream.
- Experience on writing Linux Device Drivers (kernel-level development).
- Experience on microcontrollers and Embedded Linux.
- Experience using laboratory instrumentation (signal generators, oscilloscopes, etc.) would be an asset.
- 30% Theory
- 40% Implementation (C programming for Linux kernel)
- 30% Testing
Detailed Task Description
- AM335x Sitara Processor Datasheet
- AM335x Sitara Processor TRM
- Linux Industrial I/O Subsystem
- Programmable Real-Time Unit (PRU) Subsystem