C, Python, MATLAB
Embedded Systems Engineer with 4+ years of experience in device driver development, storage controllers, and firmware-level programming. Proficient in C and Python with a strong background in SD, UEFI, and embedded technologies. At present, successfully pursuing Carnatic Classical Music as career. Yet very keen and intended to pursue Electronics Engineering as a future prospect.
FAT, SD, UEFI, AHCI, PCIe, SATA, NVMe, RTOS
C, Python, MATLAB
Embedded C Programming, RTOS with STM32, Python Developer (Udemy)
In the process of writing the data blocks from Host to Card Memory, the data enters the Buffer in the Host first and then is written down to Card Memory. Estimating the Buffer size of the Host by reverse engineering, the Host Data Writing Scenario can be recreated. The Card Speed is deliberately brought down from the standard speed by inducing delay in the bot file (Firmware) and the Card is made to fail. Considering the time taken for the Card to fail, original speed and induced speed, the Buffer size of the Host can be deduced. This scenario is recreated for multiple number of standard Hosts and this project was achieved using Python Programming.
DOS image is a binary file replicating a Storage device. A file system (FAT) in a Storage device stores and organizes data and can be thought of as a type of index for all the data contained. In a large Storage system, Multiple Logical Partitions of the system can be created which apparently behaves as multiple smaller Storage systems for the end user. These multiple partitions in a single device will have their own file system respectively in accordance to their FAT format. In order to impose the same hierarchy of multiple partitions on a huge scale in the Production environment, the DOS image of the Storage device has to be replicated. This is amended with a Production Header, which consists of all the necessary flags for the interpretation of the Production Environment. The Project was achieved using Python Programming.
Implementation of RAID using SATA storage devices controlled by AHCI controller, a data movement engine between System Memory and Storage. This is achieved by developing a Device Driver to the controller using C programming in UEFI environment. The protocols used here are function pointers specifying the generation of PCI bus, SATA and AHCI. It helps the upper layer software applications to handle the Storage Controller functions without the need of knowing hardware specifications of the controller. Code developed is to support Blocking operations and is tested in single core environment.
SmartDIAGS utility is a test suite running on a host that performs sanity checks and diagnostic tests on Storage Adapter hardware & firmware before deploying boards in OEM and factory environments. Understanding the existing code to run verify, get, and test commands. To modify the code for PCIe Generation, Link speed, Link width configurations accordingly for different generation controllers in different test scenarios. This Project was achieved using C Programming.