Recently, the theme of embedded systems has been growing more and more actively, and many large companies such as Google, Microsoft, Intel are
investing enormous resources in research and development in this area. Take, for example, the Microsoft project to create a specialized OS for smart homes,
homeos or Intel processors for
Intel Quark embedded solutions, and there is no need to talk about various research projects from Google on robotics, they are already heard.
Such systems always had their own characteristics: limited computational resources, various processor architectures, byte order, and much more. All this leaves an imprint on the process of developing firmware. Despite the fact that recently, principles and technologies from the field of “ordinary” desktop systems are increasingly used to create embedded systems, the process itself remains specific. Therefore, it is considered that the
threshold of entry when developing system and firmware is very high. To prepare good specialists in this field, at St. Petersburg State University Mat-Meh a research project was created on creating a real-time OS for
Embox embedded applications, in which students play an active role.

')
On Thursday, November 27, at 8:00 pm, a meeting of CodeFreeze with
Anton Bondarev , Embox technical project manager, will take place at the Ingria business incubator. The report will cover aspects of the development of firmware on the example of this OS.
Embox is a real-time open source operating system that supports
six processor architectures (x86, ARM, MIPS, Microblaze, SPARC, PPC), a network stack, several file systems (FAT, ext2 / 3/4, jffs2, nfs), several programming languages ​​( java, python, lua, lisp, C / C ++) and is used in various kinds of embedded and telecommunication devices, for example, routers, stream coders, LED controllers.
The report is based on the problems that the participants of the Embox project had to face, since the project has existed for five years and has been used in various areas, the range of issues will be quite wide.
In the beginning, it will be discussed why such a problem arose at all. There were several problems:
- First you needed a solution for simple debugging of the equipment. For this, a minimal environment was made that allows you to automatically start a set of tests developed in the C language, as well as a very lightweight shell that can run on bare metal.
- secondly, the source code needed to be certified, which means that the distribution should contain only those parts that bear the functional load. At the same time the code in unused branches #if - #def constructions should not be submitted for certification. To solve this issue, an assembly system was developed based on a special module description language, which allows to avoid #if - #def structures and flexibly set the list of used functional modules and their parameters.
- thirdly, I wanted the work to be used in scientific and educational activities, which means the project should be open.
Then, it will be told about the development of Embox and its problems that developers faced when implementing in various areas, including robotics, telecommunications, and automated process control systems. The main problem, like for many embedded systems, was the hardware component, the absence of iron in the early stages of development, the limited system resources, the “expensive” operating time on real hardware, and much more. For example, to run on robots Lego Minstorm 2, which has
only 64k of RAM, I had to fit a lot of these modest kilobytes. And in order not to develop a bunch of drivers for all kinds of controllers, a mechanism for using BSP from hardware manufacturers was invented. In addition, as the project grew, the problem arose of launching open source software on the Embox platform. And such a mechanism, taking into account the features of embedded systems, was coined and implemented in the project. The report will demonstrate how Qt applications work without virtual memory support.
At the end of the report, issues related to project testing will be considered. Since with the growth of the project, support for the correct operation of the functional modules on all possible architectures and in various configurations became unbearable, automatic testing was implemented in the project.
About speaker
Anton Bondarev - Embox technical project manager.
In work, he is a project manager in the department of radio-electronic systems of Lanit-Tercom, where he develops embedded and specialized systems in telecommunications, control systems and signal processing systems.
He is fond of system programming. Like any programmer, he dreamed of writing his own operating system, which was eventually realized in the Embox project.
check in
Participation is free.
Pre-registration is required.