@odinthenerd. not the god. Auto-Intern GmbH 1
|
|
- Letitia Little
- 5 years ago
- Views:
Transcription
1 @odinthenerd not the god Auto-Intern GmbH 1
2 A possible future of embedded development Auto-Intern GmbH 2
3 Sean Parent Auto-Intern GmbH 3
4 Everything is Crap! A possible future of embedded development Auto-Intern GmbH 4
5 Are you a hard real-time system? Auto-Intern GmbH 5
6 Are you a hard real-time system? Are you master of everything? Auto-Intern GmbH 6
7 Are you a hard real-time system? Are you master of everything? Do you assume endless RAM? Auto-Intern GmbH 7
8 Realtime systems Auto-Intern GmbH 8
9 Realtime systems Auto-Intern GmbH 9
10 Realtime systems Auto-Intern GmbH 10
11 Functional Correctness 11
12 Unit Tests Functional Correctness 12
13 Functional Correctness Unit Tests Localtity of Reasoning 13
14 Functional Correctness Unit Tests Localtity of Reasoning auto diego = std::make_unique<radioactive_frog>(charge::max_plad); 14
15 Functional Correctness Unit Tests Localtity of Reasoning { } auto diego = std::make_unique<radioactive_frog>(charge::max_plad); 15
16 Functional Correctness Unit Tests Localtity of Reasoning { } auto diego = std::make_unique<radioactive_frog>(charge::max_plad); // lots of terrible things 16
17 Functional Correctness Unit Tests Localtity of Reasoning { } auto diego = std::make_unique<radioactive_frog>(charge::max_plad); // lots of (moderately) terrible things 17
18 Functional Correctness Unit Tests Localtity of Reasoning Formal Proof 18
19 Unit Tests Functional Correctness Formal Proof Localtity of Reasoning 19
20 Space Unit Tests Functional Correctness Localtity of Reasoning Formal Proof 20
21 Space Unit Tests Functional Correctness Localtity of Reasoning Formal Proof Out of Memory? 21
22 Space Unit Tests Functional Correctness Localtity of Reasoning Formal Proof Out of Memory? Buffer overflow? 22
23 Space Unit Tests Functional Correctness Localtity of Reasoning Formal Proof Out of Memory? Buffer overflow? Stack Overflow 23
24 Unit Tests Functional Correctness Formal Proof Localtity of Reasoning Space Out of Memory? Stack Overflow Buffer overflow? 24
25 Time Unit Tests Functional Correctness Localtity of Reasoning Formal Proof Space Out of Memory? Stack Overflow Buffer overflow? 25
26 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Formal Proof Space Out of Memory? Stack Overflow Buffer overflow? 26
27 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Jitter Formal Proof Space Out of Memory? Stack Overflow Buffer overflow? 27
28 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Jitter Formal Proof Dead Time Space Out of Memory? Stack Overflow Buffer overflow? 28
29 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Jitter Formal Proof Dead Time Turn Around Space Out of Memory? Stack Overflow Buffer overflow? 29
30 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Jitter Formal Proof Dead Time Turn Around Space Optimizer Out of Memory? Stack Overflow Buffer overflow? 30
31 Time Unit Tests Functional Correctness Localtity of Reasoning Latentcy Jitter Formal Proof Dead Time Turn Around Space Optimizer Caching Out of Memory? Stack Overflow Buffer overflow? 31
32 Auto-Intern GmbH 32
33 Race conditions void some_isr(){ global_thing++; } int main(){ --global_thing; return 0; } Auto-Intern GmbH 33
34 Race conditions auto w = global_thing; --w; global_thing = w; Auto-Intern GmbH 34
35 Race conditions auto w = global_thing; void some_isr(){ global_thing++; } --w; global_thing = w; Auto-Intern GmbH 35
36 Atomics to the rescue? std::atomic<int> global_thing; void some_isr(){ global_thing++; } int main(){ --global_thing; return 0; } Auto-Intern GmbH 36
37 Atomics to the rescue? std::atomic<int> global_thing; void some_isr(){ global_thing++; } int main(){ --global_thing; return 0; } sorry, unimplemented: Thumb-1 hard-float VFP ABI Auto-Intern GmbH 37
38 Emil Fresk Auto-Intern GmbH 38
39 What abstractions can I use? Auto-Intern GmbH 39
40 What abstractions can I use? Auto-Intern GmbH 40
41 Register abstraction DSL struct my_thing{ static constexpr auto init = list( set(thing_hw::super_bit), clear(thing_hw::naughty_bit), unsafe_write(42_c,thing_hw::danger_zone)); }; Auto-Intern GmbH 41
42 Chiel Douwes Auto-Intern GmbH 42
43 What does the standard library provide? <initializer_list> <cstddef> <cstdarg> <type_traits> <cstdint> <climits> <atomic> <new> <limits> <typeinfo> <exception> <cfloat> <cstdlib> (program startup and termination) <ciso646> <cstdalign> <cstdbool> 43
44 How to target 10,000 platforms Auto-Intern GmbH 44
45 How to target 10,000 platforms use an internal code generator Auto-Intern GmbH 45
46 How to target 10,000 platforms use an internal code generator use a declarative paradigm Auto-Intern GmbH 46
47 drivers auto myuart = make_uart( interface<blocking_tx>, uart1, 9600_baud, rx = 0.9_pin, tx = 0.10_pin ); myuart.blocking_send("hello world"); Auto-Intern GmbH 47
48 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Auto-Intern GmbH 48
49 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan SVD Auto-Intern GmbH 49
50 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan SVD Python translator Auto-Intern GmbH 50
51 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend SVD Python translator Auto-Intern GmbH 51
52 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend SVD Python translator conan Auto-Intern GmbH 52
53 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend Python SVD conan TMP translator Auto-Intern GmbH 53
54 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend Python SVD conan TMP User translator Auto-Intern GmbH 54
55 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend Python SVD conan TMP User Translator Auto-Intern GmbH 55
56 drivers auto myuart = make_uart( interface<blocking_tx>, uart1, 9600_baud, rx = 0.9_pin, tx = 0.10_pin ); myuart.blocking_send("hello world"); Auto-Intern GmbH 56
57 How to target 10,000 platforms use an internal code generator use a declarative paradigm use Conan Extend Python SVD conan TMP User Translator Auto-Intern GmbH 57
58 Event based paradigm Sleeping is trivial Auto-Intern GmbH 58
59 Event based paradigm Sleeping is trivial High priority latency tool enforceable Auto-Intern GmbH 59
60 Event based paradigm Sleeping is trivial High priority latency tool enforceable Stack depth low and enforceable Auto-Intern GmbH 60
61 Event based paradigm Sleeping is trivial High priority latency tool enforceable Stack depth low and enforceable Traditionally event handlers = hard Auto-Intern GmbH 61
62 Event based paradigm Sleeping is trivial High priority latency tool enforceable Stack depth low and enforceable Traditionally event handlers = hard Coroutines = awesome Auto-Intern GmbH 62
63 Event based paradigm Sleeping is trivial High priority latency tool enforceable Stack depth low and enforceable Traditionally event handlers = hard Coroutines = awesome We may be able to fix exceptions Auto-Intern GmbH 63
64 The world will be awesome, just different Auto-Intern GmbH 64
65 @odinthenerd Github.com Twitter.com Gmail.com Blogspot.com LinkedIn.com Embo.io Auto-Intern GmbH 65
@odinthenerd. not the god. Auto-Intern GmbH 1
@odinthenerd not the god Auto-Intern GmbH 1 Auto-Intern GmbH 2 You are awesome! I m not impressed Auto-Intern GmbH 3 You are awesome! I m not impressed Auto-Intern GmbH 4 You are awesome! I m not impressed
More informationWorking Draft, C++ Extensions for Coroutines
Document Number: Date: 2018-02-11 Revises: N4723 Reply to: Gor Nishanov Working Draft, C++ Extensions for Coroutines Note: this is an early draft. It s known to be incomplet and incorrekt,
More informationWorking Draft, C++ Extensions for Coroutines
Document Number: Date: 2018-06-24 Revises: N4736 Reply to: Gor Nishanov Working Draft, C++ Extensions for Coroutines Note: this is an early draft. It s known to be incomplet and incorrekt,
More informationC++ Functions. Last Week. Areas for Discussion. Program Structure. Last Week Introduction to Functions Program Structure and Functions
Areas for Discussion C++ Functions Joseph Spring School of Computer Science Operating Systems and Computer Networks Lecture Functions 1 Last Week Introduction to Functions Program Structure and Functions
More informationSection 7: Wait/Exit, Address Translation
William Liu October 15, 2014 Contents 1 Wait and Exit 2 1.1 Thinking about what you need to do.............................. 2 1.2 Code................................................ 2 2 Vocabulary 4
More informationLearn how to communicate
USART 1 Learn how to communicate Programmed I/O (Software Polling) Interrupt Driven I/O Direct Memory Access (DMA) 2 Programmed I/O (Polling) Processor must read and check I/O ready bits for proper value
More informationSpot: A Programming Language for Verified Flight Software
Spot: A Programming Language for Verified Flight Software Rob Bocchino (bocchino@jpl.nasa.gov) Ed Gamble (ed.gamble@jpl.nasa.gov) Kim Gostelow Jet Propulsion Laboratory Califor nia Institute of Technology
More informationUniversal Asynchronous Receiver / Transmitter (UART)
Universal Asynchronous Receiver / Transmitter (UART) MSP432 UART 2 tj MSP432 UART ARM (AMBA Compliant) Asynchronous operation 7/8 bit transmission Master/Slave LSB/MSB first Separate RX/TX registers 4
More informationEFM32 Series 0: DMA (ARM PrimeCell µdma PL230)
EFM32 Series 0: DMA (ARM PrimeCell µdma PL230) EFM32 - DMA DMA has read/write access to most of the EFM32 memory map Flash writes can not be done in memory map, but through sequenced writes to peripheral
More informationI/O Management Software. Chapter 5
I/O Management Software Chapter 5 1 Learning Outcomes An understanding of the structure of I/O related software, including interrupt handers. An appreciation of the issues surrounding long running interrupt
More informationstd::assume_aligned Abstract
std::assume_aligned Timur Doumler (papers@timur.audio) Chandler Carruth (chandlerc@google.com) Document #: P1007R0 Date: 2018-05-04 Project: Programming Language C++ Audience: Library Evolution Working
More informationEmbedded Modbus TCP Module GS11-MT. User Manual REV 1.1. SST Automation.
Embedded Modbus TCP Module GS11-MT User Manual REV 1.1 SST Automation E-mail: SUPPORT@SSTCOMM.COM WWW.SSTCOMM.COM Catalog 1 About the Embedded Module... 4 1.1 General...4 1.2 Features... 4 1.3 Specifications...4
More informationEmbedded Software TI2726 B. 4. Interrupts. Koen Langendoen. Embedded Software Group
Embedded Software 4. Interrupts TI2726 B Koen Langendoen Embedded Software Group What is an Interrupt? Asynchronous signal from hardware Synchronous signal from software Indicates the need for attention
More informationWorking Draft, Technical Specification for C++ Extensions for Coroutines
Document Number: Date: 2016-11-27 Revises: P0057R7 Reply to: Gor Nishanov Working Draft, Technical Specification for C++ Extensions for Coroutines Note: this is an early draft. It
More informationDraft wording for Resumable Functions
Document Number: Date: 2015-04-10 Revises: None Reply to: Gor Nishanov Microsoft gorn@microsoft.com Draft wording for Resumable Functions Note: this is an early draft. It s known to be incomplet and incorrekt,
More informationIntroduction to C++11 and its use inside Qt
Introduction to C++11 and its use inside Qt Olivier Goffart February 2013 1/43 Introduction to C++11 and its use inside Qt About Me http://woboq.com http://code.woboq.org 2/43 Introduction to C++11 and
More informationSPU Render. Arseny Zeux Kapoulkine CREAT Studios
SPU Render Arseny Zeux Kapoulkine CREAT Studios arseny.kapoulkine@gmail.com http://zeuxcg.org/ Introduction Smash Cars 2 project Static scene of moderate size Many dynamic objects Multiple render passes
More informationCPS 506 Comparative Programming Languages. Programming Language Paradigms
CPS 506 Comparative Programming Languages Concurrent Programming Language Paradigms Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads 2 Introduction
More informationAC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014
AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS
More informationARM Cortex core microcontrollers 3. Cortex-M0, M4, M7
ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7 Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2018 Trends of 32-bit microcontrollers
More informationembos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1
embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1 A product of Segger Microcontroller Systeme GmbH www.segger.com 2/25 embos for SH2 CPUs and
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 24, 2018 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Expressions and Operator Precedence
More informationECE 2400 Computer Systems Programming Fall 2018 Topic 11: Transition to C++
ECE 2400 Computer Systems Programming Fall 2018 Topic 11: Transition to C++ School of Electrical and Computer Engineering Cornell University revision: 2018-10-19-09-50 1 Why C++? 3 1.1. Procedural Programming........................
More informationAstréeA From Research To Industry
AstréeA From Research To Industry Dr.-Ing. Stephan Wilhelm, AbsInt GmbH Workshop on Static Analysis of Concurrent Software Edinburgh, 2016 2 AbsInt Angewandte Informatik GmbH Provides advanced development
More informationSensor Fusion with RTMaps on an Embedded Platform
Sensor Fusion with RTMaps on an Embedded Platform Jacob Perrin and Theo King Applications Engineers dspace Inc. 50131 Pontiac Trail Wixom, MI 48393 USA 1 Agenda 1. RTMaps Embedded Overview 2. Demo: RTMaps
More informationGlobal GPS NMEA over I²C Software Guide V 1.2
Global GPS NMEA over I²C Software Guide V 1.2 Steve Chen 1 Version History History Date Rev. Author Description 2014/10/01 1.0 Stanly Lin First Release 2015/07/23 1.1 Steve Chen Modify 1.slave address
More information4Serial SIK BINDER //77
4Serial SIK BINDER //77 SIK BINDER //78 Serial Communication Serial is used to communicate between your computer and the RedBoard as well as between RedBoard boards and other devices. Serial uses a serial
More informationChapter 15 - C++ As A "Better C"
Chapter 15 - C++ As A "Better C" Outline 15.1 Introduction 15.2 C++ 15.3 A Simple Program: Adding Two Integers 15.4 C++ Standard Library 15.5 Header Files 15.6 Inline Functions 15.7 References and Reference
More informationParameter passing. Programming in C. Important. Parameter passing... C implements call-by-value parameter passing. UVic SEng 265
Parameter passing Programming in C UVic SEng 265 Daniel M. German Department of Computer Science University of Victoria 1 SEng 265 dmgerman@uvic.ca C implements call-by-value parameter passing int a =
More informationFaculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology
Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False
More informationI/O Management Software. Chapter 5
I/O Management Software Chapter 5 1 Learning Outcomes An understanding of the structure of I/O related software, including interrupt handers. An appreciation of the issues surrounding long running interrupt
More informationChapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level
Concurrency can occur at four levels: 1. Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Because there are no language issues in instruction- and program-level
More informationECE 2400 Computer Systems Programming Fall 2017 Topic 12: Transition from C to C++
ECE 2400 Computer Systems Programming Fall 2017 Topic 12: Transition from C to C++ School of Electrical and Computer Engineering Cornell University revision: 2017-10-23-01-13 1 C++ Namespaces 2 2 C++ Functions
More informationInterrupts and Serial Communication on the PIC18F8520
Interrupts and Serial Communication on the PIC18F8520 Kyle Persohn COEN 4720 Fall 2011 Marquette University 6 October 2011 Outline 1 Background Serial Communication PIC18 Interrupt System 2 Customizing
More informationBasics of UART Communication
Basics of UART Communication From: Circuit Basics UART stands for Universal Asynchronous Receiver/Transmitter. It s not a communication protocol like SPI and I2C, but a physical circuit in a microcontroller,
More informationIntroduction USART & AVR EVK1100
Introduction USART & AVR EVK1100 Time scope: 2-4h USART (Theory) Flash Development board EVK 1100 Basics for programming USART (Driver, Code) Exercises Emqopter GmbH 2 Terminology: UART, Universal Asynchronous
More informationembos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1
embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/24 embos for SH2A
More informationNanoRK. EECE 494 Sathish Gopalakrishnan
NanoRK EECE 494 Sathish Gopalakrishnan Outline Hardware platform for sensor networks The NanoRK operating system Developing applications with NanoRK Some tips and tricks 2 NanoRK feature list C GNU tool
More informationAtomicity CS 2110 Fall 2017
Atomicity CS 2110 Fall 2017 Parallel Programming Thus Far Parallel programs can be faster and more efficient Problem: race conditions Solution: synchronization Are there more efficient ways to ensure the
More informationCMSC421: Principles of Operating Systems
CMSC421: Principles of Operating Systems Nilanjan Banerjee Assistant Professor, University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/421/ Principles of Operating
More informationConcepts for the C++0x Standard Library: Introduction
Concepts for the C++0x Standard Library: Introduction Douglas Gregor, Jeremiah Willcock, and Andrew Lumsdaine Open Systems Laboratory Indiana University Bloomington, IN 47405 {dgregor, jewillco, lums}@cs.indiana.edu
More informationAN4872 Application note
Application note BlueNRG-1 and BlueNRG-2 UART bootloader protocol Introduction The BlueNRG-1 and BlueNRG-2 are very low power Bluetooth low energy (BLE) single-mode systemson-chip, compliant with Bluetooth
More informationEmbedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group
Embedded Software 7. Embedded software design TI2726 B Koen Langendoen Embedded Software Group Overview Timing services RTOS and ISRs Design of embedded systems General principles Timing Functionality
More informationDevelopment Routines of TF LiDAR on Arduino
Development Routines of TF LiDAR on Arduino This routine is aimed to help our customers quickly master the LiDAR products of our company and to shorten the development cycle. As for Arduino board, UNO
More informationSection 31. DMA Controller
31.3 MODES OF OPERATION The DMA module offers the following operating modes: Section 31. DMA Controller Basic Transfer mode Pattern Match mode Channel Chaining mode Channel Auto-Enable mode Special Function
More informationOverview. CMSC 330: Organization of Programming Languages. Concurrency. Multiprocessors. Processes vs. Threads. Computation Abstractions
CMSC 330: Organization of Programming Languages Multithreaded Programming Patterns in Java CMSC 330 2 Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to
More informationAN Entering ISP mode from user code. Document information. ARM ISP, bootloader
Rev. 03 13 September 2006 Application note Document information Info Keywords Abstract Content ARM ISP, bootloader Entering ISP mode is normally done by sampling a pin during reset. This application note
More informationDevelopment Board (Quick start) LDM-MCp Q208 Evolution
Development Board (Quick start) LDM-MCp0411100101-Q208 Evolution UNITING THE BEST LDM SYSTEMS QUICK START MANUAL Development Board (Quick start) LDM-MCp0411100101-Q208 Evolution Made in Russia Product
More informationIAR PowerPac RTOS for ARM Cores
IAR PowerPac RTOS for ARM Cores CPU and compiler specifics using IAR Embedded Workbench COPYRIGHT NOTICE Copyright 2006-2008 IAR Systems. No part of this document may be reproduced without the prior written
More informationines-ieee488.2 igpib Device Driver Software Manual 1998 ines GmbH
ines-ieee488.2 igpib Device Driver Software Manual 1998 ines GmbH All rights reserved. No part of this document may be reproduced without permission in writing from the publisher. Hannover (Germany), October,
More informationChapter 10. Implementing Subprograms
Chapter 10 Implementing Subprograms Chapter 10 Topics The General Semantics of Calls and Returns Implementing Simple Subprograms Implementing Subprograms with Stack-Dynamic Local Variables Nested Subprograms
More informationUnder the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world.
Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Supercharge your PS3 game code Part 1: Compiler internals.
More informationARM Interrupts. EE383: Introduction to Embedded Systems University of Kentucky. James E. Lumpp
ARM Interrupts EE383: Introduction to Embedded Systems University of Kentucky James E. Lumpp Includes material from: - Jonathan Valvano, Introduction to ARM Cortex-M Microcontrollers, Volume 1 Ebook, EE
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More informationRecursion. What is Recursion? Simple Example. Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem
Recursion Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem What is Recursion? A problem is decomposed into smaller sub-problems, one or more of which are simpler versions of
More informationCSE409, Rob Johnson, Alin Tomescu, November 11 th, 2011 Buffer overflow defenses
Buffer overflow defenses There are two categories of buffer-overflow defenses: - Make it hard for the attacker to exploit buffer overflow o Address space layout randomization o Model checking to catch
More informationDeveloping Real-Time Applications
Developing Real-Time Applications Real Time Operating Systems and Middleware Luca Abeni luca.abeni@unitn.it Characterised by temporal constraints deadlines Concurrent (application: set of real-time tasks)
More informationXC2287M HOT. Solution ASC. Uses a timer triggered LED to toggle with ASC Interrupt
XC2287M HOT Solution ASC Uses a timer triggered LED to toggle with ASC Interrupt Device: XC2287M-104F80 Compiler: Tasking Viper 2.4r1 Code Generator: DAvE 2.1 XC2287M HOT Exercise ASC Hello World with
More informationembos Real-Time Operating System CPU & Compiler specifics for Cortex- M using Rowley CrossStudio for ARM
embos Real-Time Operating System CPU & Compiler specifics for Cortex- M using Rowley CrossStudio for ARM Document: UM01026 Software Version: 5.02a Revision: 0 Date: August 22, 2018 A product of SEGGER
More informationComputer Systems Overview
Computer Systems Overview Maurizio Pizzonia slides adattate da W. Stalling Operating Systems: Internals and Design Principles http://williamstallings.com/os/os5e.html 1 Basic Elements Processor Main Memory
More informationOverview. Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading
HOW C++ WORKS Overview Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading Motivation There are lot of myths about C++
More informationICN12. I2C to UART Bridge, ADC,DAC and I/O
Firmware version 1.4 Introduction ICN12 I2C to UART Bridge, ADC,DAC and I/O This is an I2C to UART bridge, designed to give an extra UART to a microcontroller when only I2C is available. It is an I2C device
More informationZigbee Development Board (Z- DB001) with Z-001 or Z-002 Module
Zigbee Development Board (Z- DB001) with Z-001 or Z-002 Module H-2 Technik UG (haftungsbescgränkt) Version Information Version Date Modified By Introduction 1.1 05.2017 Wang Release Inhalt 1. Hardware
More informationEXP54-CPP. Do not access an object outside of its lifetime
EXP54-CPP. Do not access an object outside of its lifetime Every object has a lifetime in which it can be used in a well-defined manner. The lifetime of an object begins when sufficient, properly aligned
More informationembos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1
embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/28 embos for M16C CPUs
More informationEmbedded assembly is more useful. Embedded assembly places an assembly function inside a C program and can be used with the ARM Cortex M0 processor.
EE 354 Fall 2015 ARM Lecture 4 Assembly Language, Floating Point, PWM The ARM Cortex M0 processor supports only the thumb2 assembly language instruction set. This instruction set consists of fifty 16-bit
More informationProduct Technical Brief S3C2412 Rev 2.2, Apr. 2006
Product Technical Brief S3C2412 Rev 2.2, Apr. 2006 Overview SAMSUNG's S3C2412 is a Derivative product of S3C2410A. S3C2412 is designed to provide hand-held devices and general applications with cost-effective,
More informationConcurrent programming: Introduction I
Computer Architecture course Real-Time Operating Systems Concurrent programming: Introduction I Anna Lina Ruscelli - Scuola Superiore Sant Anna Contact info Email a.ruscelli@sssup.it Computer Architecture
More informationSingle thread Scheduler All processes called once each sample
Single thread Scheduler All processes called once each sample void main(void) { init_routines(); done = 0; while (!done) { perform_process1(); // Highest priority process perform_process2(); perform_process3();//
More informationUsing the MPU with an RTOS to Enhance System Safety and Security
Using the MPU with an RTOS to Enhance System Safety and Security By Stephen Ridley 10 December, 2016 www.highintegritysystems.com WITTENSTEIN WITTENSTEIN high integrity systems: A World Leading RTOS Ecosystem
More informationSNR610. Embedded network node module SNR610. Description. Feature. Application. SNR610 is highly integrated network module.
Embedded network node module SNR610 Description SNR610 is highly integrated network module. It adopts high performance Silicon Lab Si4432 RF chip. Si4432 has high reception sensitivity and 100mW output
More information"Multicore programming" No more communication in your program, the key to multi-core and distributed programming.
"Multicore programming" No more communication in your program, the key to multi-core and distributed programming. Eric.Verhulst@OpenLicenseSociety.org Commercialised by: 1 Content About Moore s imperfect
More informationArdOS The Arduino Operating System Reference Guide Contents
ArdOS The Arduino Operating System Reference Guide Contents 1. Introduction... 2 2. Error Handling... 2 3. Initialization and Startup... 2 3.1 Initializing and Starting ArdOS... 2 4. Task Creation... 3
More informationAaron Turon! Mozilla Research
Aaron Turon Mozilla Research C/C++ ML/Haskell Rust Safe systems programming Why Mozilla? Browsers need control. Browsers need safety. Servo: Next-generation browser built in Rust. C++ What is control?
More informationXC2287M HOT Solution CAN Serial Communication using the CAN. Device: XC2287M-104F80 Compiler: Tasking Viper 2.4r1 Code Generator: DAvE 2.
XC2287M HOT Solution CAN Serial Communication using the CAN Device: XC2287M-104F80 Compiler: Tasking Viper 2.4r1 Code Generator: DAvE 2.1 Page 2 XC2287M HOT Exercise CAN Serial Communication using the
More informationVirtual Machine Design
Virtual Machine Design Lecture 4: Multithreading and Synchronization Antero Taivalsaari September 2003 Session #2026: J2MEPlatform, Connected Limited Device Configuration (CLDC) Lecture Goals Give an overview
More informationSerial Peripheral Interface Bus SPI
Serial Peripheral Interface Bus SPI SPI Bus Developed by Motorola in the mid 1980 s Full-duplex, master-slave serial bus suited to data streaming applications for embedded systems Existing peripheral busses
More informationCSE 509: Computer Security
CSE 509: Computer Security Date: 2.16.2009 BUFFER OVERFLOWS: input data Server running a daemon Attacker Code The attacker sends data to the daemon process running at the server side and could thus trigger
More informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
More informationLAB 2: PROCESS SYNCHRONIZATION IN XV6
Fall 2018 - CS/COE 1550 LAB 2: PROCESS SYNCHRONIZATION IN XV6 In this lab, you will implement a synchronization solution using locks and condition variables to guarantee a specific execution ordering among
More informationArrays. C Types. Derived. Function Array Pointer Structure Union Enumerated. EE 1910 Winter 2017/18
C Types Derived Function Array Pointer Structure Union Enumerated 2 tj Arrays Student 0 Student 1 Student 2 Student 3 Student 4 Student 0 Student 1 Student 2 Student 3 Student 4 Student[0] Student[1] Student[2]
More informationWording for Coroutines
Document Number: Date: 2016-02-12 Revises: P0057R1 Audience: CWG / LEWG Authors: Gor Nishanov Jens Maurer Richard Smith Daveed Vandevoorde
More informationAuto-Pipe Software Block Interface v2. Interface. Contents. Auto-Pipe Types. From Auto-Pipe Wiki
Auto-Pipe Software Block Interface v2 From Auto-Pipe Wiki Contents 1 Interface 1.1 Auto-Pipe Types 1.2 AutoPipe Functions 1.3 Block Structure 1.4 Block Functions 2 Signaling 2.1 Stop Signal (type 0) 2.2
More informationToolbox Kernel Korner
Toolbox Kernel Korner In this article, Robert offers a refresher on kernel memory allocation and how it has changed for the 2. by Robert Love Unfortunately for kernel developers, allocating memory in the
More informationembos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1
embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/25 embos
More informationMultitasking. Embedded Systems
Multitasking in Embedded Systems 1 / 39 Multitasking in Embedded Systems v1.0 Multitasking in ES What is Singletasking? What is Multitasking? Why Multitasking? Different approaches Realtime Operating Systems
More informationKernel Module Programming
Kernel Module Programming Alessandro Barenghi Dipartimento di Elettronica e Informazione Politecnico di Milano barenghi - at - elet.polimi.it June 7, 2012 Recap By now, you should be familiar with... Programming
More informationHello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of
Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of this interface, which is widely used for serial communications.
More informationAN2781 Application note
Application note UART emulation software in STM8S and STM8A microcontrollers Introduction This application note describes how to emulate the UART behavior and functionality using routines in STM8S microcontrollers.
More informationOverview. Applications. Features. Pin assignment
Shanghai Yancan Electronic Technology Co., Ltd. Product Name:BLE module Model No.:ZEN-BD98 Overview ZEN-BD98 is a BLE module. By this module, the communication between mobile phone and user s device can
More informationRE-ENTRANCY IN OPERATING SYSTEM. - By Surya Seetharaman
RE-ENTRANCY IN OPERATING SYSTEM - By Surya Seetharaman What is Re-entrant code?? A computer program is called re-entrant, if it can be interrupted in the middle of its execution by another actor before
More informationUniversity of Florida EEL 3744 Spring 2018 Dr. Eric M. Schwartz. Good luck!
Page 1/13 Exam 2 Relax! Go Gators! Good luck! First Name Instructions: Turn off all cell phones and other noise making devices and put away all electronics. Show all work on the front of the test papers.
More informationIntroducing C++ David Chisnall. March 15, 2011
Introducing C++ David Chisnall March 15, 2011 Why Learn C++? Lots of people used it to write huge, unmaintainable code......which someone then gets paid a lot to maintain. C With Classes Predecessor of
More informationCost of Your Programs
Department of Computer Science and Engineering Chinese University of Hong Kong In the class, we have defined the RAM computation model. In turn, this allowed us to define rigorously algorithms and their
More informationAbout Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals
More informationembos Real-Time Operating System CPU & Compiler specifics for Document: UM01039 Software Version: 5.02 Revision: 0 Date: June 26, 2018
embos Real-Time Operating System CPU & Compiler specifics for Cortex-M using GCC / emide Document: UM01039 Software Version: 5.02 Revision: 0 Date: June 26, 2018 A product of SEGGER Microcontroller GmbH
More informationHow to use the PSoC based 16C450 Replacement
How to use the PSoC based 16C450 Replacement Matthew Burns Eric Ponce August 2017 (Updated April 2018) 1 Overview The PSoC based 16C450 Replacement is intended to replace the 16C450 serial communication
More informationChapter 13 Topics. Introduction. Introduction
Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Java Threads C# Threads Statement-Level Concurrency Copyright 2006 Pearson Addison-Wesley. All rights reserved.
More informationScheduling. CS 161: Lecture 4 2/9/17
Scheduling CS 161: Lecture 4 2/9/17 Where does the first process come from? The Linux Boot Process Machine turned on; BIOS runs BIOS: Basic Input/Output System Stored in flash memory on motherboard Determines
More informationSwift 5, ABI Stability and
Swift 5, ABI Stability and Concurrency @phillfarrugia Important Documents Concurrency Manifesto by Chris Lattner https: /gist.github.com/lattner/ 31ed37682ef1576b16bca1432ea9f782 Kicking off Concurrency
More information