Individual Assignment
Group Assignment:
A compiler is a program that translates the entire source code of a programming language into machine code before the program is run. It checks the whole code for errors and, if none are found, generates an executable file (like .exe). This file can be run independently on any system without the compiler. Because the code is already translated, compiled programs run very fast. Compilers are commonly used in languages like C, C++, and Java (Java uses both compiler and interpreter).
An interpreter is a program that reads and executes the source code line by line. It does not create a separate executable file. Instead, it directly translates and runs each instruction as it reads it. If there is an error in the code, the interpreter stops immediately and shows the error, making it easier to debug. However, this method is usually slower than using a compiler because the translation happens every time the code runs. Languages like Python, JavaScript, and Ruby use interpreters.
This week, we explored different embedded systems and their development workflows. We used the XIAO RP2040 with both the Arduino IDE (C/C++) and Thonny (MicroPython) to compare compiled and interpreted programming. We also worked with the ATtiny1614 microcontroller using AVR toolchains and UPDI programming. In addition, we learned about FPGA controllers, focusing on hardware description languages and how they differ from microcontrollers by allowing hardware-level reprogramming. Finally, we tested the Raspberry Pi 5, running Linux, and used it for GPIO, I2C, and SPI tasks. These hands-on activities helped us understand the strengths and uses of each platform.
Microcontroller | Toolchain Components | Programming Language | IDE/Editor |
---|---|---|---|
RP2040 | Arduino Core for RP2040, GCC, avrdude | C/C++ | Arduino IDE |
RP2040 | MicroPython Firmware, REPL | MicroPython | Thonny |
ATtiny1614 | ATTinyCore, avrdude | C/C++ | Arduino IDE |
ATtiny84 | ATTinyCore, avrdude | C/C++ | VS Code + PlatformIO |
ESP32 | ESP–IDF, GCC, esptool | C/C++ | VS Code + PlatformIO |
STM32F303RE | STM32Duino Core, GCC, STLink | C/C++ | Arduino IDE |
Raspberry Pi 5 | Linux-based toolchain (GCC, Python, etc.) | Python, C, C++ | VS Code, Thonny, Terminal |