EMBEDDED RUST ON THE BEAGLEBOARD X15
|
|
- Anissa McBride
- 5 years ago
- Views:
Transcription
1 EMBEDDED RUST ON THE BEAGLEBOARD X15 MEETING EMBEDDED Jonathan Pallant 14 November 2018
2 OUR LOCATIONS CAMBRIDGE BOSTON SINGAPORE SEATTLE SAN FRANCISCO 14 November
3 What is Rust? Statically compiled programming language Backed by Mozilla Being used to re-write Firefox e.g. new multi-threaded CSS engine Uses LLVM as the backend Supports x86, AMD64, PowerPC, MIPS, SPARC, Arm (Cortex-M, -R and -A). Strong on type safety and memory safety First class tooling: build system, package manager, docs, code formatter, etc Zero cost abstractions fast, reliable, productive: pick three 14 November
4 Shortest Rust intro ever.. We have Generics and Traits (like interfaces) fn test<t>(thing: T) where T: Debug { } We have heap allocation and type inference: let x = Box::new(thing); let r = Rc::new(thing); We have struct and enum and closures. struct Uart { } enum Interupts { } access( r { r.field() }); We have collections: let h: Hashmap<u32, Uart> = Hashmap::new(); We have two libraries: std and core 14 November
5 The Beagleboard X15 Biggest member of the Beagleboard family Not a Beaglebone Texas Instruments AM5728 SoC 2 GiB 533 MHz 4 GiB emmc 2x Gigabit Ethernet 1x esata 1x microsd 1x HDMI (1080p) Line In/Out 14 November
6 AM5728 Dual-core Cortex A GHz Dual-core SGX MHz 2x C66x 700 MHz 2x Dual-Core Cortex-M4 213 MHz 2x Dual-Core 32-bit PRU-ICSS* Costs $50 * Programmable Real-Time Unit and Industrial Communication Sub-System 14 November
7 RemoteProc Linux kernel feature Allows Linux to program, boot and control remote processors Controlled by the Device Tree RemoteProcs run ELF files: live in /lib/firmware must have a magic.resource_table section Special linker script Can run RTOS or bare-metal Memory is allocated from System RAM (Carveouts) Peripherals can be handed over (Device Memory) Shared text buffer for debug (Trace) Ring Buffers (VirtIO vrings) 14 November
8 Software Support The AM5728 is a vayu class SoC In the Sitara family but from the OMAP5 lineage Heavily related to (and often referred to as) the DRA7x automotive infotainment SoC family Kernel support (omap-remoteproc) in TI s tree for loading IPU, PRU and DSP Example code in the TI SDK IPC examples for Linux and QNX MPU talking to TI-RTOS on the IPU/DSP Examples use TI s Javascript based build system Serious quantities of autogenerated code, magic numbers and deep macro indirection Incredibly difficult to work out what s going on: How do these processors talk to each other? How does the firmware get into RAM? What s a vring? Who configures each of the three(?) MMUs? How does the IPU even boot? 14 November
9 Booting the IPU Both cores boot from 0x0000_0000 at the same time. Which is which? Magic register which returns 0 on Core 0 and 1 on Core 1 Not in the 8,500 page datasheet Need to write ARM Assembler as we can t use the stack pointer Both cores have the same stack pointer! Sleep the core we don t want with wfi Configure the L1 AMMU 14 November
10 Boot Code vecbase:.long sp = not used.long ti_sysbios_family_arm_ducati_core_reset core1sp:.long Core 1 sp core1vec:.long Core 1 resetvec ti_sysbios_family_arm_ducati_core_reset: ldr r0, point to coreid reg ldr r0, read coreid cmp r0, #0 bne core1 core0:... core1:... coreid:.word 0xE00FFFE0 14 November
11 Boot Code vecbase:.long sp = not used.long ti_sysbios_family_arm_ducati_core_reset core1sp:.long Core 1 sp core1vec:.long Core 1 resetvec ti_sysbios_family_arm_ducati_core_reset: ldr r0, point to coreid reg ldr r0, read coreid cmp r0, #0 bne core1 core0:... core1:... coreid:.word 0xE00FFFE0 #[doc(hidden)] #[link_section = ".vector_table.reset_vector"] #[no_mangle] pub static RESET_VECTOR: unsafe extern "C" fn() ->! = Reset; #[no_mangle] pub unsafe extern "C" fn Reset() ->! { const AM5728_IPU_PERIPHERAL_ID0: *const u32 = 0xE00FFFE0 as *const u32; if read_volatile(am5728_ipu_peripheral_id0)!= 0 { loop { asm!("wfi"); } } r0::zero_bss(&mut sbss, &mut ebss); main(); } 14 November
12 Managing Memory Management Units Linux controls the MPU MMU and the IPUx L2 IOMMU. The IPU L2 IOMMU is configured using the resource table The IPU must configure its own L1 AMMU Also called the Unicache MMU Is also an L1 cache Has default mappings to allow boot code to run Mostly straight-through, but need to ensure addresses that come in/out of the top of the IPU L2 IOMMU are mapped to addresses the Cortex-M4 cores can access. Cortex-M4s have bit-banding functionality on certain address ranges, make use of them or avoid them. You can add 2x DSPs, IPU2, the 3D GPU, the 2D GPU, 2x PCI-Express subsystems and 2x EDMA controllers to this picture as they all have one or more MMUs PER IPU1 C0 C1 L1 AMMU L2 IOMMU L3 BUS MPU C0 C1 MPU MMU 14 November
13 Resource Tables A series of structures in memory Array of offsets to each structure Common header for each resource Describes: Carve Outs Device Memory Trace Buffers VirtIO devices #[link_section = ".resource_table"] #[no_mangle] #[repr(c)] pub static RESOURCE_TABLE: ResourceTable = ResourceTable { base: rt::header { ver: 1, num: NUM_ENTRIES, reserved: [0, 0], }, offsets: [...], rpmsg_vdev: rt::vdev { rtype: rt::resourcetype::vdev, id: vring::virtio_id_rpmsg, notifyid: 0, dfeatures: 1, gfeatures: 0, config_len: 0, status: 0, num_of_vrings: 2, reserved: [0, 0], }, rpmsg_vring0: rt::vdevvring { da: 0x , align: 4096, num: 256, notifyid: 1, reserved: 0, },... }; 14 November
14 Writing to the Trace Buffer Address specified in resource table. Null-terminated text buffer probably UTF-8. RemoteProc needs to append to this buffer If we run out of space just erase everything and go back to the start Userland can obtain buffer with: $ cat /sys/kernel/debug/remoteproc/remoteproc0/trace Generally just run: $ watch tail n 30 /sys/kernel/debug/remoteproc/remoteproc0/trace 14 November
15 Reading/Writing VirtIO vrings Transliterating kernel structures into Rust Couldn t find much documentation First used by hypervisors for paravirtualised device drivers pub struct GuestVring { descriptors: &'static mut DescriptorRing, available: &'static mut AvailableRing, used: &'static mut UsedRing, entries: usize, last_seen_available: u16, addr_map: &'static Fn(u64) -> u64 } #[repr(c)] #[derive(debug, Clone, Copy)] pub struct DescriptorEntry { addr: u64, len: u32, pub flags: DescriptorFlags, pub next: u16, } #[repr(c)] pub struct UsedRing { pub flags: UsedFlags, pub idx: u16, pub ring: UsedEntry, } #[repr(c)] pub struct AvailableRing { pub flags: AvailableFlags pub idx: u16, pub ring: AvailableEntry, } 14 November
16 Using the Mailbox The Am5728 has 13 System Mailbox peripherals Each mailbox has: 3 or 4 users 8 or 12 individual FIFOs Up to 4 messages (each 32-bits) per FIFO Each FIFO should have one writing user and one reading user. Each user gets their own interrupts. Routing the interrupts is done through the Interrupt Crossbar. The documentation unhelpfully refers to a FIFO as a mailbox Allocation of Mailboxes to processor cores is deep magic. 14 November
17 Making the Firmware Need to ensure the resource table goes into.resource_table This configures the IPU s L2 IOMMU (but not the L1 AMMU) Vector table must be at 0x0000_0000, followed by code. Data lives at 0x8000_0000. Unclear if DDR or internal SRAM mapped to 0x0000_0000. Probably first 64 KiB is SRAM and rest is DDR? For compatibility with the toolchain we call the 0x0000_0000 segment Flash even though it s just RAM. Don t need to copy.data from Flash to RAM, do need to zero.bss Special section for IPC data address also specified in resource table and in MMU config as un-cachable $ cargo build --release [--target=thumbv7em-none-eabi ] $ scp./target/thumbv7em-none-eabi/release/ipu-demo \ root@beagleboard:/lib/firmware/dra7-ipu1-fw.xem4 14 November
18 Access from Linux user-space RemoteProc is a protocol that uses VirtIO Vrings as a transport, and Mailboxes as a notification mechanism. In user-space, RemoteProc is access using a socket of type AF_RPMSG. RemoteProc messages have source and destination addresses. In your application you bind a socket to receive from the IPU, and connect a second to send to the IPU. The IPU informs Linux of its address on start-up using a well-known Name Server address (53). Each TX socket write becomes goes on the VirtIO Queue A available ring Each packet placed in the VirtIO Queue B used ring appears when RX socket when read. 14 November
19 Use the source, Luke! (coming soon...) linux: user-space AF_RPMSG socket using code bare-metal: Rust code for IPU1_Core0 (contains a fork of cortex-m-rt) 14 November
20 Get in touch: on in #rust-embedded on Mozilla IRC We have jobs! See cambridgeconsultants.com/careers 14 November
21 UK. USA. SINGAPORE. JAPAN Cambridge Consultants is part of the Altran group, a global leader in Innovation. Registered no England and Wales 14 November 2018
Introduction to Rust. CC-BY Mozilla. Jonathan Pallant
Introduction to Rust CC-BY Mozilla Jonathan Pallant 27 October 2016 What is Rust? Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. www.rust-lang.org
More informationHKG : OpenAMP Introduction. Wendy Liang
HKG2018-411: OpenAMP Introduction Wendy Liang Agenda OpenAMP Projects Overview OpenAMP Libraries Changes in Progress Future Improvements OpenAMP Projects Overview Introduction With today s sophisticated
More informationSoftware Design Challenges for heterogenic SOC's
Software Design Challenges for heterogenic SOC's René Janssen, Product manager Logic Technology 1 Agenda 1. Advantages of heterogenous devices 2. How to manage inter-processor communication 3. Example
More informationIntroducing the AM57x Sitara Processors from Texas Instruments
Introducing the AM57x Sitara Processors from Texas Instruments ARM Cortex-A15 solutions for automation, HMI, vision, analytics, and other industrial and high-performance applications. Embedded Processing
More informationMYC-C437X CPU Module
MYC-C437X CPU Module - Up to 1GHz TI AM437x Series ARM Cortex-A9 Processors - 512MB DDR3 SDRAM, 4GB emmc Flash, 32KB EEPROM - Gigabit Ethernet PHY - Power Management IC - Two 0.8mm pitch 100-pin Board-to-Board
More informationMYD-C437X-PRU Development Board
MYD-C437X-PRU Development Board MYC-C437X CPU Module as Controller Board Two 0.8mm pitch 100-pin Connectors for Board-to-Board Connections Up to 1GHz TI AM437x Series ARM Cortex-A9 Processors 512MB DDR3
More informationLeverage Vybrid's asymmetrical multicore architecture for real-time applications by Stefan Agner
Leverage Vybrid's asymmetrical multicore architecture for real-time applications 2014 by Stefan Agner Vybrid Family of ARM processors suitable for embedded devices VF3XX Single core no DDR VF5XX Single
More informationIntroduction to Sitara AM437x Processors
Introduction to Sitara AM437x Processors AM437x: Highly integrated, scalable platform with enhanced industrial communications and security AM4376 AM4378 Software Key Features AM4372 AM4377 High-performance
More informationLinux on Sun Logical Domains
Linux on Sun Logical Domains linux.conf.au, MEL8OURNE, 2008 Outline 1 Background SUN4V and Niagara Sun s Logical Domains 2 Userland Simulator 3 Implementation LDC: Logical Domain Channels VIO: Virtual
More informationNovember 3, 2015 Jason Kridner
November 3, 2015 Jason Kridner Co-author of BeagleBone Cookbook Board member at BeagleBoard.org Foundation Sitara Applications Engineering at Texas Instruments 1 Truly flexible open hardware and software
More informationEmbedded Operating Systems. Unit I and Unit II
Embedded Operating Systems Unit I and Unit II Syllabus Unit I Operating System Concepts Real-Time Tasks and Types Types of Real-Time Systems Real-Time Operating Systems UNIT I Operating System Manager:
More informationECE 598 Advanced Operating Systems Lecture 4
ECE 598 Advanced Operating Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 January 2016 Announcements HW#1 was due HW#2 was posted, will be tricky Let me know
More informationHands-on with the Sitara Linux SDK
Hands-on with the Sitara Linux SDK This presentation provides a hands-on overview of the Sitara Linux SDK. It focuses on the software and tools found in the SDK and how to use these tools to develop for
More informationUsing To talk with. Remote Cores. Ohad Ben-Cohen
Virtio Using To talk with Remote Cores Ohad Ben-Cohen What? Why?? 1. simple (but allow both kernel and userland to talk with remote services) 2. performance 3. generic
More informationL2 - C language for Embedded MCUs
Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program
More informationRust: system programming with guarantees
Rust: system programming with guarantees CRI Monthly Seminar Arnaud Spiwack Pierre Guillou MINES ParisTech, PSL Research University Fontainebleau, July 6th, 2015 1 / 29 High level programming languages
More informationAdvanced Operating Systems Embedded from Scratch: System boot and hardware access. Federico Terraneo
Embedded from Scratch: System boot and hardware access federico.terraneo@polimi.it Outline 2/28 Bare metal programming HW architecture overview Linker script Boot process High level programming languages
More informationKinetis Software Optimization
Kinetis Software Optimization Course Description This course provides all necessary theoretical and practical know-how to enhance performance with the Kinetis family. The course provides an in-depth overview
More informationKeyStone Training. Turbo Encoder Coprocessor (TCP3E)
KeyStone Training Turbo Encoder Coprocessor (TCP3E) Agenda Overview TCP3E Overview TCP3E = Turbo CoProcessor 3 Encoder No previous versions, but came out at same time as third version of decoder co processor
More informationOpenAMP Discussion - Linaro2018HK. Copyright 2018 Xilinx
OpenAMP Discussion - Linaro2018HK Agenda o SPDX Short Licenses Identifier o Coding Guideline o API Standardisation o Coprocessor Image Format o OpenAMP and Container Page 2 OpenAMP License Page 3 SPDX
More informationDecember 1, 2015 Jason Kridner
December 1, 2015 Jason Kridner Co-author of BeagleBone Cookbook Board member at BeagleBoard.org Foundation Sitara Applications Engineering at Texas Instruments 1 Truly flexible open hardware and software
More informationSpeeding AM335x Programmable Realtime Unit (PRU) Application Development Through Improved Debug Tools
Speeding AM335x Programmable Realtime Unit (PRU) Application Development Through Improved Debug Tools The hardware modules and descriptions referred to in this document are *NOT SUPPORTED* by Texas Instruments
More information64 bit Bare Metal Programming on RPI-3. Tristan Gingold
64 bit Bare Metal Programming on RPI-3 Tristan Gingold gingold@adacore.com What is Bare Metal? Images: Wikipedia No box What is Bare Metal? No Operating System Your application is the OS Why Bare Board?
More informationKeystone Architecture Inter-core Data Exchange
Application Report Lit. Number November 2011 Keystone Architecture Inter-core Data Exchange Brighton Feng Vincent Han Communication Infrastructure ABSTRACT This application note introduces various methods
More informationARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management
ARM Powered SoCs OpenEmbedded: a framework for toolchain generation and rootfs management jacopo @ Admstaff Reloaded 12-2010 An overview on commercial ARM-Powered SOCs Many low-cost ARM powered devices
More informationPAULA CARRILLO October Processor SDK & PRU-ICSS Industrial software
PAULA CARRILLO October 2017 Processor SDK & PRU-ICSS Industrial software AGENDA 01 02 PRU-ICSS INDUSTRIAL SOFTWARE PROTOCOLS PAULA CARRILLO October 2017 CHAPTER AGENDA PSDK Descriptions Download webpage
More informationLAS16-TR06 Remoteproc & rpmsg development. Bjorn Andersson
LAS16-TR06 Remoteproc & rpmsg development Bjorn Andersson remoteproc A framework for controlling the lifecycle of secondary processors in an asymmetric multiprocessor system ENGINEERS AND DEVICES WORKING
More informationSpring 2017 :: CSE 506. Device Programming. Nima Honarmand
Device Programming Nima Honarmand read/write interrupt read/write Spring 2017 :: CSE 506 Device Interface (Logical View) Device Interface Components: Device registers Device Memory DMA buffers Interrupt
More informationEmbest SOC8200 Single Board Computer
Embest SOC8200 Single Board Computer TI's AM3517 ARM Cortex A8 Microprocessors 600MHz ARM Cortex-A8 Core NEON SIMD Coprocessor POWERVR SGX Graphics Accelerator (AM3517 only) 16KB I-Cache, 16KB D-Cache,
More informationi.mx 7 - Hetereogenous Multiprocessing Architecture
i.mx 7 - Hetereogenous Multiprocessing Architecture Overview Toradex Innovative Business Model Independent Companies Direct Sales Publicly disclosed Sales Prices Local Warehouses In-house HW and SW Development
More informationTDA3xx Secondary Bootloader (SBL)
TDA3xx SBL Application Report Draft v0.1 January 2016 TDA3xx Secondary Bootloader (SBL) Rishabh Garg, Sivaraj R ADAS Software, Processor BU ABSTRACT Secondary Bootloader (SBL) is needed in order to initialize
More informationSoftware Quality is Directly Proportional to Simulation Speed
Software Quality is Directly Proportional to Simulation Speed CDNLive! 11 March 2014 Larry Lapides Page 1 Software Quality is Directly Proportional to Test Speed Intuitively obvious (so my presentation
More informationPart 1: Introduction to device drivers Part 2: Overview of research on device driver reliability Part 3: Device drivers research at ERTOS
Some statistics 70% of OS code is in device s 3,448,000 out of 4,997,000 loc in Linux 2.6.27 A typical Linux laptop runs ~240,000 lines of kernel code, including ~72,000 loc in 36 different device s s
More informationARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.
ARM CORTEX-R52 Course Family: ARMv8-R Cortex-R CPU Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture. Duration: 4 days Prerequisites and related
More informationAn Introduction to SPI-NOR Subsystem. By Vignesh R Texas Instruments India
An Introduction to SPI-NOR Subsystem By Vignesh R Texas Instruments India vigneshr@ti.com About me Software Engineer at Texas Instruments India Part of Linux team that works on supporting various TI SoCs
More informationEmbedded Linux Conference San Diego 2016
Embedded Linux Conference San Diego 2016 Linux Power Management Optimization on the Nvidia Jetson Platform Merlin Friesen merlin@gg-research.com About You Target Audience - The presentation is introductory
More informationAbstract. Testing Parameters. Introduction. Hardware Platform. Native System
Abstract In this paper, we address the latency issue in RT- XEN virtual machines that are available in Xen 4.5. Despite the advantages of applying virtualization to systems, the default credit scheduler
More informationUse ZCU102 TRD to Accelerate Development of ZYNQ UltraScale+ MPSoC
Use ZCU102 TRD to Accelerate Development of ZYNQ UltraScale+ MPSoC Topics Hardware advantages of ZYNQ UltraScale+ MPSoC Software stacks of MPSoC Target reference design introduction Details about one Design
More informationGetting Started with FreeRTOS BSP for i.mx 7Dual
Freescale Semiconductor, Inc. Document Number: FRTOS7DGSUG User s Guide Rev. 0, 08/2015 Getting Started with FreeRTOS BSP for i.mx 7Dual 1 Overview The FreeRTOS BSP for i.mx 7Dual is a Software Development
More informationMAC57D5xx Start-Up Sequence
Freescale Semiconductor Document Number: AN5285 Application Note Rev. 0, 05/2016 MAC57D5xx Start-Up Sequence by: Manuel Rodriguez 1 Introduction The MAC57D5xx family is the next generation platform of
More informationEmbedded Systems: Architecture
Embedded Systems: Architecture Jinkyu Jeong (Jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong (jinkyu@skku.edu)
More informationEmbedded Linux Architecture
Embedded Linux Architecture Types of Operating Systems Real-Time Executive Monolithic Kernel Microkernel Real-Time Executive For MMU-less processors The entire address space is flat or linear with no memory
More informationLinux Network Tuning Guide for AMD EPYC Processor Based Servers
Linux Network Tuning Guide for AMD EPYC Processor Application Note Publication # 56224 Revision: 1.00 Issue Date: November 2017 Advanced Micro Devices 2017 Advanced Micro Devices, Inc. All rights reserved.
More informationREAL TIME OPERATING SYSTEM PROGRAMMING-I: VxWorks
REAL TIME OPERATING SYSTEM PROGRAMMING-I: I: µc/os-ii and VxWorks Lesson-1: RTOSes 1 1. Kernel of an RTOS 2 Kernel of an RTOS Used for real-time programming features to meet hard and soft real time constraints,
More informationIntelop. *As new IP blocks become available, please contact the factory for the latest updated info.
A FPGA based development platform as part of an EDK is available to target intelop provided IPs or other standard IPs. The platform with Virtex-4 FX12 Evaluation Kit provides a complete hardware environment
More informationFAQ. Release rc2
FAQ Release 19.02.0-rc2 January 15, 2019 CONTENTS 1 What does EAL: map_all_hugepages(): open failed: Permission denied Cannot init memory mean? 2 2 If I want to change the number of hugepages allocated,
More informationUDP1G-IP reference design manual
UDP1G-IP reference design manual Rev1.1 14-Aug-18 1 Introduction Comparing to TCP, UDP provides a procedure to send messages with a minimum of protocol mechanism, but the data cannot guarantee to arrive
More informationEmbedded Linux Conference Europe Sascha Hauer
Embedded Linux Conference Europe 2012 Sascha Hauer Slide 1 - Pengutronix - http://www.pengutronix.de - 08.11.2012 Agenda Tour through barebox Devicetree Multiplatform Bootloader
More informationEmbedded Linux kernel and driver development training 5-day session
Embedded Linux kernel and driver development training 5-day session Title Embedded Linux kernel and driver development training Overview Understanding the Linux kernel Developing Linux device drivers Linux
More informationEyeCheck Smart Cameras
EyeCheck Smart Cameras 2 3 EyeCheck 9xx & 1xxx series Technical data Memory: DDR RAM 128 MB FLASH 128 MB Interfaces: Ethernet (LAN) RS422, RS232 (not EC900, EC910, EC1000, EC1010) EtherNet / IP PROFINET
More informationFPQ9 - MPC8360E implementation
Training MPC8360E implementation: This course covers PowerQUICC II Pro MPC8360E - PowerPC processors: NXP Power CPUs FPQ9 - MPC8360E implementation This course covers PowerQUICC II Pro MPC8360E Objectives
More informationDemystifying Network Cards
Demystifying Network Cards Paul Emmerich December 27, 2017 Chair of Network Architectures and Services About me PhD student at Researching performance of software packet processing systems Mostly working
More informationPRU Hardware Overview. Building Blocks for PRU Development: Module 1
PRU Hardware Overview Building Blocks for PRU Development: Module 1 Agenda SoC Architecture PRU Submodules Example Applications 2 SoC Architecture Building Blocks for PRU Development: PRU Hardware Overview
More informationA ONE CHIP HARDENED SOLUTION FOR HIGH SPEED SPACEWIRE SYSTEM IMPLEMENTATIONS
A ONE CHIP HARDENED SOLUTION FOR HIGH SPEED SPACEWIRE SYSTEM IMPLEMENTATIONS Joseph R. Marshall, Richard W. Berger, Glenn P. Rakow Conference Contents Standards & Topology ASIC Program History ASIC Features
More informationReal-Timeness and System Integrity on a Asymmetric Multi Processing configuration
Real-Timeness and System Integrity on a Asymmetric Multi Processing configuration D&E Event November 2nd Relator: Manuele Papais Sales & Marketing Manager 1 DAVE Embedded Systems DAVE Embedded Systems'
More informationIndex. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309
A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48
More informationCortex-M3/M4 Software Development
Cortex-M3/M4 Software Development Course Description Cortex-M3/M4 software development is a 3 days ARM official course. The course goes into great depth and provides all necessary know-how to develop software
More informationQuick Start Guide. TWR-VF65GS10 For Vybrid Controller Solutions Based on ARM Cortex -A5 and Cortex-M4 Processors with the DS-5 Toolchain TOWER SYSTEM
TWR-VF65GS10 For Vybrid Controller Solutions Based on ARM Cortex -A5 and Cortex-M4 Processors with the DS-5 Toolchain TOWER SYSTEM Get to Know the TWR-VF65GS10 Dual Quad SPI K20 JTAG Header UART Selection
More informationReal Safe Times in the Jailhouse Hypervisor Unrestricted Siemens AG All rights reserved
Siemens Corporate Technology Real Safe Times in the Jailhouse Hypervisor Real Safe Times in the Jailhouse Hypervisor Agenda Jailhouse introduction Safe isolation Architecture support Jailhouse application
More informationWed. Aug 23 Announcements
Wed. Aug 23 Announcements Professor Office Hours 1:30 to 2:30 Wed/Fri EE 326A You should all be signed up for piazza Most labs done individually (if not called out in the doc) Make sure to register your
More informationMigrating Linux Device Drivers to a Microkernel POSIX RTOS: A Case Study. David Donohoe Senior Software Developer QNX Software Systems
to a Microkernel POSIX RTOS: A Case Study David Donohoe Senior Software Developer Introduction Porting Linux applications to a commercial OS can be surprisingly straightforward, provided the OS is based
More informationFPQ6 - MPC8313E implementation
Formation MPC8313E implementation: This course covers PowerQUICC II Pro MPC8313 - Processeurs PowerPC: NXP Power CPUs FPQ6 - MPC8313E implementation This course covers PowerQUICC II Pro MPC8313 Objectives
More informationCopyright 2016 Xilinx
Zynq Architecture Zynq Vivado 2015.4 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able to: Identify the basic building
More informationEMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG
EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG Adam Lindberg github.com/eproxus HARDWARE COMPONENTS SOFTWARE FUTURE Boot, Serial console, Erlang shell DEMO THE GRISP BOARD SPECS Hardware & specifications
More informationParallel Simulation Accelerates Embedded Software Development, Debug and Test
Parallel Simulation Accelerates Embedded Software Development, Debug and Test Larry Lapides Imperas Software Ltd. larryl@imperas.com Page 1 Modern SoCs Have Many Concurrent Processing Elements SMP cores
More informationHKG net_mdev: Fast-path userspace I/O. Ilias Apalodimas Mykyta Iziumtsev François-Frédéric Ozog
HKG18-110 net_mdev: Fast-path userspace I/O Ilias Apalodimas Mykyta Iziumtsev François-Frédéric Ozog Why userland I/O Time sensitive networking Developed mostly for Industrial IOT, automotive and audio/video
More informationTOE10G-IP with CPU reference design
TOE10G-IP with CPU reference design Rev1.1 6-Feb-19 1 Introduction TCP/IP is the core protocol of the Internet Protocol Suite for networking application. TCP/IP model has four layers, i.e. Application
More informationFinal Exam Study Guide
Final Exam Study Guide Part 1 Closed book, no crib sheet Part 2 Open book, open notes, calculator (no laptops, phones, devices with screens larger than a TI-89 calculator, devices with wireless communication).
More informationIntroduction to gem5. Nizamudheen Ahmed Texas Instruments
Introduction to gem5 Nizamudheen Ahmed Texas Instruments 1 Introduction A full-system computer architecture simulator Open source tool focused on architectural modeling BSD license Encompasses system-level
More informationMYC-AM335X CPU Module MYC-AM3352 MYC-AM3359
MYC-AM335X CPU Module - 720MHz TI AM335X Series ARM Cortex-A8 Processors - 512MB (2*256MB) DDR3 SDRAM, 512MB Nand Flash - On-board Gigabit Ethernet PHY - Two 2.0mm pitch 60-pin Male Expansion Connectors
More informationPXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670
PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670 Features RoHS 520MHz Low-power ARM processor w/ 800 x 600 Color LCD Power Over Ethernet and 10/100BASE-T Ethernet GPS module
More informationMSC8156 Ethernet Interface
June 21, 2010 MSC8156 Ethernet Interface QUICC Engine Ethernet Programming Andrew Temple NMG DSP Applications Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, the Energy Efficient Solutions logo, Flexis,
More informationHomework 9: Software Design Considerations
Homework 9: Software Design Considerations Team Code Name: Mind Readers Group No. 2 Team Member Completing This Homework: Richard Schuman E-mail Address of Team Member: _rschuman_ @ purdue.edu Evaluation:
More informationnforce 680i and 680a
nforce 680i and 680a NVIDIA's Next Generation Platform Processors Agenda Platform Overview System Block Diagrams C55 Details MCP55 Details Summary 2 Platform Overview nforce 680i For systems using the
More informationC66x KeyStone Training HyperLink
C66x KeyStone Training HyperLink 1. HyperLink Overview 2. Address Translation 3. Configuration 4. Example and Demo Agenda 1. HyperLink Overview 2. Address Translation 3. Configuration 4. Example and Demo
More informationELC4438: Embedded System Design ARM Embedded Processor
ELC4438: Embedded System Design ARM Embedded Processor Liang Dong Electrical and Computer Engineering Baylor University Intro to ARM Embedded Processor (UK 1990) Advanced RISC Machines (ARM) Holding Produce
More informationLinux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.
Linux For BCT RE2G2 User Guide Document Reference: BCTRE2G2 Linux User Guide Document Issue: 1.05 Associated SDK release: 1.04 Author: D Robinson Contents Introduction... 3 Environment Setup... 3 Required
More informationAn Intelligent NIC Design Xin Song
2nd International Conference on Advances in Mechanical Engineering and Industrial Informatics (AMEII 2016) An Intelligent NIC Design Xin Song School of Electronic and Information Engineering Tianjin Vocational
More informationKeystone II guide on running IPC examples
Keystone II guide on running IPC examples July 2016 Contents Contents Prerequisites... 1 Hardware... 1 Software... 1 1. Updating the U-BOOT... 2 Update SPI NOR Flash with U-boot GPH image... 2 2. Set
More informationDesigning with NXP i.mx8m SoC
Designing with NXP i.mx8m SoC Course Description Designing with NXP i.mx8m SoC is a 3 days deep dive training to the latest NXP application processor family. The first part of the course starts by overviewing
More informationKinetis Bootloader to Update Multiple Devices in a Field Bus Network
Freescale Semiconductor, Inc. Document Number: AN5204 Application Note Rev. 0, 01/2016 Kinetis Bootloader to Update Multiple Devices in a Field Bus Network 1. Introduction This application note describes
More informationOptimizing ARM SoC s with Carbon Performance Analysis Kits. ARM Technical Symposia, Fall 2014 Andy Ladd
Optimizing ARM SoC s with Carbon Performance Analysis Kits ARM Technical Symposia, Fall 2014 Andy Ladd Evolving System Requirements Processor Advances big.little Multicore Unicore DSP Cortex -R7 Block
More informationQuo Vadis Virtio? Michael S. Tsirkin Red Hat
Quo Vadis Virtio? 26 Michael S. Tsirkin Red Hat Uses material from https://lwn.net/kernel/ldd3/ Gcompris, tuxpaint, childplay Distributed under the Creative commons license, except logos which are C/TM
More informationPerformance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews
Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models Jason Andrews Agenda System Performance Analysis IP Configuration System Creation Methodology: Create,
More informationPorting BLIS to new architectures Early experiences
1st BLIS Retreat. Austin (Texas) Early experiences Universidad Complutense de Madrid (Spain) September 5, 2013 BLIS design principles BLIS = Programmability + Performance + Portability Share experiences
More informationECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)
More informationProtected mode RTOS: what does it mean?
Protected mode RTOS: what does it mean? Dr. Bernhard Sputh bernhard.sputh@altreonic.com Altreonic NV Gemeentestraat 61 Bus 1 3210 Linden Belgium August 24, 2015 Dr. Bernhard Sputh (Altreonic) Protected
More informationC66x KeyStone Training HyperLink
C66x KeyStone Training HyperLink 1. HyperLink Overview 2. Address Translation 3. Configuration 4. Example and Demo Agenda 1. HyperLink Overview 2. Address Translation 3. Configuration 4. Example and Demo
More informationDesigning a Multi-Processor based system with FPGAs
Designing a Multi-Processor based system with FPGAs BRINGING BRINGING YOU YOU THE THE NEXT NEXT LEVEL LEVEL IN IN EMBEDDED EMBEDDED DEVELOPMENT DEVELOPMENT Frank de Bont Trainer / Consultant Cereslaan
More informationLecture 4: Memory Management & The Programming Interface
CS 422/522 Design & Implementation of Operating Systems Lecture 4: Memory Management & The Programming Interface Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken
More informationDesign Overview of the FreeBSD Kernel CIS 657
Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler (2%
More informationextended external Benchmarking extension (XXBX)
extended external Benchmarking extension () John Pham and Jens-Peter Kaps Cryptographic Engineering Research Group (CERG) http://cryptography.gmu.edu Department of ECE, Volgenau School of Engineering,
More informationELC4438: Embedded System Design ARM Cortex-M Architecture II
ELC4438: Embedded System Design ARM Cortex-M Architecture II Liang Dong Electrical and Computer Engineering Baylor University Memory system The memory systems in microcontrollers often contain two or more
More informationDesign Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent?
Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler
More informationHeterogeneous Software Architecture with OpenAMP
Heterogeneous Software Architecture with OpenAMP Shaun Purvis, Xilinx Agenda Heterogeneous SoCs Linux and OpenAMP OpenAMP for HSA Heterogeneous SoCs A System-on-Chip that integrates multiple processor
More informationFreeBSD and Beaglebone Black, a robotic application.
FreeBSD and Beaglebone Black, a robotic application. Fabio Balzano fabio.balzano@elfarolab.com University of Ottawa, Canada May 17, 2014 The robot System description What is this? it is a ROV - Remote
More informationARM Cortex-M and RTOSs Are Meant for Each Other
ARM Cortex-M and RTOSs Are Meant for Each Other FEBRUARY 2018 JEAN J. LABROSSE Introduction Author µc/os series of software and books Numerous articles and blogs Lecturer Conferences Training Entrepreneur
More informationHITB Amsterdam
Closer to metal: Reverse engineering the Broadcom NetExtreme s firmware Guillaume Delugré Sogeti / ESEC R&D guillaume(at)security-labs.org HITB 2011 - Amsterdam Purpose of this presentation G. Delugré
More informationLecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4
EE445M Midterm Study Guide (Spring 2017) (updated February 25, 2017): Instructions: Open book and open notes. No calculators or any electronic devices (turn cell phones off). Please be sure that your answers
More informationUniversität Dortmund. ARM Architecture
ARM Architecture The RISC Philosophy Original RISC design (e.g. MIPS) aims for high performance through o reduced number of instruction classes o large general-purpose register set o load-store architecture
More information