Download View/Open

Transcript
8
CHAPTER 1. INTRODUCTION
On a system with an OS and large memory hierarchy, a technique called swapping
can be used when the number of heap allocations exceed the capacity of the Random
Access Memory (RAM) storage. In an embedded system, these facilities do not
exist. When the application is out of memory, there is no way to allocate more. A
subtle problem identified here is that when the error has occurred, the mechanism
handling this condition cannot allocate memory, as this will also fail and trigger
the mechanism in an infinite loop (LC6).
These language challenges are revisited as a part of the discussion of our platform
in Section 9.1.3.
1.6
Project Outline
In this section, we break down the project into five phases. Table 1.3 presents each
of the phases with their primary goals, and the rest of this section will describe
how each phase was carried out, in more detail. In addition to the main phases of
the project, the build system has evolved continuously.
Phase
Hello World
Platform Design
Development
Measurement
Evaluation
Goal
Blink LED with Rust
Implement support libraries
Develop projects for measurements
Measuring the projects
Evaluating the platform
Finished
2015-01-09
2015-03-13
2015-04-09
2015-05-20
2015-06-08
Table 1.3: Phases of the project
1.6.1
Phase 1 - Hello World
The initial phase of the project defined two main activities. Firstly, the direction
of the project along with some major challenges was identified in a meeting with
Marius Grannæs and Mikael Berg from Silicon Labs. Secondly, the milestone of
running the first Rust application on the MCU was reached.
1.6.2
Phase 2 - Platform Design
After the initial compilation process was in place, the focus shifted towards developing the platform for writing larger applications. Throughout this phase, we
developed the support libraries for the MCU, which are described in Section 4.4
and Section 5.2. Early in this phase, technical challenges guided the choice of
which part of the platform to develop. The platform evolved continuously during
the development phase.