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.