In this lab, I developed and debugged embedded software for the ESP32-C3 microcontroller using GDB and OpenOCD, gaining hands-on experience with low-level system interaction, RISC-V assembly inspection, and hardware communication protocols. The first part of the lab focused on using GDB to analyze and trace a compiled RISC-V executable, locating the compute function’s entry point, examining its register-passed parameters and return values, and validating program behavior through disassembly and debugging commands. This deepened my understanding of how compiled binaries interface with hardware at the instruction level. In the second part, I implemented I²C communication with the SHTC3 temperature and humidity sensor, programming the ESP32-C3 to periodically read environmental data, perform CRC-based checksum verification, and display temperature in both Celsius and Fahrenheit alongside humidity percentages. This required careful sensor power management and modular C programming to separate sensor functionality into dedicated routines. Overall, this lab strengthened my skills in embedded debugging, RISC-V architecture, sensor interfacing, and real-time embedded software development.