Embedded C 8322 Prelims (I-Xvi) 25/2/02 3:04 Pm Page Ii 8322 Prelims (I-Xvi) 25/2/02 3:04 Pm Page Iii

Total Page:16

File Type:pdf, Size:1020Kb

Embedded C 8322 Prelims (I-Xvi) 25/2/02 3:04 Pm Page Ii 8322 Prelims (I-Xvi) 25/2/02 3:04 Pm Page Iii 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page i Embedded C 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page ii 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page iii Embedded C Michael J. Pont An imprint of Pearson Education London • Boston • Indianapolis • New York • Mexico City • Toronto Sydney • Tokyo • Singapore • Hong Kong • Cape Town • New Delhi Madrid • Paris • Amsterdam • Munich • Milan • Stockholm 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page iv PEARSON EDUCATION LIMITED Head Office: London Office: Edinburgh Gate 128 Long Acre Harlow CM20 2JE London WC2E 9AN Tel: +44 (0)1279 623623 Tel: +44 (0)20 7447 2000 Fax: +44 (0)1279 431059 Fax: +44 (0)20 7240 5771 Websites: www.aw.com/cseng/ www.it-minds.com First published in Great Britain in 2002 © Pearson Education Limited 2002 The right of Michael J. Pont to be identified as Author of this Work has been asserted by him in accordance with the Copyright, Designs and Patents Act 1988. ISBN 0 201 79523 X British Library Cataloguing in Publication Data A CIP catalogue record for this book can be obtained from the British Library Library of Congress-in-Publication Data Pont, Michael J. Embedded C/Michael J. Pont. p. cm. Includes bibliographical references and index. ISBN 0-201-79523-X (pbx. : alk. paper) 1.C (Computer program language) 2. Embedded computer systems--Design and construction. I. Title. QA76.73.C15 P65 2002 005.265--dc21 2001056731 All rights reserved; no part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without either the prior written permission of the Publishers or a licence permitting restricted copying in the United Kingdom issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1P 0LP. This book may not be lent, resold, hired out or otherwise disposed of by way of trade in any form of binding or cover other than that in which it is published, without the prior consent of the Publishers. The programs in this book have been included for their instructional value. The publisher does not offer any warranties or representations in respect of their fitness for a particular purpose, nor does the publisher accept any liability for any loss or damage arising from their use. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Pearson Education Limited has made every attempt to supply trademark information about manufacturers and their products mentioned in this book. The publishers wish to thank Infineon Technologies for permission to reproduce the material in Figure 1.4. 10 9 8 7 6 5 4 3 2 1 Designed by Claire Brodmann Book Designs, Lichfield, Staffs Typeset by Pantek Arts Ltd, Maidstone, Kent Printed and bound in Great Britain by Biddles Ltd of Guildford and King’s Lynn The Publisher’s policy is to use paper manufactured from sutainable forests. 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page v This book is dedicated to Sarah 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page vi About the author Michael J. Pont is an experienced software engineer who began his first embedded project in 1986. Since then he has lectured and carried out research at the University of Sheffield and the University of Leicester, and has provided consul- tancy and training services to a range of international companies. Michael is the author of two previous books Patterns for Time-Triggered Embedded Systems and Software Engineering with C++ and CASE tools. 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page vii Contents Preface xi 1 Programming embedded systems in C 1 1.1 Introduction 1 1.2 What is an embedded system? 1 1.3 Which processor should you use? 2 1.4 Which programming language should you use? 7 1.5 Which operating system should you use? 9 1.6 How do you develop embedded software? 12 1.7 Conclusions 15 2 Introducing the 8051 microcontroller family 17 2.1 Introduction 17 2.2 What’s in a name? 17 2.3 The external interface of the Standard 8051 18 2.4 Reset requirements 20 2.5 Clock frequency and performance 21 2.6 Memory issues 23 2.7 I/O pins 29 2.8 Timers 29 2.9 Interrupts 30 2.10 Serial interface 32 2.11 Power consumption 32 2.12 Conclusions 34 3 Hello, embedded world 35 3.1 Introduction 35 3.2 Installing the Keil software and loading the project 36 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page viii viii Contents 3.3 Configuring the simulator 37 3.4 Building the target 39 3.5 Running the simulation 39 3.6 Dissecting the program 43 3.7 Aside: Building the hardware 55 3.8 Conclusions 56 4 Reading switches 57 4.1 Introduction 57 4.2 Basic techniques for reading from port pins 58 4.3 Example: Reading and writing bytes 60 4.4 Example: Reading and writing bits (simple version) 61 4.5 Example: Reading and writing bits (generic version) 62 4.6 The need for pull-up resistors 67 4.7 Dealing with switch bounce 69 4.8 Example: Reading switch inputs (basic code) 70 4.9 Example: Counting goats 75 4.10 Conclusions 80 5 Adding structure to your code 81 5.1 Introduction 81 5.2 Object-oriented programming with C 82 5.3 The Project Header (MAIN.H) 88 5.4 The Port Header (PORT.H) 94 5.5 Example: Restructuring the ‘Hello Embedded World’ example 96 5.6 Example: Restructuring the goat-counting example 103 5.7 Further examples 111 5.8 Conclusions 111 6 Meeting real-time constraints 113 6.1 Introduction 113 6.2 Creating ‘hardware delays’ using Timer 0 and Timer 1 116 6.3 Example: Generating a precise 50 ms delay 120 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page ix Contents ix 6.4 Example: Creating a portable hardware delay 124 6.5 Why not use Timer 2? 129 6.6 The need for ‘timeout’ mechanisms 129 6.7 Creating loop timeouts 130 6.8 Example: Testing loop timeouts 133 6.9 Example: A more reliable switch interface 134 6.10 Creating hardware timeouts 136 6.11 Example: Testing a hardware timeout 140 6.12 Conclusions 142 7 Creating an embedded operating system 143 7.1 Introduction 143 7.2 The basis of a simple embedded OS 147 7.3 Introducing sEOS 152 7.4 Using Timer 0 or Timer 1 161 7.5 Is this approach portable? 166 7.6 Alternative system architectures 166 7.7 Important design considerations when using sEOS 172 7.8 Example: Milk pasteurization 174 7.9 Conclusions 187 8 Multi-state systems and function sequences 189 8.1 Introduction 189 8.2 Implementing a Multi-State (Timed) system 192 8.3 Example: Traffic light sequencing 192 8.4 Example: Animatronic dinosaur 198 8.5 Implementing a Multi-State (Input/Timed) system 204 8.6 Example: Controller for a washing machine 205 8.7 Conclusions 215 9 Using the serial interface 217 9.1 Introduction 217 9.2 What is RS-232? 217 9.3 Does RS-232 still matter? 218 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page x x Contents 9.4 The basic RS-232 protocol 218 9.5 Asynchronous data transmission and baud rates 219 9.6 Flow control 220 9.7 The software architecture 220 9.8 Using the on-chip UART for RS-232 communications 222 9.9 Memory requirements 224 9.10 Example: Displaying elapsed time on a PC 225 9.11 The Serial-Menu architecture 237 9.12 Example: Data acquisition 237 9.13 Example: Remote-control robot 252 9.14 Conclusions 253 10 Case study: Intruder alarm system 255 10.1 Introduction 255 10.2 The software architecture 257 10.3 Key software components used in this example 257 10.4 Running the program 258 10.5 The software 258 10.6 Conclusions 283 11 Where do we go from here 285 11.1 Introduction 285 11.2 Have we achieved our aims? 285 11.3 Suggestions for further study 286 11.4 Patterns for Time-Triggered Embedded Systems 288 11.5 Embedded Operating Systems 288 11.6 Conclusions 289 Index 291 Licensing Agreement 295 8322 Prelims (i-xvi) 25/2/02 3:04 pm Page xi Preface This book provides a ‘hardware-free’ introduction to embedded software for people who: G Already know how to write software for ‘desktop’ computer systems. G Are familiar with a C-based language (Java, C++ or C). G Want to learn how C is used in practical embedded systems. The remainder of this preface attempts to answer some questions which prospec- tive readers may have about the contents. I What is an embedded system? As far as this book is concerned: An embedded system is an application that contains at least one programmable computer (typically in the form of a microcontroller, a microprocessor or digital signal processor chip) and which is used by individuals who are, in the main, unaware that the system is computer-based. This type of embedded system is all around us. Use of embedded processors in pas- senger cars, mobile phones, medical equipment, aerospace systems and defence systems is widespread, and even everyday domestic appliances such as dishwash- ers, televisions, washing machines and video recorders now include at least one such device.
Recommended publications
  • Introduction to Embedded C
    INTRODUCTION TO EMBEDDED C by Peter J. Vidler Introduction The aim of this course is to teach software development skills, using the C programming language. C is an old language, but one that is still widely used, especially in embedded systems, where it is valued as a high- level language that provides simple access to hardware. Learning C also helps us to learn general software development, as many of the newer languages have borrowed from its concepts and syntax in their design. Course Structure and Materials This document is intended to form the basis of a self-study course that provides a simple introduction to C as it is used in embedded systems. It introduces some of the key features of the C language, before moving on to some more advanced features such as pointers and memory allocation. Throughout this document we will also look at exercises of varying length and difficulty, which you should attempt before continuing. To help with this we will be using the free RapidiTTy® Lite IDE and targeting the TTE®32 microprocessor core, primarily using a cycle-accurate simulator. If you have access to an FPGA development board, such as the Altera® DE2-70, then you will be able to try your code out in hardware. In addition to this document, you may wish to use a textbook, such as “C in a Nutshell”. Note that these books — while useful and well written — will rarely cover C as it is used in embedded systems, and so will differ from this course in some areas. Copyright © 2010, TTE Systems Limited 1 Getting Started with RapidiTTy Lite RapidiTTy Lite is a professional IDE capable of assisting in the development of high- reliability embedded systems.
    [Show full text]
  • Embedded C Programming I (Ecprogrami)
    To our customers, Old Company Name in Catalogs and Other Documents On April 1st, 2010, NEC Electronics Corporation merged with Renesas Technology Corporation, and Renesas Electronics Corporation took over all the business of both companies. Therefore, although the old company name remains in this document, it is a valid Renesas Electronics document. We appreciate your understanding. Renesas Electronics website: http://www.renesas.com April 1st, 2010 Renesas Electronics Corporation Issued by: Renesas Electronics Corporation (http://www.renesas.com) Send any inquiries to http://www.renesas.com/inquiry. Notice 1. All information included in this document is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas Electronics products listed herein, please confirm the latest product information with a Renesas Electronics sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas Electronics such as that disclosed through our website. 2. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or others. 3. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. 4. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples.
    [Show full text]
  • Porting Musl to the M3 Microkernel TU Dresden
    Porting Musl to the M3 microkernel TU Dresden Sherif Abdalazim, Nils Asmussen May 8, 2018 Contents 1 Abstract 2 2 Introduction 3 2.1 Background.............................. 3 2.2 M3................................... 4 3 Picking a C library 5 3.1 C libraries design factors . 5 3.2 Alternative C libraries . 5 4 Porting Musl 7 4.1 M3andMuslbuildsystems ..................... 7 4.1.1 Scons ............................. 7 4.1.2 GNUAutotools........................ 7 4.1.3 Integrating Autotools with Scons . 8 4.2 Repositoryconfiguration. 8 4.3 Compilation.............................. 8 4.4 Testing ................................ 9 4.4.1 Syscalls ............................ 9 5 Evaluation 10 5.1 PortingBusyboxcoreutils . 10 6 Conclusion 12 1 Chapter 1 Abstract Today’s processing workloads require the usage of heterogeneous multiproces- sors to utilize the benefits of specialized processors and accelerators. This has, in turn, motivated new Operating System (OS) designs to manage these het- erogeneous processors and accelerators systematically. M3 [9] is an OS following the microkernel approach. M3 uses a hardware/- software co-design to exploit the heterogeneous systems in a seamless and effi- cient form. It achieves that by abstracting the heterogeneity of the cores via a Data Transfer Unit (DTU). The DTU abstracts the heterogeneity of the cores and accelerators so that they can communicate systematically. I have been working to enhance the programming environment in M3 by porting a C library to M3. I have evaluated different C library implementations like the GNU C Library (glibc), Musl, and uClibc. I decided to port Musl as it has a relatively small code base with fewer configurations. It is simpler to port, and it started to gain more ground in embedded systems which are also a perfect match for M3 applications.
    [Show full text]
  • Architecture of 8051 & Their Pin Details
    SESHASAYEE INSTITUTE OF TECHNOLOGY ARIYAMANGALAM , TRICHY – 620 010 ARCHITECTURE OF 8051 & THEIR PIN DETAILS UNIT I WELCOME ARCHITECTURE OF 8051 & THEIR PIN DETAILS U1.1 : Introduction to microprocessor & microcontroller : Architecture of 8085 -Functions of each block. Comparison of Microprocessor & Microcontroller - Features of microcontroller -Advantages of microcontroller -Applications Of microcontroller -Manufactures of microcontroller. U1.2 : Architecture of 8051 : Block diagram of Microcontroller – Functions of each block. Pin details of 8051 -Oscillator and Clock -Clock Cycle -State - Machine Cycle -Instruction cycle –Reset - Power on Reset - Special function registers :Program Counter -PSW register -Stack - I/O Ports . U1.3 : Memory Organisation & I/O port configuration: ROM RAM - Memory Organization of 8051,Interfacing external memory to 8051 Microcontroller vs. Microprocessors 1. CPU for Computers 1. A smaller computer 2. No RAM, ROM, I/O on CPU chip 2. On-chip RAM, ROM, I/O itself ports... 3. Example:Intel’s x86, Motorola’s 3. Example:Motorola’s 6811, 680x0 Intel’s 8051, Zilog’s Z8 and PIC Microcontroller vs. Microprocessors Microprocessor Microcontroller 1. CPU is stand-alone, RAM, ROM, I/O, timer are separate 1. CPU, RAM, ROM, I/O and timer are all on a single 2. designer can decide on the chip amount of ROM, RAM and I/O ports. 2. fix amount of on-chip ROM, RAM, I/O ports 3. expansive 3. for applications in which 4. versatility cost, power and space are 5. general-purpose critical 4. single-purpose uP vs. uC – cont. Applications – uCs are suitable to control of I/O devices in designs requiring a minimum component – uPs are suitable to processing information in computer systems.
    [Show full text]
  • Embedded Systems and Internet of Things (Iots) - Challenges in Teaching the ARM Controller in the Classroom
    Paper ID #20286 Embedded Systems and Internet of Things (IoTs) - Challenges in Teaching the ARM Controller in the Classroom Prof. Dhananjay V. Gadre, Netaji Subhas Institute of Technology Dhananjay V. Gadre (New Delhi, India) completed his MSc (electronic science) from the University of Delhi and M.Engr (computer engineering) from the University of Idaho, USA. In his professional career of more than 27 years, he has taught at the SGTB Khalsa College, University of Delhi, worked as a scientific officer at the Inter University Centre for Astronomy and Astrophysics (IUCAA), Pune, and since 2001, has been with the Electronics and Communication Engineering Division, Netaji Subhas Institute of Technology (NSIT), New Delhi, currently as an associate professor. He directs two open access laboratories at NSIT, namely Centre for Electronics Design and Technology (CEDT) and TI Centre for Embedded Product Design (TI-CEPD). Professor Gadre is the author of several professional articles and five books. One of his books has been translated into Chinese and another one into Greek. His recent book ”TinyAVR Microcontroller Projects for the Evil Genius”, published by McGraw Hill International consists of more than 30 hands-on projects and has been translated into Chinese and Russian. He is a licensed radio amateur with a call sign VU2NOX and hopes to design and build an amateur radio satellite in the near future. Dr. Ramesh S. Gaonkar, SUNY-PCC and IITGN Ramesh Gaonkar, Ph.D., Professor Emeritus, SUNY OCC, (Syracuse, NY) was a professor in Electrical Technology, and presently, he is teaching as a Visiting Professor at Indian Institute of Technology (IIT), Gandhinagar, India.
    [Show full text]
  • TASKING VX-Toolset for Tricore User Guide
    TASKING VX-toolset for TriCore User Guide MA160-800 (v3.2) February 25, 2009 TASKING VX-toolset for TriCore User Guide Copyright © 2009 Altium Limited. All rights reserved.You are permitted to print this document provided that (1) the use of such is for personal use only and will not be copied or posted on any network computer or broadcast in any media, and (2) no modifications of the document is made. Unauthorized duplication, in whole or part, of this document by any means, mechanical or electronic, including translation into another language, except for brief excerpts in published reviews, is prohibited without the express written permission of Altium Limited. Unauthorized duplication of this work may also be prohibited by local statute. Violators may be subject to both criminal and civil penalties, including fines and/or imprisonment. Altium, TASKING, and their respective logos are trademarks or registered trademarks of Altium Limited or its subsidiaries. All other registered or unregistered trademarks referenced herein are the property of their respective owners and no trademark rights to the same are claimed. Table of Contents 1. C Language .................................................................................................................. 1 1.1. Data Types ......................................................................................................... 1 1.1.1. Bit Data Type ........................................................................................... 2 1.1.2. Fractional Types .......................................................................................
    [Show full text]
  • PDF, Postscript(Tm) and HTML Form
    T2 System Development Environment Creating custom Linux solutions (Compiled from r369) René Rebe Susanne Klaus T2 System Development Environment: Creating custom Linux solutions: (Compiled from r369) by René Rebe and Susanne Klaus Published (TBA) Copyright © 2002, 2003, 2004, 2005, 2006, 2007 René RebeSusanne Klaus This work is licensed under the Open Publication License, v1.0, including license option B: Distribution of the work or derivative of the work in any standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder. The latest version of the Open Publication License is presently available at ht- tp://www.opencontent.org/openpub/. Table of Contents Preface ....................................................................................................................x Audience ..........................................................................................................x How to Read this Book ...................................................................................... x Conventions Used in This Book ......................................................................... x Typographic Conventions .......................................................................... x Icons ........................................................................................................x Organization of This Book ................................................................................ xi This Book is Free ............................................................................................
    [Show full text]
  • 2 XII December 2014
    2 XII December 2014 www.ijraset.com Volume 2 Issue XII, December 2014 ISSN: 2321-9653 International Journal for Research in Applied Science & Engineering Technology (IJRASET) Overview and Comparative Study of Different Microcontrollers Rajratna Khadse1, Nitin Gawai2, Bagwan M. Faruk3 1Assist.Professor, Electronics Engineering Department, RCOEM, Nagpur 2,3Assist.Professor, E & Tc Engineering Department, JDIET, Yavatmal Abstract—A microcontroller is a small and low-cost computer built for the purpose of dealing with specific tasks, such as displaying information on seven segment display at railway platform or receiving information from a television’s remote control. Microcontrollers are mainly used in products that require a degree of control to be exerted by the user. Today various types of microcontrollers are available in market with different word lengths such as 8bit, 16bit, 32bit, and microcontrollers. Microcontroller is a compressed microcomputer manufactured to control the functions of embedded systems in office machines, robots, home appliances, motor vehicles, and a number of other gadgets. Therefore in today’s technological world lot of things done with the help of Microcontroller. Depending upon the applications we have to choose particular types of Microcontroller. The aim of this paper to give the basic information of microcontroller and comparative study of 8051 Microcontroller, ARM Microcontroller, PIC Microcontroller and AVR Microcontroller Keywords— Microcontroller, Memory, Instruction, cycle, bit, architecture I. INTRODUCTION Microcontrollers have directly or indirectly impact on our daily life. Usually, But their presence is unnoticed at most of the places like: At supermarkets in Cash Registers, Weighing Scales, Video games ,security system , etc. At home in Ovens, Washing Machines, Alarm Clocks, paging, VCR, LASER Printers, color printers etc.
    [Show full text]
  • 4. Nios II Software Build Tools
    4. Nios II Software Build Tools May 2011 NII52015-11.0.0 NII52015-11.0.0 This chapter describes the Nios® II Software Build Tools (SBT), a set of utilities and scripts that creates and builds embedded C/C++ application projects, user library projects, and board support packages (BSPs). The Nios II SBT supports a repeatable, scriptable, and archivable process for creating your software product. You can invoke the Nios II SBT through either of the following user interfaces: ■ The Eclipse™ GUI ■ The Nios II Command Shell The purpose of this chapter is to make you familiar with the internal functionality of the Nios II SBT, independent of the user interface employed. 1 Before reading this chapter, consider getting an introduction to the Nios II SBT by first reading one of the following chapters: ■ Getting Started with the Graphical User Interface chapter of the Nios II Software Developer’s Handbook ■ Getting Started from the Command Line chapter of the Nios II Software Developer’s Handbook This chapter contains the following sections: ■ “Road Map for the SBT” ■ “Makefiles” on page 4–3 ■ “Nios II Embedded Software Projects” on page 4–5 ■ “Common BSP Tasks” on page 4–8 ■ “Details of BSP Creation” on page 4–20 ■ “Tcl Scripts for BSP Settings” on page 4–27 ■ “Revising Your BSP” on page 4–30 ■ “Specifying BSP Defaults” on page 4–35 ■ “Device Drivers and Software Packages” on page 4–39 ■ “Boot Configurations for Altera Embedded Software” on page 4–40 ■ “Altera-Provided Embedded Development Tools” on page 4–42 ■ “Restrictions” on page 4–48 © 2011 Altera Corporation.
    [Show full text]
  • Programming Embedded Systems, Second Edition with C and GNU Development Tools
    Programming Embedded Systems Second Edition Programming Embedded Systems, Second Edition with C and GNU Development Tools Foreword If you mention the word embedded to most people, they'll assume you're talking about reporters in a war zone. Few dictionaries—including the canonical Oxford English Dictionary—link embedded to computer systems. Yet embedded systems underlie nearly all of the electronic devices used today, from cell phones to garage door openers to medical instruments. By now, it's nearly impossible to build anything electronic without adding at least a small microprocessor and associated software. Vendors produce some nine billion microprocessors every year. Perhaps 100 or 150 million of those go into PCs. That's only about one percent of the units shipped. The other 99 percent go into embedded systems; clearly, this stealth business represents the very fabric of our highly technological society. And use of these technologies will only increase. Solutions to looming environmental problems will surely rest on the smarter use of resources enabled by embedded systems. One only has to look at the network of 32-bit processors in Toyota's hybrid Prius to get a glimpse of the future. Page 1 Programming Embedded Systems Second Edition Though prognostications are difficult, it is absolutely clear that consumers will continue to demand ever- brainier products requiring more microprocessors and huge increases in the corresponding software. Estimates suggest that the firmware content of most products doubles every 10 to 24 months. While the demand for more code is increasing, our productivity rates creep up only slowly. So it's also clear that the industry will need more embedded systems people in order to meet the demand.
    [Show full text]
  • Safe System-Level Concurrency on Resource-Constrained Nodes
    Safe System-level Concurrency on Resource-Constrained Nodes Accepted paper in SenSys’13 (preprint version) Francisco Sant’Anna Noemi Rodriguez Roberto Ierusalimschy [email protected] [email protected] [email protected] Departamento de Informatica´ – PUC-Rio, Brazil Olaf Landsiedel Philippas Tsigas olafl@chalmers.se [email protected] Computer Science and Engineering – Chalmers University of Technology, Sweden Abstract as an alternative, providing traditional structured program- Despite the continuous research in facilitating program- ming for WSNs [12, 7]. However, the development pro- ming WSNs, most safety analysis and mitigation efforts in cess still requires manual synchronization and bookkeeping concurrency are still left to developers, who must manage of threads [24]. Synchronous languages [2] have also been synchronization and shared memory explicitly. In this paper, adapted to WSNs and offer higher-level compositions of ac- we present a system language that ensures safe concurrency tivities, considerably reducing programming efforts [21, 22]. by handling threats at compile time, rather than at runtime. Despite the increase in development productivity, WSN The synchronous and static foundation of our design allows system languages still fail to ensure static safety properties for a simple reasoning about concurrency enabling compile- for concurrent programs. However, given the difficulty in time analysis to ensure deterministic and memory-safe pro- debugging WSN applications, it is paramount to push as grams. As a trade-off, our design imposes limitations on many safety guarantees to compile time as possible [25]. As the language expressiveness, such as doing computationally- an example, shared memory is widely used as a low-level intensive operations and meeting hard real-time responsive- communication mechanism, but current languages do not ness.
    [Show full text]
  • IAR Embedded Workbench®
    IAR Embedded Workbench® C-SPY® Debugging Guide for Renesas V850 Microcontroller Family UCSV850-1 UCSV850-1 COPYRIGHT NOTICE Copyright © 1998–2011 IAR Systems AB. No part of this document may be reproduced without the prior written consent of IAR Systems AB. The software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such a license. DISCLAIMER The information in this document is subject to change without notice and does not represent a commitment on any part of IAR Systems. While the information contained herein is assumed to be accurate, IAR Systems assumes no responsibility for any errors or omissions. In no event shall IAR Systems, its employees, its contractors, or the authors of this document be liable for special, direct, indirect, or consequential damage, losses, costs, charges, claims, demands, claim for lost profits, fees, or expenses of any nature or kind. TRADEMARKS IAR Systems, IAR Embedded Workbench, C-SPY, visualSTATE, From Idea To Target, IAR KickStart Kit, IAR PowerPac, IAR YellowSuite, IAR Advanced Development Kit, IAR, and the IAR Systems logotype are trademarks or registered trademarks owned by IAR Systems AB. J-Link is a trademark licensed to IAR Systems AB. Microsoft and Windows are registered trademarks of Microsoft Corporation. Renesas is a registered trademark of Renesas Electronics Corporation. Adobe and Acrobat Reader are registered trademarks of Adobe Systems Incorporated. All other product names are trademarks or registered trademarks of their respective owners. EDITION NOTICE First edition: February 2011 Part number: UCSV850-1 The C-SPY® Debugging Guide for V850 replaces all debugging information in the IAR Embedded Workbench IDE User Guide and the hardware debugger guides for V850.
    [Show full text]