15 research outputs found

    WCET of OCaml Bytecode on Microcontrollers: An Automated Method and Its Formalisation

    Get PDF
    Considering the bytecode representation of a program written in a high-level programming language enables portability of its execution as well as a factorisation of various possible analyses of this program. In this article, we present a method for computing the worst-case execution time (WCET) of an embedded bytecode program fit to run on a microcontroller. Due to the simple memory model of such a device, this automated WCET computation relies only on a control-flow analysis of the program, and can be adapted to multiple models of microcontrollers. This method evaluates the bytecode program using concrete as well as partially unknown values, in order to estimate its longest execution time. We present a software tool, based on this method, that computes the WCET of a synchronous embedded OCaml program. One key contribution of this article is a mechanically checked formalisation of the aforementioned method over an idealised bytecode language, as well as its proof of correctness

    Minimal Virtual Machines on IoT Microcontrollers: The Case of Berkeley Packet Filters with rBPF

    Get PDF
    to be published in the proceedings of IFIP/IEEE PEMWN 2020International audienceVirtual machines (VM) are widely used to host and isolate software modules. However, extremely small memory and low-energy budgets have so far prevented wide use of VMs on typical microcontrollerbased IoT devices. In this paper, we explore the potential of two minimal VM approaches on such lowpower hardware. We design rBPF, a register-based VM based on extended Berkeley Packet Filters (eBPF). We compare it with a stack-based VM based on We-bAssembly (Wasm) adapted for embedded systems. We implement prototypes of each VM, hosted in the IoT operating system RIOT. We perform measurements on commercial off-the-shelf IoT hardware. Unsurprisingly, we observe that both Wasm and rBPF virtual machines yield execution time and memory overhead, compared to not using a VM. We show however that this execution time overhead is tolerable for low-throughput, lowenergy IoT devices. We further show that, while using a VM based on Wasm entails doubling the memory budget for a simple networked IoT application using a 6LoWPAN/CoAP stack, using a VM based on rBPF requires only negligible memory overhead (less than 10% more memory). rBPF is thus a promising approach to host small software modules, isolated from OS software, and updatable on-demand, over low-power networks

    COIN: Opening the internet of things to people's mobile devices

    Get PDF
    People's interaction with IoT devices such as proximity beacons, body-worn sensors, and controllable light bulbs is often mediated through personal mobile devices. Current approaches usually make applications operate in separate silos, as the functionality of IoT devices is fixed by vendors and typically accessed only through low-level proprietary APIs. This limits the flexibility in designing applications and requires intense wireless interactions, which may impact energy consumption. COIN is a system architecture that breaks this separation by allowing developers to flexibly run a slice of a mobile app's logic onto IoT devices. Mobile apps can dynamically deploy arbitrary tasks implemented as loosely coupled components. The underlying runtime support takes care of the coordination across tasks and of their real-time scheduling. Our prototype indicates that COIN both enables increased flexibility and improves energy efficiency at the IoT device, compared to traditional architectures

    Run-time compilation techniques for wireless sensor networks

    No full text
    Wireless sensor networks research in the past decade has seen substantial initiative,support and potential. The true adoption and deployment of such technology is highly dependent on the workforce available to implement such solutions. However, embedded systems programming for severely resource constrained devices, such as those used in typical wireless sensor networks (with tens of kilobytes of program space and around ten kilobytes of memory), is a daunting task which is usually left for experienced embedded developers.Recent initiative to support higher level programming abstractions for wireless sensor networks by utilizing a Java programming paradigm for resource constrained devices demonstrates the development benefits achieved. However, results have shown that an interpreter approach greatly suffers from execution overheads. Run-time compilation techniques are often used in traditional computing to make up for such execution overheads. However, the general consensus in the field is that run-time compilation techniques are either impractical, impossible, complex, or resource hungry for such resource limited devices.In this thesis, I propose techniques to enable run-time compilation for such severely resource constrained devices. More so, I show not only that run-time compilation is in fact both practical and possible by using simple techniques which do not require any more resources than that of interpreters, but also that run-time compilation substantially increases execution efficiency when compared to an interpreter

    Electronic Systems with High Energy Efficiency for Embedded Computer Vision

    Get PDF
    Electronic systems are now widely adopted in everyday use. Moreover, nowadays there is an extensive use of embedded wearable and portable devices from industrial to consumer applications. The growing demand of embedded devices and applications has opened several new research fields due to the need of low power consumption and real time responsiveness. Focusing on this class of devices, computer vision algorithms are a challenging application target. In embedded computer vision hardware and software design have to interact to meet application specific requirements. The focus of this thesis is to study computer vision algorithms for embedded systems. The presented work starts presenting a novel algorithm for an IoT stationary use case targeting a high-end embedded device class, where power can be supplied to the platform through wires. Moreover, further contributions focus on algorithmic design and optimization on low and ultra-low power devices. Solutions are presented to gesture recognition and context change detection for wearable devices, focusing on first person wearable devices (Ego-Centric Vision), with the aim to exploit more constrained systems in terms of available power budget and computational resources. A novel gesture recognition algorithm is presented that improves state of art approaches. We then demonstrate the effectiveness of low resolution images exploitation in context change detection with real world ultra-low power imagers. The last part of the thesis deals with more flexible software models to support multiple applications linked at runtime and executed on Cortex-M device class, supporting critical isolation features typical of virtualization-ready CPUs on low-cost low-power microcontrollers and covering some defects in security and deployment capabilities of current firmwares

    PROST : a framework for the development of programmable devices for IoT

    Get PDF
    Orientadores: Edson Borin, Juliana Freitag BorinDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Incontáveis tipos de dispositivos embarcados conectados à internet compõem a chamada Internet das Coisas, a qual promoverá a geração de um fluxo massivo de dados e o controle dos dispositivos, muitas vezes, de forma centralizada. Entretanto, as soluções existentes para este tipo de cenário estão sujeitas a falhas de conexão e requerem elementos externos para o monitoramento e controle dos dispositivos. A fim de mitigar essas limitações, este trabalho propõe uma plataforma para execução de código de usuário como serviço em dispositivos da Internet das Coisas. O principal objetivo da solução apresentada é permitir a execução de código como serviço em qualquer dispositivo conectado na internet e promover a interação transparente entre dispositivos. Algumas vantagens dessa abordagem são a capacidade de evitar a propagação de dados não essenciais na rede, a possibilidade de controlar dispositivos internamente e a compatibilidade com dispositivos computacionalmente restritos. O arcabouço PROWL(PROgrammable Smart Things) proposto combina: (I) um protocolo de comunicação referência para descoberta e descrição de dispositivos conectados em uma rede de computadores e (II) uma plataforma compacta que executa aplicações compiladas para uma arquitetura de fácil emulação. Finalmente, para validação da plataforma projetada, são apresentados estudos de caso em diferentes cenários, corroborando a eficácia da soluçãoAbstract: Innumerable types of embedded devices connected to the internet make up the so-called Internet of Things, which will promote the generation of a massive flow of data and the control of the devices, often centrally. However, the existing solutions for this type of scenario are subject to connection failures and require external elements for the monitoring and control of the devices. In order to mitigate these limitations, this work proposes a platform for executing user code as a service in devices of the Internet of Things. The main goal of the presented solution is to enable the execution of code as a service on any device connected to the Internet and to promote transparent interaction between devices. Some advantages of this approach are the ability to avoid spreading nonessential data on the network, the ability to control devices internally, and compatibility with computationally constrained devices. The proposed PROgrammable Smart Things framework combines: (I) a reference communication protocol for discovery and description of connected devices in a computer network and (ii) a compact platform that runs compiled applications for an easy-to-emulate architecture. Finally, to validate the projected platform, case studies are presented in different scenarios, corroborating the effectiveness of the solutionMestradoCiência da ComputaçãoMestre em Ciência da Computação132788/2015-2CNP

    makeSense: Simplifying the Integration of Wireless Sensor Networks into Business Processes

    Get PDF
    A wide gap exists between the state of the art in developing Wireless Sensor Network (WSN) software and current practices concerning the design, execution, and maintenance of business processes. WSN software is most often developed based on low-level OS abstractions, whereas business process development leverages high-level languages and tools. This state of affairs places WSNs at the fringe of industry. The makeSense system addresses this problem by simplifying the integration of WSNs into business processes. Developers use BPMN models extended with WSN-specific constructs to specify the application behavior across both traditional business process execution environments and the WSN itself, which is to be equipped with application-specific software. We compile these models into a high-level intermediate language—also directly usable by WSN developers—and then into OS-specific deployment-ready binaries. Key to this process is the notion of meta-abstraction, which we define to capture fundamental patterns of interaction with and within the WSN. The concrete realization of meta-abstractions is application-specific; developers tailor the system configuration by selecting concrete abstractions out of the existing codebase or by providing their own. Our evaluation of makeSense shows that i) users perceive our approach as a significant advance over the state of the art, providing evidence of the increased developer productivity when using makeSense; ii) in large-scale simulations, our prototype exhibits an acceptable system overhead and good scaling properties, demonstrating the general applicability of makeSense; and, iii) our prototype—including the complete tool-chain and underlying system support—sustains a real-world deployment where estimates by domain specialists indicate the potential for drastic reductions in the total cost of ownership compared to wired and conventional WSN-based solutions

    Java for Cost Effective Embedded Real-Time Software

    Get PDF
    corecore