Автор: Roger Lee
Издательство: Springer
Серия: Studies in Computational Intelligence
Год: 2023
Страниц: 223
Язык: английский
Формат: pdf (true), epub
Размер: 31.5 MB
Minimalistic devices such as microcontrollers make a large part of the Internet of things (IoT), for instance to build sensors and sensor networks. Due to severely limited resources, especially memory, microcontroller programming faces various restrictions, such as hampered graphical data processing. In order to circumvent those weaknesses, direct programming of these devices with the assembly language has proven effective. Because popular development environments, such as Arduino’s, support only high-level languages like C and C++, we propose in this paper A-IDE, a non-intrusive cross-platform development environment for AVR programming in assembly, importantly retaining the pedagogical principles of those existing popular solutions. Nowadays, microcontroller programming has indeed a high educative value: refer, for example, to the BBC micro:bit and Arduino Uno, to only cite a few. It is then quantitatively shown that the proposed system outperforms existing ones from the disk space requirement point of view and that it is on a par with those with respect to memory (RAM) utilisation.
In addition, popular development environments for microcontrollers support high-level languages such as C/C++ (e.g. the Arduino development environment), Python (e.g. Python Editor for BBC micro:bit) and even visual programming (e.g. Scratch for BBC micro:bit). Combined with an accessible user interface, these make performant solutions for general programming educational purposes. However, they are less fit for, say, computer architecture lectures of undergraduate computer science curricula. In this case, a precise understanding of hardware units and their operation is required, which is why directly relying on the assembly language is definitely meaningful in such a context.
The Linux kernel is a heart of the operating system, and provides the abstractions of hardware resources and manages them to be used efficiently and effectively by application programs. The operating system kernel has been programmed by the C programming language. It has been a major system programming language for a long time due to its efficiency and simplicity. Recently, there is a move towards introducing the Rust programming language to the Linux kernel for the type and memory safety; thus, it is meaningful to explore the possibility of utilizing Rust to program Linux kernel modules. This paper describes the experience of developing the FAT file system as a kernel module in Rust employing Rust for Linux as a basis of the development. We performed the experiments to measure its execution costs, and found that its performance is comparable with the original FAT file system written in C.
Скачать Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing