My Projects


rpi5os

(C, ARMv8 assembly, Raspberry Pi, OpenOCD, LLDB)

  • A minimalistic kernel for the Raspberry Pi 5, which uses the bcm2712 SoC based on ARM cortex a76 architecture.
  • Uses ARM PrimeCell PL011 UART (revision r1p5) for serial communication, with a baud rate of 9600 bps.
  • Uses the ARM Corelink Generic Interrupt Controller (GIC) - 400 for handling interrupts.
  • Uses the BCM2835 ARM System Timer for scheduling and timer ticks in general.
  • Implements a basic set of system calls for process management, memory management, and I/O operations.
  • Comes with Virtual Memory enabled, for a physical addressable memory of 4GiB, along with the peripheral space.

system monitor

(C, Linux, Prometheus, Grafana, Valgrind)

  • An intuitive Linux-based System Resource Monitor to view various system statistics to the user.
  • Scrapes the /proc Virtual File System to collect the CPU usage metrics in real-time.
  • Multi-threaded application, with a separate thread for watchdog functionality.
  • Exposes the scraped metrics to a socket, following the OpenMetrics Standard of metrics exposition.
  • Setup a Prometheus server to scrape the metrics and a Grafana dashboard to visualize the metrics.
  • Used Valgrind to detect memory leaks and other memory-related errors in the code.

solmelu

(Dart, Flutter, OpenStreetMaps, MapBox)

  • A platform for seamless travel in Dakshina Kannada and Udupi regions, aiding curation and execution.
  • Designed a high-level system architecture, database ER diagram, and application feature list.
  • Created a custom-curated travel path with OpenStreetMaps and MapBox SDK and API for Flutter’s map-based UI.
  • Setup frontend interface for searching activities, trips and places on the map.

puranikvinit


SoC Engineering Intern @ARM | Systems Lead @IRIS, NITK | ECE Senior, NITK


By Vinit Puranik