Venturing into the Hardware Abyss
After a brief hiatus from work, I met Dr. Shawn on Sunday who gave a short briefing about my subsequent project which was to implement some features for the PIC32 on the board. He then provided me with reading materials to be read in the coming week which were divided into understanding how an RTOS works, familiarising myself with the Harmony library and working with MPLABX. However he told me that the programmer and the boards were all currently with him so I have to make due with reading the materials without being able to physically test out anything for now.
And so then I spent a week on first reading up the multi-tasking aspects of an RTOS and its synchronisation primitives like mutexes and semaphores that are used for synchronisation between different tasks on the RTOS. It was interesting to note the differences between coding high-level software and low-level software like the one used for this project where now the code of a particular task can somewhat be suspended halfway in the code and then be resumed, after another task takes a higher priority to be run. From this, I can see the importance of proper multi-tasking to ensure the reliability of a program. I also read up on the Harmony libraries and tried out MPLABX during the week.
At the end of the week, Dr. Shawn passed me the hardware needed for the project. Together with it, he also gave me the development kit for me to familiarise myself with working with electronics before working on the actual board. He also gave a rundown on the step-by-step milestones that I would need to achieve incrementally on the development kit starting from lighting up an LED without an RTOS all the way to getting the development kit to simulate a USB Keyboard. This will have to be done before I move on to working on the actual board which will require some extensive reading on the data sheets for the PIC32 used on it. Since I have next to zero experience in dealing with hardware-related stuff, this is going to be an exciting journey for the next few weeks!