Getting the Most out of Your Professional RISC-V Compiler and Debugger
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Fill Your Boots: Enhanced Embedded Bootloader Exploits Via Fault Injection and Binary Analysis
IACR Transactions on Cryptographic Hardware and Embedded Systems ISSN 2569-2925, Vol. 2021, No. 1, pp. 56–81. DOI:10.46586/tches.v2021.i1.56-81 Fill your Boots: Enhanced Embedded Bootloader Exploits via Fault Injection and Binary Analysis Jan Van den Herrewegen1, David Oswald1, Flavio D. Garcia1 and Qais Temeiza2 1 School of Computer Science, University of Birmingham, UK, {jxv572,d.f.oswald,f.garcia}@cs.bham.ac.uk 2 Independent Researcher, [email protected] Abstract. The bootloader of an embedded microcontroller is responsible for guarding the device’s internal (flash) memory, enforcing read/write protection mechanisms. Fault injection techniques such as voltage or clock glitching have been proven successful in bypassing such protection for specific microcontrollers, but this often requires expensive equipment and/or exhaustive search of the fault parameters. When multiple glitches are required (e.g., when countermeasures are in place) this search becomes of exponential complexity and thus infeasible. Another challenge which makes embedded bootloaders notoriously hard to analyse is their lack of debugging capabilities. This paper proposes a grey-box approach that leverages binary analysis and advanced software exploitation techniques combined with voltage glitching to develop a powerful attack methodology against embedded bootloaders. We showcase our techniques with three real-world microcontrollers as case studies: 1) we combine static and on-chip dynamic analysis to enable a Return-Oriented Programming exploit on the bootloader of the NXP LPC microcontrollers; 2) we leverage on-chip dynamic analysis on the bootloader of the popular STM8 microcontrollers to constrain the glitch parameter search, achieving the first fully-documented multi-glitch attack on a real-world target; 3) we apply symbolic execution to precisely aim voltage glitches at target instructions based on the execution path in the bootloader of the Renesas 78K0 automotive microcontroller. -
Natalia Nikolaevna Shusharina Maxin.Pmd
BIOSCIENCES BIOTECHNOLOGY RESEARCH ASIA, September 2016. Vol. 13(3), 1523-1536 Development of the Brain-computer Interface Based on the Biometric Control Channels and Multi-modal Feedback to Provide A Human with Neuro-electronic Systems and Exoskeleton Structures to Compensate the Motor Functions Natalia Nikolaevna Shusharina1, Evgeny Anatolyevich Bogdanov1, Stepan Aleksandrovich Botman1, Ekaterina Vladimirovna Silina2, Victor Aleksandrovich Stupin3 and Maksim Vladimirovich Patrushev1 1Immanuel Kant Baltic Federal University (IKBFU), Nevskogo Str., 14, Kaliningrad, 236041, Russia 2I.M. Sechenov First Moscow State Medical University (First MSMU), Trubetskaya str, 8, Moscow, 119991, Russia 3Pirogov´s Russian National Research Medical University (RNRMU), Ostrovityanova str, 1, Moscow, 117997, Russia http://dx.doi.org/10.13005/bbra/2295 (Received: 15 June 2016; accepted: 05 August 2016) The aim of this paper is to create a multi-functional neuro-device and to study the possibilities of long-term monitoring of several physiological parameters of an organism controlled by brain activity with transmitting the data to the exoskeleton. To achieve this goal, analytical review of modern scientific-and-technical, normative, technical, and medical literature involving scientific and technical problems has been performed; the research area has been chosen and justified, including the definition of optimal electrodes and their affixing to the body of the patient, the definition of the best suitable power source and its operation mode, the definition of the best suitable useful signal amplifiers, and a system of filtering off external noises. A neuro-device mock-up has been made for recognizing electrophysiological signals and transmitting them to the exoskeleton, also the software has been written. -
Lecture #3 PIC Microcontrollers
Integrated Technical Education Cluster Banna - At AlAmeeria © Ahmad © Ahmad El E-626-A Real-Time Embedded Systems (RTES) Lecture #3 PIC Microcontrollers Instructor: 2015 SPRING Dr. Ahmad El-Banna Banna Agenda - What’s a Microcontroller? © Ahmad El Types of Microcontrollers Features and Internal structure of PIC 16F877A RTES, Lec#3 , Spring Lec#3 , 2015 RTES, Instruction Execution 2 Banna What is a microcontroller? - • A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit © Ahmad El containing a processor core, memory, and programmable input/output peripherals. • It can only perform simple/specific tasks. • A microcontroller is often described as a ‘computer-on-a- chip’. RTES, Lec#3 , Spring Lec#3 , 2015 RTES, 3 Microcomputer system and Microcontroller Banna based system - © Ahmad © Ahmad El RTES, Lec#3 , Spring Lec#3 , 2015 RTES, 4 Banna Microcontrollers.. - • Microcontrollers are purchased ‘blank’ and then programmed with a specific control program. © Ahmad El • Once programmed the microcontroller is build into a product to make the product more intelligent and easier to use. • A designer will use a Microcontroller to: • Gather input from various sensors • Process this input into a set of actions • Use the output mechanisms on the microcontroller to do something useful. RTES, Lec#3 , Spring Lec#3 , 2015 RTES, 5 Banna Types of Microcontrollers - • Parallax Propeller • Freescale 68HC11 (8-bit) • Intel 8051 © Ahmad El • Silicon Laboratories Pipelined 8051 Microcontrollers • ARM processors (from many vendors) using ARM7 or Cortex-M3 cores are generally microcontrollers • STMicroelectronics STM8 (8-bit), ST10 (16-bit) and STM32 (32-bit) • Atmel AVR (8-bit), AVR32 (32-bit), and AT91SAM (32-bit) • Freescale ColdFire (32-bit) and S08 (8-bit) • Hitachi H8, Hitachi SuperH (32-bit) • Hyperstone E1/E2 (32-bit, First full integration of RISC and DSP on one processor core [1996]) • Infineon Microcontroller: 8, 16, 32 Bit microcontrollers for Spring Lec#3 , 2015 RTES, automotive and industrial applications. -
Flasher ATE User Guide
Flasher ATE User Guide Document: UM08035 Manual Version: 1.16 Revision: a Date: August 19, 2021 A product of SEGGER Microcontroller GmbH www.segger.com 2 Disclaimer Specifications written in this document are believed to be accurate, but are not guaranteed to be entirely free of error. The information in this manual is subject to change for functional or performance improvements without notice. Please make sure your manual is the latest edition. While the information herein is assumed to be accurate, SEGGER Microcontroller GmbH (SEG- GER) assumes no responsibility for any errors or omissions. SEGGER makes and you receive no warranties or conditions, express, implied, statutory or in any communication with you. SEGGER specifically disclaims any implied warranty of merchantability or fitness for a particular purpose. Copyright notice You may not extract portions of this manual or modify the PDF file in any way without the prior written permission of SEGGER. 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. © 2017-2021 SEGGER Microcontroller GmbH, Monheim am Rhein / Germany Trademarks Names mentioned in this manual may be trademarks of their respective companies. Brand and product names are trademarks or registered trademarks of their respective holders. Contact address SEGGER Microcontroller GmbH Ecolab-Allee 5 D-40789 Monheim am Rhein Germany Tel. +49-2173-99312-0 Fax. +49-2173-99312-28 E-mail: [email protected] Internet: www.segger.com Flasher ATE User Guide (UM08035) © 2017-2021 SEGGER Microcontroller GmbH 3 Manual versions This manual describes the Flasher ATE device. -
SDCC Compiler User Guide
SDCC Compiler User Guide SDCC 4.1.11 $Date:: 2021-09-17 #$ $Revision: 12682 $ Contents 1 Introduction 7 1.1 About SDCC.............................................7 1.2 SDCC Suite Licenses.........................................8 1.3 Documentation............................................9 1.4 Typographic conventions.......................................9 1.5 Compatibility with previous versions.................................9 1.6 System Requirements......................................... 11 1.7 Other Resources............................................ 12 2 Installing SDCC 13 2.1 Configure Options........................................... 13 2.2 Install paths.............................................. 15 2.3 Search Paths.............................................. 16 2.4 Building SDCC............................................ 18 2.4.1 Building SDCC on Linux.................................. 18 2.4.2 Building SDCC on Mac OS X................................ 19 2.4.3 Cross compiling SDCC on Linux for Windows....................... 19 2.4.4 Building SDCC using Cygwin and Mingw32........................ 19 2.4.5 Building SDCC Using Microsoft Visual C++ 2010 (MSVC)................ 20 2.4.6 Windows Install Using a ZIP Package............................ 21 2.4.7 Windows Install Using the Setup Program.......................... 21 2.4.8 VPATH feature........................................ 21 2.5 Building the Documentation..................................... 22 2.6 Reading the Documentation.................................... -
MICROCONTROLADORES 1 Curso Técnico Eletrônica Prof
MICROCONTROLADORES 1 Curso Técnico Eletrônica Prof. Fábio Kurt Schneider AVALIAÇÃO Nota 1: APS = 20% (Projeto de Sistemas Microcontrolados) EXERCÍCIOS ASSEMBLY = 10% (ASSEMBLY) AVALIAÇÃO TEÓRICA/PRÁTICA = 70% (ARQUITETURA INTERNA E ASSEMBLY) Nota 2: Função otimizada em ASSEMBLY = 20% (ALTO DESEMPENHO) LABORATÓRIOS = 40% PROJETO FINAL = 40% • PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO) PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO) Dia/Mês ou Número de Conteúdo das Aulas Semana Aulas Informações da disciplina e avaliação Definição da APS Introdução a microcontrolador genérico 08-09/08/17 3 - Sistema microprocessado típico; Microprocessador hipotético: barramentos de dados, endereços, e controle, ULA, registros internos, PC, SP, Acc; Microcontrolador vs.microprocessador; Principais famílias de microcontroladores; Microcontrolador específico - Arquitetura interna ATMEGA328. - Descrição dos pinos; Organização de memória; Memória SRAM interna de dados; Memória 15-16/08/17 3 SRAM interna de uso específico; Acesso à memória externa; Interrupção, Temporizadores, ADC Ferramentas de Desenvolvimento de Sistemas Microcontrolados Algoritmos 22-23/08/17 Instruções Lógicas e Aritméticas , Instruções de Controle de Fluxo, Exemplos em assembly com o 3 uControlador específico Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle 29-30/08/17 3 periféricos.... Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle 05-06/09/17 3 periféricos.... 12-13/09/17 Simulação 3 Entrega -
Winidea 2012 Release Notes
_ RELEASE NOTES winIDEA 2012 / 9.12 9.12.1 (18.1.2012) CPU Support Renesas 78k RL78 Family On-Chip-Debug support Full debug feature set for G13 and F12 lines is supported on iC5000 platform. isystem.connect Profiler controller classes CProfilerController2 and CProfilerData2 classes provide access to profiler configuration and recorded data access. For more information see Help/SDK/isystem.connect. iSYSTEM, September 2018 1/169 9.12.2 (31.1.2012) CPU Support MPC 5xxx MPC5676R Cobra Support Full debug and trace feature set for MPC and eTPU cores. Preliminary support for dual eDMA trace. winIDEA Analyzer Bookmarks Any number of bookmarks can be set in the trace and timeline views using the Ctrl+F2 shortcut. The F2 shortcut moves from one bookmark to another. Watch window Expanded watch structure Watch window retains expanded structure of a complex type even if the expression goes out of scope. iSYSTEM, September 2018 2/169 When out of scope, the structure is retained, but Value reflects Note: If the expression is changed or the expression can evaluate to a different type in a changed context, the structure is collapsed. Binary constants Binary constants of the form <digits>b are recognized. e.g. 100b == 4 This format should be used if one intends to modify binary values in the watch window. Other binary display formats cannot be used to modify the value. iSYSTEM, September 2018 3/169 isystem.connect Hot attach/detach capability IConnectDebug::RunControl provides means to hot-attach the target. CExecutionController::hotAttach() and hotDetach() can be used from scripts. -
Compiler/Debugger/Emulators
Compilers and Debuggers/Emulators supported by TESSY Table A :: 1-3 supported targets since TESSY v4.0.22 * * * * * CCS (TI) CCS Debugger CDT Codewarrior(Eclipse) Codewarrior(Classic) (CCES) Core Cross (IAR) C-Spy DS-5 eSoleBinder (HighTec) GNU HighTec (Hitex) HiTOP 2000Hills)MULTI (Green NiosDebuggerII GNU (Noral)NoralFlex QEMU debugger JLink SEGGER SingleStep(Windriver) TrueSTUDIO (Fujitsu) Softune Microelectr.) (ST STVD (Lauterbach) TRACE32 (PLS) UDE Devices)(Analog DSP Visual Workbench River Wind (Keil)µVision (iSYSTEM) winIDEA (Cosmic) ZAP ALTERA NIOS II P P Analog Devices Blackfin P P SHARC P Atollic GCC ARM P P ARM ADS Arm (legacy) P P ARM V5 P P P P P P P ARM V6 P P Cosmic ARM P P HC11 P P P HCS12 P P P P P HCS08 P P P S12X P P P S12G P P S12Z P ST7 P P P STM8 P DiabData PPC5xx (s. WindRiver) P P P Freescale (Metrowerks) Coldfire V1 P P P DSP568E P HCS12 P P P P HCS08 (Classic) P P P P P P P P _Compiler HCS08 (Eclipse) MPC P P P P S12X P P P S12Z P P P ST7 P P Fujitsu FFMC16 P FFMC32 P GNU Arm (Arm Cortex) P P P P P P P GCC (MinGW) P GCC (Cygwin) P PPC P P >> Table A :: 2-3 P currently supported by P new or updated DocRev 4.0-18 * These targets do not provide interactive debugger functionality while running TESSY tests, but special procedures are available (s. respective AppNotes for the debugger). -
Manufacturer Proc.Name Core Mail WDC 65816 16 WDC 65C02 8 LEFTER MARIAN M Freescale 68HC08 8 68HC08 Paun Petronel M Freescale 68
Manufacturer Proc.name core mail WDC 65816 16 WDC 65C02 8 LEFTER MARIAN m Freescale 68HC08 8 68HC08 Paun Petronel m Freescale 68HC11 8 68HC11 Mirica Daniel m Freescale 68HC12 S12,6812, HC12 16 Dediu Stelian Mihai m Motorola/Freescale 68k Coldfire 32 Motorola M·CORE MCORE Cristea Daniel [Bogdan Mihai][m] Motorola 68HC16 16 68HC16 Freescale i.MX 32 Freescale HC16 16 Pavel Marius Freescale S12 S12X 16 Petrache Sbastian Freescale 56800 16 Apple-IBM-Motorola PowerPC 32,64 Baicu Laurentiu m Microchip PIC10 8 PIC10 Stamate Cornelia m Microchip PIC12 Microchip PIC16 Microchip PIC18 PIC18 Tudor Mihaela m Microchip PIC24 16 Microchip PIC32 32 MIPS32 M4K Banica Andrei m Microchip dsPIC30 dsPIC33 dePIC33 Lungeanu Loredana m Atmel AVR tinyAVR, megaAVR, XMEGA tinyAVR Moise Catalina Tarbuc Sorin mm XMEGA Vintila Gabriel m Atmel AVR32 AVR32 Ciocianu Alina Analog Devices SHARC tigerSHARC SHARC Banica Iulian m Analog Devices Blackfin BF Feodorov Analog Devices ADuC ARM7 TDMI ADUC ARM Spanachi Mihai m Analog Devices ADuC 8052 8051 ADUC 8052 Olariu Adriana m Parallax Propeller Buleu Alexandru Maxim MAXQ Zilog Z8 eZ8 Encore! Dimofte Claudia m Zilog eZ80 eZ80Acclaim! eZ80 Radu Alina m Intel 80x86 80286 Iliuta Silviu m Intel P5 Pentium Deaconu m Intel Atom Atom Barbieru Florin m Intel/Marvell XScale PXA,IOP,IXP,IXC,CE ARMv5 Anton Laurentiu m NEC 78K0 8 Cojocaru Alexandru m NEC 78K0R 16 NEC V850 32 Renesas/Hitachi H8 H8 Renesas M16C R8C, R32C, M32C M16C Tiplea Marius m Renesas/Hitachi SuperH Samsung S3C... ARM Luca George STMicroelectronics STM8 8 Matei Irina -
Fast Symmetric Crypto on Embedded Cpus
Fast symmetric crypto on embedded CPUs Peter Schwabe Radboud University Nijmegen, The Netherlands June 5, 2014 Summer School on the design and security of cryptographic algorithms and devices for real-world applications Embedded CPUs 4-bit CPUs 16-bit CPUs I TMS 1000 I TI MSP430 I Intel 4004 I Microchip Technology PIC24 I Atmel MARC4 I Toshiba TLCS-47 32-bit CPUs I ARM11 8-bit CPUs I ARM Cortex-M∗ I Atmel AVR I ARM Cortex-A∗ I Intel 8051 I Atmel AVR32 I Microchip Technology PIC I MIPS32 I STMicroelectronics STM8 I AIM 32-bit PowerPC I STMicroelectronics STM32 Fast symmetric crypto on embedded CPUs2 Symmetric crypto Fast symmetric crypto on embedded CPUs3 Symmetric crypto Fast symmetric crypto on embedded CPUs3 Symmetric crypto Fast symmetric crypto on embedded CPUs3 Symmetric crypto Fast symmetric crypto on embedded CPUs3 Symmetric crypto Fast symmetric crypto on embedded CPUs3 I Throughput: number of instructions (of a certain type) we can do per cycle I Latency of an instruction: number of cycles we have to wait before using the result I Latency and throughput are determined by the microarchitecture I Optimizing software in assembly means: I Find good representation of data I Choose suitable instructions that implement the algorithm I Schedule those instruction to hide latencies I Assign registers efficiently (avoid spills) Optimizing crypto I This talk: optimize for speed I Implement algorithms in assembly I Available instructions and registers are determined by the target architecture Fast symmetric crypto on embedded CPUs4 I Latency -
Open On-Chip Debugger: Openocd User's Guide
Open On-Chip Debugger: OpenOCD User's Guide for release 0.11.0+dev 27 September 2021 This User's Guide documents release 0.11.0+dev, dated 27 September 2021, of the Open On-Chip Debugger (OpenOCD). • Copyright c 2008 The OpenOCD Project • Copyright c 2007-2008 Spencer Oliver [email protected] • Copyright c 2008-2010 Oyvind Harboe [email protected] • Copyright c 2008 Duane Ellis [email protected] • Copyright c 2009-2010 David Brownell Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Short Contents About :::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 OpenOCD Developer Resources :::::::::::::::::::::::::: 3 2 Debug Adapter Hardware ::::::::::::::::::::::::::::::: 5 3 About Jim-Tcl ::::::::::::::::::::::::::::::::::::::: 11 4 Running :::::::::::::::::::::::::::::::::::::::::::: 12 5 OpenOCD Project Setup :::::::::::::::::::::::::::::: 14 6 Config File Guidelines ::::::::::::::::::::::::::::::::: 21 7 Server Configuration :::::::::::::::::::::::::::::::::: 32 8 Debug Adapter Configuration::::::::::::::::::::::::::: 36 9 Reset Configuration::::::::::::::::::::::::::::::::::: 56 10 TAP Declaration ::::::::::::::::::::::::::::::::::::: 61 11 CPU Configuration ::::::::::::::::::::::::::::::::::: 69 12 Flash -
Macro Assembler AS V1.42 User's Manual
Alfred Arnold, Stefan Hilse, Stephan Kanthak, Oliver Sellke, Vittorio De Tomasi Macro Assembler AS V1.42 User's Manual Edition September 2020 IBM, PPC403Gx, OS/2, and PowerPC are registered trademarks of IBM Corporation. Intel, MCS-48, MCS-51, MCS-251, MCS-96, MCS-196 und MCS-296 are registered trademarks of Intel Corp. Motorola and ColdFire are registered trademarks of Motorola Inc. MagniV is a registered trademark of Freescale Semiconductor. PicoBlaze is a registered trademark of Xilinx Inc. UNIX is a registered trademark of the The Open Group. Linux is a registered trademark of Linus Thorvalds. Microsoft, Windows, and MS-DOS are registered trademarks of Microsoft Corporation. All other trademarks not explicitly mentioned in this section and used in this manual are properties of their respective owners. This document has been processed with the LaTeX typesetting system, using the Linux operating system. Contents 1 Introduction 11 1.1 License Agreement . 11 1.2 General Capabilities of the Assembler . 13 1.3 Supported Platforms . 19 2 Assembler Usage 21 2.1 Hardware Requirements . 21 2.2 Delivery . 22 2.3 Installation . 26 2.4 Start-Up Command, Parameters . 29 2.5 Format of the Input Files . 39 2.6 Format of the Listing . 41 2.7 Symbol Conventions . 43 2.8 Temporary Symbols . 46 2.9 Named Temporary Symbols . 46 2.9.1 Nameless Temporary Symbols . 47 2.9.2 Composed Temporary Symbols . 49 2.10 Formula Expressions . 49 2.10.1 Integer Constants . 50 2.10.2 Floating Point Constants . 51 2.10.3 String Constants . 52 2.10.4 String to Integer Conversion and Character Constants .