## 2 Related Work
### Classification by Embedded Software Platform Develop Environment
#### 2.4.4 Embedded Devices Supported by Rust Language  
For the Rust programming language, using this language in the embedded systems field is a new trend that has received particular interest from the community dedicated to embedded software in the last four years. However, as this is a recent trend, the developments and advances currently being made with Rust for developing complex algorithms executed within embedded systems show results at an academic level. Thus, no low- or large-scale commercial and industrial applications using Rust language for real-time image processing and control systems have been reported. On the other hand, there are research projects that are currently completed and others that are in development. Works such [85] perform a systematic study to holistically understand the current state and challenges of using Rust for embedded systems. Other works [86] conducted a comparison study on using C++ and Rust programming languages in a memory-constrained embedded system. In this work, an analysis was carried out using both languages (C++ and Rust) to obtain execution time, memory usage, and development time when the algorithms programmed using Rust and C++ are \begin{table}
\begin{tabular}{c c c} \hline \hline
**Device** & **IDE and Framework Supported** & **Hardware Features** \\ \hline \multirow{4}{*}{Arduino Nano BLE Sense} & \multirow{4}{*}{VSC, Thonny} & CPU SoC: nRF52840, Clock Speed: 64 MHz, Flash Memory: 1 MB, SRAM: 256 KB, EEPROM: none \\ \hline \multirow{4}{*}{Arduino RP2040 Connect} & \multirow{4}{*}{VSC, Thonny} & CPU SoC: Dual Core Arm Cortex-M0+, \\  & & Clock Speed: 133 MHz, SRAM: 264 KB \\ \hline \multirow{4}{*}{Arduino Portenta H7} & \multirow{4}{*}{VSC, Thonny} & CPU SoC: STM32H747 XI dual \\  & & Cortex-M7+M4 low power Arm MCU, \\  & & Clock Speed: 480 MHz, +240 MHz, \\  & & SRAM: 264 KB \\ \hline \multirow{2}{*}{Raspberry Pi Pico} & \multirow{2}{*}{VSC, Thonny} & CPU SoC: Dual Core Arm Cortex-M0+, \\  & & Clock Speed: 133 MHz, SRAM: 264 KB \\ \hline \multirow{4}{*}{ESP32 and ESP32-S3} & \multirow{4}{*}{VSC, Thonny} & CPU SoC: Dual-core XTensa \\  & & LX7/Dual-core XTensa LX7, Clock Speed: 240 MHz, SRAM: 512 KB/1 MB \\ \hline \multirow{4}{*}{Raspberry Pi 3B, 4B} & \multirow{4}{*}{VSC, Thonny} & CPU SoC: Cortex-A53 quad-core 64-bit/Cortex-A72 quad-core 64-bit, \\  & & Clock Speed: 1.4 GHz/1.5 GHz, SDRAM: 1 GB LPDDR2/up to 8 GB LPDDR4-3200 \\ \hline \hline \end{tabular}
\end{table} 
Table 12: The 32- and 64-bit architecture devices capable of deploying TinyML algorithms programmed in Python for embedded systems (MicroPython). deployed within the hardware-constrained embedded systems, such as artificial engine sound generation and Quick-sort applications on large arrays, such as image processing. In [87], a review and comparison study between C++ and Rust is presented. The authors in [87] show the predominant advantages of the C++ language for the development of applications with embedded systems, but, in a critical sense, allowing us to see the adaptability and versatility of Rust using native C++ libraries and instructions, as well as future trends on the potential of Rust to be used in applications that require the programming of embedded systems. The state-of-the-art review shows that in the future, Rust could be predominant in embedded vision applications and TinyML for hardware-constrained embedded systems. As observed in Tables 9-11, different types of architectures, as well as programming languages, are designed to support RTOS functions and allow the execution of algorithms with functions and native operations of an RTOS. However, a broad analysis of the comparative implementation aspect can arise from this topic. It is not the purpose of this work to perform and show this analysis; this is reserved for future work; it only shows a classification of the possibilities of using RTOS on different development platforms (hardware and software) for low-cost and hardware-constrained embedded systems.