A LLVM Based Development Environment for Embedded Systems Software Targeting the RISCO Processor

  • Giuliano Vilela UFRN
  • Edgard Correa UFRN
  • Márcio Kreutz UFRN

Resumo


In this paper we describe the design and implementation of a compilation and code analysis toolchain for embedded systems software targeting the RISCO processor, using the LLVM project. Small systems embedded in a larger device are by far the most common kind of computational system in use today, deployed in various types of equipments. Because of their nature, an embedded system presents interesting size, efficiency and energy consumption restrictions, among others, that impose unique challenges on a project. In that scenario, the RISCO processor, a RISC architecture similar to MIPS, was created as a simple, efficient, processor that could prove to be a practical alternative to the available commercial options in its price range. The toolchain we developed permit the development, simulation and analysis of software in C and C++ for the RISCO platform, with open source tools. Besides compiling and executing high level code, the environment supports emitting control flow graphs for each module, enabling further analysis. As a case study on using CFGs and generated machine code information we developed a worst case execution time analysis tool for RISCO code. We discuss the scope of the tools, the design decisions involved in the development of the compilation and analysis system, and the results obtained through testing.
Palavras-chave: Assembly, Optimization, Embedded systems, Registers, Reduced instruction set computing, Testing
Publicado
05/11/2012
VILELA, Giuliano; CORREA, Edgard; KREUTZ, Márcio. A LLVM Based Development Environment for Embedded Systems Software Targeting the RISCO Processor. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SISTEMAS COMPUTACIONAIS (SBESC), 2. , 2012, Natal/RN. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2012 . p. 77-82. ISSN 2237-5430.