Training Android Debugging

Size: px
Start display at page:

Download "Training Android Debugging"

Transcription

1 Training Android Debugging TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training... Training Android Debugging... Training Android Debugging... 1 Introduction... 2 Basic terms on Android... 3 Android Components 3 VM Awareness 3 Setting up a script for Android debugging... 4 Capture of commands for a script 4 Linux OS Awareness setup (steps and commands) 5 Setup the Linux OS Awareness 6 Setup the symbol autoloader 7 Boot the system 7 VM Awareness setup (steps and commands) 7 Load the Dalvik VM symbols 7 Scan the MMU page table of zygote 8 Define symbols for the Dalvik VM Interpreter 8 Load the Dalvik awareness 9 Configure JAVA extensions for Dalvik 9 Pre-load Java class information from DeX files 10 Additional background information 11 Set Dalvik VM Interpreter internal debug status 11 Example Android setup script 12 Debugging Android VM Dalvik Features 14 List Virtual Machine Threads 14 View virtual machine thread stack 14 Display the stack frame for a selected VM thread 16 Examples 18 Debug daemon from main 18 Debugging the frame buffer 19 Debugging JNI calls 20 Training Android Debugging 1

2 Training Android Debugging Version 24-May-2016 Introduction The focus of this training is VM-aware debugging of Android systems, and also includes examples for native debugging. Please refer to Training Linux Debugging (training_rtos_linux.pdf) for in-depth information about debugging Linux. Please note that VM-aware debugging is still under development. Training Android Debugging 2 Introduction

3 Basic terms on Android Here we describe essential basics and terms related to Android and Android Debugging. 1. Android components 2. VM Awareness Android Components Android is a software stack for mobile platforms, and consists of: 1. Linux kernel and kernel modules 2. Native processes (executed machine code), e.g. the Linux shell sh, Android services, e.g. rild and vold, and the Dalvik VM process zygote. 3. Native Libraries e.g. the Dalvik VM library (libdvm.so), JNI, Binder, HAL. 4. Java applications (apps). On Android, each Java application runs in its own Dalvik Virtual Machine instance. For more information about debugging the native parts of Android (bootloader, Linux kernel, kernel modules and native processes and Libraries), please refer to Training Linux Debugging (training_rtos_linux.pdf). VM Awareness A Virtual Machine is not a real machine in hardware, with a fixed instruction set, a register file, memory controller and debug logic. For the CPU, it is only an application program, operating on data that is interpreted by the application as the instruction stream for a (non-real) virtual machine. For the processor, the VM program code is just data. To find out which program currently runs in the virtual machine and which values its variables and objects have, the debugger first needs to read memory content of the real machine. Then the debugger must find, analyze and interpret the data structures of the virtual machine itself. Thus the debugger needs to know the virtual machine structure; it needs to be aware of the virtual machine. Additionally, for debugging, Virtual Machines are a moving target problem. Unlike real hardware, they can - and will - be changed and implemented differently by different people, depending on current platform and market requirements. The Dalvik Virtual Machine (DVM) is no exception. This made it necessary to implement Dalvik VM Awareness as a TRACE32 Extension, so that it can be easily adapted - e.g. by a customer or third party - to a concrete DVM platform and/or implementation. Training Android Debugging 3 Basic terms on Android

4 Setting up a script for Android debugging This chapter covers the typical steps to configure TRACE32 for convenient Android Debugging. The demonstration target for our explanation is the PandaBoard ES2.1 with an OMAP4430 (dual Cortex-A9) SoC. The following pages will show the setup by now step by step: 1. Capture of commands to later use them in a script 2. Linux OS Awareness setup (steps and commands) 3. VM Awareness setup (steps and commands) 4. Sample Android setup script Capture of commands for a script Often it is useful to record the commands issued and the settings made in the graphical user interface (GUI) right from the start of a TRACE32 session. For this, first you should open a LOG file: LOG.OPEN <file> LOG.CLOSE Create and open a file for the commands to be logged. The default extension for LOG-files is (.log) Close the LOG-file A log file records all commands - until you close it - that you execute in TRACE32, even menu selections and relevant mouse-clicks. In contrast, the ClipSTORE and STORE <file> commands save only specified parameters (e.g SYStem settings) that you can reload later by executing the automatically generated script file. STOre <file> SYStem ClipSTOre SYStem Create a PRACTICE batch file to restore the SYStem settings Copy the commands to restore the SYStem settings into the clipboard The HISTory command only records the commands from the command line. But it offers a quick access to the commands which were already issued during your current session. Use the cursor-up key or the mouse to select commands from the HISTory list. HISTory.type Display the command history Training Android Debugging 4 Setting up a script for Android debugging

5 Linux OS Awareness setup (steps and commands) As already mentioned, Android is based on the Linux kernel. Debugging the native part of Android does not differ from pure Linux debugging. This training will shortly explain the steps for Linux setup in TRACE32. You can find more in-depth information in Training Linux Debugging (training_rtos_linux.pdf). Debugger reset and setup If you restart debugging during a debug session, you can not be sure the state of the debugger is exactly what you want. To make sure you have a sound foundation for further debugging, use the RESet command - for a complete session restart -, or the specific reset commands for each individual debugger function. After this you need to setup the debugger to connect to the target platform. This includes e.g. selecting the appropriate CPU, setting the JTAG clock to a suitable frequency, and selecting target-specific debugger options. Also options related to Linux debugging have to be enabled, e.g. the address space needs to be extended to support Linux tasks. Finally, you need to connect the debugger to the target with SYStem.Up or SYStem.Mode Attach. Load the Linux kernel symbols The file vmlinux contains the Linux kernel's debug information. This file needs to be compiled with debugging information enabled. You can load the kernel symbols with: Data.LOAD.Elf vmlinux /NoCODE ; load only kernel debug symbols With the /NOCODE option, you only load the kernel symbols into the debugger, but do not write any kernel binary code into your target. Setup the debugger s MMU translation The debugger needs to have some information about the format of the Memory Management Unit (MMU) tables used by the kernel for address translation. For this you use the command MMU.FORMAT MMU.FORMAT LINUXSWAP3 swapper_pg_dir 0xc xefffffff 0x The first argument of this command can be for example LINUX, LINUXSWAP or LINUXSWAP3, and describes the MMU table format. Because the Linux OS Awareness is constantly improved and extended, please check RTOS Debugger for Linux - Stop Mode (rtos_linux_stop.pdf) for the format specifiers that Training Android Debugging 5 Setting up a script for Android debugging

6 are currently available for your platform. The second argument is the name of the kernel symbol for the kernel page table. On Linux this is swapper_pg_dir. The third parameter is a mapping of virtual kernel addresses to physical kernel addresses. If you get the error message invalid combination after issuing the MMU.FORMAT command, please check if you have MMUSPACES enabled. Now you need to set the common address range with the command TRANSlation.COMMON. This is actually the common address range for all processes and includes the kernel range as well as the virtual machine range: TRANSlation.COMMON 0xC xFFFFFFFF 0x xB00FFFFF You can specify up to two ranges for the COMMON area using in the TRANSlation.COMMON command, or multiple ranges with additional TRANSlation.COMMON.ADD TRANSlation.COMMON 0xC xFFFFFFFF TRANSlation.COMMON.ADD 0x xB00FFFFF Finally you need to enable the MMU table walk with TRANSlation.TableWalk ON and enable the debugger address translation with the command TRANSlation.ON. TRANSlation.TableWalk ON TRANSlation.ON If the table walk is enabled, when the debugger needs to access a virtual address which has no mapping in the debugger's local address translation list, the debugger tries to access the kernel MMU tables to get the corresponding physical address. Therefore, with table walk enabled, it is not necessary to scan the whole MMU (with M MU.SCAN) before the access. Setup the Linux OS Awareness The TRACE32 Linux OS Awareness is implemented in the file linux.t32. This is how to load the Linux OS Awareness and its menu: TASK.CONFIG ~~/demo/<arch>/kernel/linux/linux.t32 ; load the awareness MENU.ReProgram ~~/demo/<arch>/kernel/linux/linux.men ; load Linux menu Training Android Debugging 6 Setting up a script for Android debugging

7 Setup the symbol autoloader You can specify a PRACTICE script that is called by TRACE32 whenever a process, kernel module or library is loaded the first time, to load the corresponding symbols. This script, autoload.cmm is provided on your Lauterbach DVD or installation directory in \demo\<arch>\kernel\linux\. This is the command to setup the autoloader script: symbol.autoload.checklinux "do ~~/demo/<arch>/kernel/linux/autoload " Note: Do not erase the blank space behind autoload! Boot the system Everything is set up now. If Android is not already running and if you are not interested in debugging the kernel boot, you can let Android run as long as it needs to boot completely (e.g. 60 seconds). Go WAIT 60.s Break VM Awareness setup (steps and commands) The following setup steps are necessary for VM-aware debugging: Load the Dalvik VM symbols You need to load the symbols of the Dalvik virtual machine (libdvm.so). Android 2.x used a fixed address table to place common shared libraries in memory, but Android 4.x supports "Address Space Layout Randomization" (ASLR). This means, the load address of libraries (shared objects) is not fixed anymore, but changes with every boot. Training Android Debugging 7 Setting up a script for Android debugging

8 Therefore the easiest way to load the symbols - with the correct address information - is to use the "autoloader" script: ; Enable the autoloader for processes: TASK.sYmbol.Option Autoload PROCESS ; Enable the autoloader for the libraries of the process zygote: TASK.sYmbol.Option Autoload PROCLIB "zygote" ; Check now: symbol.autoload.check ; Force loading libdvm.so symbols symbol.autoload.touch "libdvm.so" You can also load the symbols manually, but for this you need to know the address offset of libdvm.so: Data.LOAD.Elf libdvm.so 0x0:0x /NoCODE /NoClear Please note that the symbols are loaded with space id 0x0, so they are visible from all processes (space id 0 is the marker for a "common" memory area in Linux). Scan the MMU page table of zygote When TRANSlation.TableWalk is enabled, it is not necessary to scan the kernel and task page tables with MMU.SCAN. Because the Dalvik VM Awareness frequently needs to access the page table of the process zygote, however, doing a page table walk for each access could slow down debugging. Therefore we recommend scanning the MMU page tables of the process zygote into the local translation table of the debugger: MMU.TaskPageTable.SCAN "zygote" Define symbols for the Dalvik VM Interpreter Most of the time, a given Linux task that executes an instance of the Dalvik Virtual Machine to run an Android Application will be in a "waiting" state in a native call function (mostly "object wait"). To find out which Java code actually causes the wait, the Dalvik VM Awareness needs to be able to detect if and where the native task stack contains a stack frame for the VM interpreter loop. This stack frame will contain the relevant registers and variables that point to the Dalvik instruction pointer and to the Dalvik (Java) stack frame data. To make this task - finding where on the task stack the Dalvik VM data is - you need to define a named range symbol for the Dalvik VM Interpreter function, and several local variables using fixed names. The awareness uses these names to identify the stack frame with the VM interpreter, and to access the relevant Java instruction/method/frame pointer data. Training Android Debugging 8 Setting up a script for Android debugging

9 The first versions of the Dalvik VM Awareness (dalvik.t32) used the name dalvik_interp for the VM interpreter address range, and this worked well for Android 2.x. But in Android 4.x, dalvik_mterp is already defined for an address range that is different from the whole Dalvik VM, therefore newer versions of the awareness use the name t32_dalvik_vm instead. The machine-optimized Dalvik VM Interpreter loop (only this one is currently analyzed and supported) is made up from assembly language blocks, and the module address range they reside in can be accessed - e.g. for ARMv7 - accessing the module label name \\libdvm\interpasm-armv7-a-neon.. LOCAL &funcrange &funcbeg &funcend &funcbeg=address.offset(symbol.begin("\\libdvm\interpasm-armv7-a-neon")) &funcend=address.offset(symbol.begin("\\libdvm\interpasm-armv7-a-neon")) &funcrange="&funcbeg--&funcend" symbol.create.function t32_dalvik_vm &funcrange symbol.create.localvar t32_dalvik_vm rpc &funcrange Register r4 void* symbol.create.localvar t32_dalvik_vm rfp &funcrange Register r5 StackSaveArea* ; One local DVM symbol definition is different between Android 2.x and 4.x. ; For Android 2.x (FroYo) use: ; symbol.create.localvar t32_dalvik_vm rglue &funcrange Register r6 InterpState* ; For Android 4.x (4.0.x Ice Cream Sandwich and 4.1.x JellyBean) use: symbol.create.localvar t32_dalvik_vm rself &funcrange Register r6 Thread* symbol.create.localvar t32_dalvik_vm rinst &funcrange Register r7 void* symbol.create.localvar t32_dalvik_vm ribase &funcrange Register r8 void* symbol.create.done Load the Dalvik awareness Now we can load the Dalvik VM Awareness extension module, and can add the Dalvik menu to TRACE32: EXTention.LOAD dalvik.t32 MENU.ReProgram dalvik.men Configure JAVA extensions for Dalvik TRACE32 has built-in support for various Virtual Machines types (e.g. J2ME_CDC, KAFFE, etc.). Because the Android APK file format is stable (thousands of rolled-out apps use this format) it was decided to implement support for this file type directly in TRACE32. Also the Dalvik Stack Frame system on ARM is very simple, therefore a "fallback" system for Java code stack walks was directly built into TRACE32 for it. To use this support, however, we need to select the DALVIK mode with the Java.CONFIG command. We also need to tell TRACE32 about the VM Interpreter address range, and the Java instruction and frame pointers (which are stored in a local variable or register). Training Android Debugging 9 Setting up a script for Android debugging

10 ; Reset previous Java settings in the debugger Java.RESet ; select Dalvik mode for DeXfile loader and Java symbols processing Java.CONFIG DALVIK ; Configure Java VM interpreter routine area, ip and fp Java.MAP.VM symbol.range(t32_dalvik_vm) Java.MAP.IP Register R4 symbol.range(t32_dalvik_vm) Java.MAP.FP Register R5 symbol.range(t32_dalvik_vm) Java.ON Pre-load Java class information from DeX files Most standard Java applications use one *.class file for each class, also extra ones for "inner classes". Also there is a standardized mapping between a Java *.class file name and the corresponding Java package and class names. This makes it possible to do "on-demand"-loading of Java class data: translate the Java package name and class name to the name of the Java class file, and load it. Android's Dalvik stores its Java class information in *.dex files (Dalvik EXecutables), which are optimized for minimal memory footprint. To save up to 50% space (compared to uncompressed Java class files), all Android applications only have one DeX file - classes.dex - which contains all classes that belong to this application. With Dalvik Applications, however, the name of the file that contains all code and debugging information is always the same - classes.dex. There is also no strict mapping between the APK (Android Package) file name and the Application name or the Java package name. So we can not even "guess" the name of the APK file that contains the classes.dex file for a specific application or Java package. Only by loading a classes.dex file and analyzing its contents, the debugger can derive the Java package and class name. This is the reason why the debugger needs to "pre-load" the DeX files that are relevant for your debug session. This DeX file "pre-loading" is done with the Java.LOAD command e.g.: Java.LOAD data/dalvik-cache/system@app@launcher2.apk@classes.dex The DALVIK mode of Java.LOAD supports several file types: dex files, apk files, jar files (for framework components from /system/framework), and odex (optimized dex) files (e.g. from the /data/dalvik-cache, or from the /system/app directory). Training Android Debugging 10 Setting up a script for Android debugging

11 Additional background information On the device, the classes.dex file is optimized during application install (or - for a brand-new Android device - during the very first device boot), e.g. it is pre-linked with the device's framework class libraries, then the resulting file is stored in /data/dalvik-cache (see the preceding example). If - e.g. during an OTA (overthe-air) firmware update the Dalvik VM Interpreter or some framework classes are replaced with a newer version, this invalidates a signature stored in the "optimized" dex file in the /data/dalvik-cache directory, and it will be re-generated during the next boot, or latest before the next execution of the application. Additionally, there is an Android build option to "pre-optimize" system applications ("built-in" apps from /system/app). After pre-optimization they are stored alongside a "stripped" APK or JAR file that only contains the remaining manifest and resources. These "pre-optimized DEX files" have the extension *.odex, and avoid storing two files (for the normal binary plus the dalvik-cache file). If an OTA firmware update is performed and the Dalvik VM Interpreter is replaced with a newer version, however, all odex files need to be updated as well during the firmware update, so they match the Dalvik VM Interpreter (and framework files) again. Due to this fact newer Android distributions rarely use pre-optimized odex files. Luckily - at least on ARM - there is no debug-relevant difference between DeX and ODeX files, and both can be processed alike. Set Dalvik VM Interpreter internal debug status Android has an internal variable to notify the VM that a native-code debugger is attached to the system. When this variable is set, some internal time-outs are ignored and some safeguards are disabled. You set this variable with: Var gdvm.nativedebuggeractive = TRUE Training Android Debugging 11 Setting up a script for Android debugging

12 Example Android setup script Here is a sample PRACTICE script to set up debugging for Android 4.x (Jelly Bean) running on the PandaBoard. The Linux kernel and the Android root file system reside on the SD card. RESet PRINT "initializing..." SYStem.CPU OMAP4430 SYStem.JtagClock CTCK 30MHz SYStem.Option DACR ON TrOnchip.Set DABORT OFF TrOnchip.Set PABORT OFF TrOnchip.Set UNDEF OFF SYStem.Option MMUSPACES ON SYStem.Up ; give Debugger global write permissions ; used by Linux for page miss! ; used by Linux for page miss! ; my be used by Linux for FPU detection ; enable space ids to virtual addresses ; Open a serial terminal window DO ~~/demo/etc/terminal/term.cmm COM SETUP.IMASKASM ON ; lock interrupts while single stepping ; Load the Linux kernel symbols into the debugger Data.LOAD.Elf vmlinux /GNU /NoCODE /STRIPPART 3. PRINT "initializing debugger MMU..." MMU.FORMAT LINUXSWAP3 swapper_pg_dir 0xc xefffffff 0x TRANSLATION.COMMON 0x xB00FFFFF 0xC xFFFFFFFF TRANSLATION.TableWalk ON TRANSlation.ON ; Initialize Linux Awareness PRINT "initializing multi task support..." TASK.CONFIG ~~/demo/arm/kernel/linux/linux MENU.ReProgram ~~/demo/arm/kernel/linux/linux ; loads Linux awareness ; loads Linux menu symbol.autoload.checklinux "do ~~/demo/arm/kernel/linux/autoload.cmm " TASK.Option Threading TGroup ; better visibility for Dalvik threads TASK.Option NameMode ARG0COMM ; better visibility for Dalvik threads GROUP.Create "lib" 0x x4FFFFFFF /YELLOW GROUP.Create "android" 0x xAFFFFFFF /BLUE GROUP.Create "kernel" 0xC xFFFFFFFF /RED Go WAIT 60.s ; Waiting for Android startup (60 seconds) Break continued on next page. Training Android Debugging 12 Setting up a script for Android debugging

13 continued: ; Loading dalvik symbols TASK.sYmbol.Option AutoLoad PROCESS TASK.sYmbol.Option AutoLoad PROCLIB "zygote" symbol.autoload.check symbol.autoload.touch "libdvm.so" ; Scan dalvik MMU tables MMU.TaskPageTable.SCAN "zygote" ; Define synthetic symbols for the Dalvik VM interpreter LOCAL &funcrange &funcbeg &funcend &funcbeg=address.offset(symbol.begin("\\libdvm\interpasm-armv7-a-neon")) &funcend=address.offset(symbol.end("\\libdvm\interpasm-armv7-a-neon")) &funcrange="&funcbeg--&funcend" symbol.create.function t32_dalvik_vm &funcrange symbol.create.localvar t32_dalvik_vm rpc &funcrange Register r4 void* symbol.create.localvar t32_dalvik_vm rfp &funcrange Register r5 StackSaveArea* ; The following steps depend on your Android version: symbol.create.localvar t32_dalvik_vm rself &funcrange Register r6 Thread* symbol.create.localvar t32_dalvik_vm rinst &funcrange Register r7 void* symbol.create.localvar t32_dalvik_vm ribase &funcrange Register r8 void* symbol.create.done ; Load Dalvik VM awareness EXTension.LOAD dalvik.t32 MENU.ReProgram dalvik.men ; Configure JAVA extensions for Dalvik Java.RESet Java.CONFIG DALVIK Java.MAP.VM symbol.range(t32_dalvik_vm) Java.MAP.IP Register R4 symbol.range(t32_dalvik_vm) Java.MAP.FP Register R5 symbol.range(t32_dalvik_vm) Java.ON ; Pre-load DeX classes by calling a separate script DO dex-preload.cmm ; Set internal DVM debug status Var gdvm.nativedebuggeractive = TRUE ; Display something WinPOS 0. 30% EXTension.VMList WinPOS 0% 0% Var.Frame /TASK "android.process.media" WinPOS 50% 0% Data.List /TASK "android.process.media" Register.TASK "android.process.media" ENDDO Training Android Debugging 13 Setting up a script for Android debugging

14 Debugging Android For more information about debugging the native Android components (Boot Loader, Linux Kernel, Linux Kernel Modules, Native Processes and Native Libraries), please refer to Training Linux Debugging (training_rtos_linux.pdf). VM Dalvik Features The Dalvik VM Awareness currently provides this functionality: List DVM threads with their class descriptors and names. Display the DVM stack for a single DVM thread. List the (Java) Source code for a method/offset shown in the DVM stack view. Display the stack frame for a selected DVM thread Please also refer to the document VM Debugger Dalvik (vmdalvik.pdf). List Virtual Machine Threads You can display a list of the Dalvik Virtual Machine (DVM) threads with the command: EXTension.VMList You can also open this window from the TRACE32 Dalvik menu: View virtual machine thread stack You can display the Dalvik VM stack for one specific DVM instance with the command EXtension.VMView e.g. EXTension.VMView 0xEED82400 Training Android Debugging 14 Debugging Android

15 You can also open the same window by double-clicking on the "magic" or "task name" in the EXtension.VMView window, or by a right-click and then selecting Display detailed. A double click in the column frmcurpc of the EXTension.VMView window opens a Data.ListJava window. Initially this windows shows the Dalvik bytecode at the indicated position. With a double click in the column class descriptor, you will load the necessary symbols from preloaded data into TRACE32 symbol database. This then makes it possible to also display the Java source code for the corresponding entry. Training Android Debugging 15 Debugging Android

16 Display the stack frame for a selected VM thread You can display the stack frame for any Linux thread with the command Var.Frame /TASK <task_name_or_magic> When the Java/Dalvik environment is configured correctly, this Var.Frame window will also show the transitions between native and Java code. With Data.List /TASK <task_name> you can also display the code for the current stack level. Using the buttons Up and Down in the Var.Frame window, you can navigate up and down in the stack nesting. The Data.List /TASK window will automatically switch between native code and Java depending on the current stack level. Training Android Debugging 16 Debugging Android

17 Training Android Debugging 17 Debugging Android

18 Examples Debug daemon from main You can e.g. debug the volume daemon vold from its main function. For this, you need to stop your system before vold has been started. Then select in the Linux menu Process Debugging -> Debug Process on main... and enter vold as process name : As soon as vold is started, the autoloader loads the process symbols, and the target halts at the main() function. Training Android Debugging 18 Debugging Android

19 Debugging the frame buffer You can display the current screen image from the frame buffer in TRACE32. The registered frame buffers are listed in the array registered_fb Each entry is a pointer to an fb_info structure. You can e.g. display the structure pointed by the first entry in registered_fb with the command Var.View %m %s (struct fb_info)*registered_fb[0] Using the screen_base and the information from the var structure, you can display the frame buffer image by the Data.IMAGE command: In our example, the frame buffer only contains the text A N D R O I D. The reason for this is that on our PandaBoard test platform, Android 4.x does not use the normal frame buffer device (/dev/graphics/fb0), but an embedded graphics accelerator instead. However, Android 4.x comes with a screencap application to make a capture of the screen. Debugging this application gives us access to a capture of the screen. For this, we first run screencap, with a breakpoint set near the end of the main function. Training Android Debugging 19 Debugging Android

20 When the system stops, we can access the dimensions and image data of the screen capture via the local variables base, w and h, and use them to display the screen image: Debugging JNI calls In this example we will debug JNI calls for the Dalvik application android.process.acore. First we set a "task specific breakpoint" for the libdvm function dvmcalljnimethod: Break.Set dvmcalljnimethod /TASK "android.process.acore" Training Android Debugging 20 Debugging Android

21 Then we configure the autoloader to load any required library symbols for this process: TASK.sYmbol.Option AutoLOAD PROCLIB "android.process.acore" symbol.autoload.check When a JNI call is executed for this application, the debugger will now stop at dvmcalljnimethod. The parameter method tells us about the JNI function is about to be executed here: After some single stepping, we will get to the native part of the JNI function: The Frame window will now display the stack frame with the transition from Java to native code: Training Android Debugging 21 Debugging Android

Training Linux Debugging

Training Linux Debugging Training Linux Debugging TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training... Training RTOS... Training Linux Debugging... 1 Prolog... 4 Basic Terms on Embedded Linux... 5 1.) Linux

More information

RTOS Debugger for Linux - Run Mode

RTOS Debugger for Linux - Run Mode RTOS Debugger for Linux - Run Mode TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for Linux... RTOS Debugger for Linux - Run Mode... 1 Debugging

More information

RTOS Debugger for QNX - Run Mode

RTOS Debugger for QNX - Run Mode RTOS Debugger for QNX - Run Mode TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for QNX - Run Mode... 1 Basic Concepts... 2 pdebug... 2 Switching

More information

Training Linux Debugging for Intel x86/x64

Training Linux Debugging for Intel x86/x64 Training Linux Debugging for Intel x86/x64 TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training... Training Intel x86/x64... Training Linux Debugging for Intel x86/x64... 1 Prolog... 4

More information

Hypervisor Awareness for Wind River Hypervisor

Hypervisor Awareness for Wind River Hypervisor Hypervisor Awareness for Wind River Hypervisor TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... Hypervisor Support... Hypervisor Awareness for Wind River Hypervisor... 1 Overview...

More information

Run Mode Debugging Manual Symbian

Run Mode Debugging Manual Symbian Run Mode Debugging Manual Symbian TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness and Run Mode Debugging for Symbian... Run Mode Debugging

More information

RTOS Debugger for Windows Standard

RTOS Debugger for Windows Standard RTOS Debugger for Windows Standard TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for Windows Standard... 1 Overview... 4 Brief Overview of Documents

More information

OS Awareness Manual OSE Delta

OS Awareness Manual OSE Delta OS Awareness Manual OSE Delta TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness Manual OSE Delta... 1 History... 3 Overview... 3 Brief Overview

More information

Android Debugging ART

Android Debugging ART Android Debugging ART Khaled JMAL 2016 / 11 / 17 2 / 24 The Dalvik Virtual Machine Up to version 4.4 KitKat, Android was based on the Dalvik Virtual Machine Java compiles into DEX code DEX code is compiled

More information

Integration for exdi2 on Windows CE Platform Builder

Integration for exdi2 on Windows CE Platform Builder Integration for exdi2 on Windows CE Platform Builder TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... 3rd Party Tool Integrations... Integration for exdi2 on Windows CE Platform

More information

Debugging NMF Applications with TRACE32

Debugging NMF Applications with TRACE32 Debugging NMF Applications with TRACE32 TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... MMDSP... MMDSP Application

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Tracking the Virtual World

Tracking the Virtual World Tracking the Virtual World Synopsys: For many years the JTAG interface has been used for ARM-based SoC debugging. With this JTAG style debugging, the developer has been granted the ability to debug software

More information

Native Process Debugger

Native Process Debugger Native Process Debugger TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... Native Process Debugger... 1 Operation Theory... 3 Quick Start... 4 Starting a new process 4 Attach to a

More information

RTOS Debugger for CMX

RTOS Debugger for CMX RTOS Debugger for CMX TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for CMX... 1 Overview... 2 Brief Overview of Documents for New Users... 3

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

OS Awareness Manual Sciopta

OS Awareness Manual Sciopta OS Awareness Manual Sciopta TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness Manual Sciopta... 1 History... 2 Overview... 2 Brief Overview of

More information

RTOS Debugger for RTX-ARM

RTOS Debugger for RTX-ARM RTOS Debugger for RTX-ARM TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for RTX-ARM... 1 Overview... 2 Brief Overview of Documents for New Users...

More information

RTOS Debugger for ChibiOS/RT

RTOS Debugger for ChibiOS/RT RTOS Debugger for ChibiOS/RT TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for ChibiOS/RT... 1 Overview... 3 Brief Overview of Documents for New

More information

Application Note for the SNOOPer Trace

Application Note for the SNOOPer Trace Application Note for the SNOOPer Trace TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... Trace Analysis... Trace Application Notes... Application Note for the SNOOPer Trace... 1

More information

OS Awareness Manual uclinux

OS Awareness Manual uclinux OS Awareness Manual uclinux TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness Manual uclinux... 1 History... 4 Overview... 5 Brief Overview of

More information

TRACE32 Debugger Getting Started... ICD Tutorial About the Tutorial... 2

TRACE32 Debugger Getting Started... ICD Tutorial About the Tutorial... 2 ICD Tutorial TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Debugger Getting Started... ICD Tutorial... 1 About the Tutorial... 2 Working with the Debugger... 3 Set up the Program Environment

More information

NEW CEIBO DEBUGGER. Menus and Commands

NEW CEIBO DEBUGGER. Menus and Commands NEW CEIBO DEBUGGER Menus and Commands Ceibo Debugger Menus and Commands D.1. Introduction CEIBO DEBUGGER is the latest software available from Ceibo and can be used with most of Ceibo emulators. You will

More information

Android Internals and the Dalvik VM!

Android Internals and the Dalvik VM! Android Internals and the Dalvik VM! Adam Champion, Andy Pyles, Boxuan Gu! Derived in part from presentations by Patrick Brady, Dan Bornstein, and Dan Morrill from Google (http://source.android.com/documentation)!

More information

RTOS Debugger for LynxOS

RTOS Debugger for LynxOS RTOS Debugger for LynxOS TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for LynxOS... 1 Overview... 3 Brief Overview of Documents for New Users...

More information

Checking out" the hypervisor

Checking out the hypervisor Debugging in virtual worlds: Checking out" the hypervisor In order to save money, the functions from several electronic devices are consolidated on a common hardware unit. A hypervisor separates the functions

More information

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman Android: Under the Hood GDG-SG DevFest 5th Nov 2016 Jason Zaman Overview Who am I? Android Block Diagram Mobile Hardware Filesystem Layout Startup Linux Kernel Bionic libc Ashmem / Binder IPC Zygote Dalvik

More information

RTOS Debugger for ThreadX

RTOS Debugger for ThreadX RTOS Debugger for ThreadX TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for ThreadX... 1 Overview... 3 Brief Overview of Documents for New Users...

More information

VORAGO VA108x0 GCC IDE application note

VORAGO VA108x0 GCC IDE application note AN2015 VORAGO VA108x0 GCC IDE application note June 11, 2018 Version 1.0 VA10800/VA10820 Abstract ARM has provided support for the GCC (GNU C compiler) and GDB (GNU DeBug) tools such that it is now a very

More information

RTOS Debugger for MicroC/OS-III

RTOS Debugger for MicroC/OS-III RTOS Debugger for MicroC/OS-III TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for MicroC/OS-III... 1 Overview... 2 Brief Overview of Documents

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Objectives To describe the services an operating system provides to users, processes, and

More information

ARM Cortex-A9 + FPGA CPU Module Ultra Line. Bora Embedded Linux Kit (BELK) Trace on the Bora AMP (Linux + FreeRTOS) system

ARM Cortex-A9 + FPGA CPU Module Ultra Line. Bora Embedded Linux Kit (BELK) Trace on the Bora AMP (Linux + FreeRTOS) system ARM Cortex-A9 + FPGA CPU Module Ultra Line Bora Embedded Linux Kit (BELK) AN-BELK-002 Trace on the Bora AMP (Linux + FreeRTOS) system DAVE Embedded Systems www.dave.eu info@dave.eu

More information

RTOS Debugger for MicroC/OS-II

RTOS Debugger for MicroC/OS-II RTOS Debugger for MicroC/OS-II TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for MicroC/OS-II... 1 Overview... 3 Brief Overview of Documents for

More information

Performance 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 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 information

Android AOSP Overview. Karthik Dantu and Steve Ko

Android AOSP Overview. Karthik Dantu and Steve Ko Android AOSP Overview Karthik Dantu and Steve Ko Administrivia Any issues in building? Android Build System & Source Tree Today s goal Getting to know the build system Navigating the source tree Resources

More information

OS Awareness Manual OSE Epsilon

OS Awareness Manual OSE Epsilon OS Awareness Manual OSE Epsilon TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness Manual OSE Epsilon... 1 History... 2 Overview... 2 Brief Overview

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System

More information

CS260 Intro to Java & Android 04.Android Intro

CS260 Intro to Java & Android 04.Android Intro CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample

More information

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs. 9. Android is an open-source operating system for mobile devices. Nowadays, it has more than 1.4 billion monthly active users (statistic from September 2015) and the largest share on the mobile device

More information

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 2: System Structures. Operating System Concepts 9 th Edition Chapter 2: System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs

More information

Chapter 2 Operating-System Structures

Chapter 2 Operating-System Structures This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6

More information

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 2: System Structures. Operating System Concepts 9 th Edition Chapter 2: System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs

More information

Android System Development Training 4-day session

Android System Development Training 4-day session Android System Development Training 4-day session Title Android System Development Training Overview Understanding the Android Internals Understanding the Android Build System Customizing Android for a

More information

ARMv8-A Software Development

ARMv8-A Software Development ARMv8-A Software Development Course Description ARMv8-A software development is a 4 days ARM official course. The course goes into great depth and provides all necessary know-how to develop software for

More information

BRDS ( , WS 2017) Ulrich Schmid

BRDS ( , WS 2017) Ulrich Schmid BRDS (182.704, WS 2017) Ulrich Schmid s@ecs.tuwien.ac.at http://ti.tuwien.ac.at/ecs/teaching/courses/brds File System Protocol Stack Audio Driver Graphics Driver Microkernel Application Message Bus Microkernel

More information

Four Components of a Computer System

Four Components of a Computer System Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:

More information

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University Architectural Support for Operating Systems Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic services of OS Basic computer system

More information

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Joseph Yiu, ARM Ian Johnson, ARM January 2013 Abstract: While the majority of Cortex -M processor-based microcontrollers are

More information

Lecture 3 Android Internals

Lecture 3 Android Internals Lecture 3 Android Internals This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or

More information

Chapter 8: Memory-Management Strategies

Chapter 8: Memory-Management Strategies Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and

More information

Resource 2 Embedded computer and development environment

Resource 2 Embedded computer and development environment Resource 2 Embedded computer and development environment subsystem The development system is a powerful and convenient tool for embedded computing applications. As shown below, the development system consists

More information

Cortex-A9 MPCore Software Development

Cortex-A9 MPCore Software Development Cortex-A9 MPCore Software Development Course Description Cortex-A9 MPCore software development is a 4 days ARM official course. The course goes into great depth and provides all necessary know-how to develop

More information

CS Operating Systems

CS Operating Systems CS 447 - Operating Systems Syllabus Assignments -- Uses Blitz (facultyweb.cs.wwu.edu/~phil/classes/blitz) Environment UNIX (Linux, OS X, NetBSD, FreeBSD...) Should be the same since Blitz is a Virtual

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: Operating System Structures Operating System Services System Calls Chapter 2: System Structures System Programs Operating System Design and Implementation Operating System Structure Virtual

More information

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi ANDROID NATIVE APP: INTRODUCTION TO ANDROID Roberto Beraldi Role of an operating system APPLICATIONS OPERATING SYSTEM CPU MEMORY DEVICES Android = OS + Middleware Based on Linux Not just another distribution.

More information

Paul Sabanal IBM X-Force Advanced Research. Hiding Behind ART IBM Corporation

Paul Sabanal IBM X-Force Advanced Research. Hiding Behind ART IBM Corporation Paul Sabanal IBM X-Force Advanced Research Hiding Behind ART Agenda Introduc)on ART Overview User Mode Rootkits Demo Conclusion 2 Introduction Motivation Recent advancements in Android security dm- verity

More information

TRACE32 Documents... Debug Back-Ends... GTL Debug Back-End Introduction... 2 Related Documents 2 Contacting Support 2

TRACE32 Documents... Debug Back-Ends... GTL Debug Back-End Introduction... 2 Related Documents 2 Contacting Support 2 GTL Debug Back-End TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... Debug Back-Ends... GTL Debug Back-End... 1 Introduction... 2 Related Documents 2 Contacting Support 2 Abbreviations

More information

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide

More information

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts Memory management Last modified: 26.04.2016 1 Contents Background Logical and physical address spaces; address binding Overlaying, swapping Contiguous Memory Allocation Segmentation Paging Structure of

More information

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN: Friendly ARM MINI2440 & Dalvik Virtual Machine with Android Sangamesh Gama 1 and Manjula C 2 1 Assistant Professor, Department of Computer Science and Engineering, BKIT Bhalki, India 2 Associate Software

More information

21. This is a screenshot of the Android Studio Debugger. It shows the current thread and the object tree for a certain variable.

21. This is a screenshot of the Android Studio Debugger. It shows the current thread and the object tree for a certain variable. 4. Logging is an important part of debugging, which is hard to achieve on mobile devices, where application development and execution take place on different systems. Android includes a framework that

More information

RTOS Debugger for FreeRTOS

RTOS Debugger for FreeRTOS RTOS Debugger for FreeRTOS TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for FreeRTOS... 1 Overview... 2 Brief Overview of Documents for New Users...

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

ECE 598 Advanced Operating Systems Lecture 4

ECE 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 information

Chapter 8: Main Memory. Operating System Concepts 9 th Edition

Chapter 8: Main Memory. Operating System Concepts 9 th Edition Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

RTOS Debugger for MQX

RTOS Debugger for MQX RTOS Debugger for MQX TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for MQX... 1 Overview... 3 Brief Overview of Documents for New Users... 4

More information

1. What are the key components of Android Architecture? 2. What are the advantages of having an emulator within the Android environment?

1. What are the key components of Android Architecture? 2. What are the advantages of having an emulator within the Android environment? 1. What are the key components of Android Architecture? Android Architecture consists of 4 key components: - Linux Kernel - Libraries - Android Framework - Android Applications 2. What are the advantages

More information

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. Operating System Services User Operating System Interface

More information

Android Apps. with Eclipse. Apress. Onur Cinar

Android Apps. with Eclipse. Apress. Onur Cinar Android Apps with Eclipse Onur Cinar Apress Contents About the Author About the Technical Reviewer Introduction x xi xii Chapter 1: Android Primer 1 Android History 1 Android Versions..2 Android Platform

More information

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,

More information

Debugging in AVR32 Studio

Debugging in AVR32 Studio Embedded Systems for Mechatronics 1, MF2042 Tutorial Debugging in AVR32 Studio version 2011 10 04 Debugging in AVR32 Studio Debugging is a very powerful tool if you want to have a deeper look into your

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

ART JIT in Android N. Xueliang ZHONG Linaro ART Team

ART JIT in Android N. Xueliang ZHONG Linaro ART Team ART JIT in Android N Xueliang ZHONG Linaro ART Team linaro-art@linaro.org 1 Outline Android Runtime (ART) and the new challenges ART Implementation in Android N Tooling Performance Data & Findings Q &

More information

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: System Structures Chapter 2: System Structures 2.1 Operating-System Services 2.2 User and Operating-System Interface 2.3 System Calls 2.4 Types of System Calls 2.5 System Programs 2.6 Operating-System

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls (important!) Types of System Calls (important!) System

More information

TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... TriCore... TriCore Monitor... 1

TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... TriCore... TriCore Monitor... 1 TriCore Monitor TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... TriCore... TriCore Monitor... 1 Brief Overview of Documents

More information

PathFinder-XD for MIPS Powered Devices. Simulator

PathFinder-XD for MIPS Powered Devices. Simulator v.1.0.6, 15 th January 2013 PathFinder-XD for MIPS Powered Devices Simulator Contents 1. Introduction 2 2. Installation 2 2.1 Windows Installation 2 2.2 Linux Installation 2 3. Using PathFinder-XD with

More information

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

ARM 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 information

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT ANDROID NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT Peter R. Egli INDIGOO.COM 1/16 Contents 1. What you can do with NDK 2. When to use native code 3. Stable APIs to use / available libraries 4.

More information

Lecture 1 - Introduction to Android

Lecture 1 - Introduction to Android Lecture 1 - Introduction to Android This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/

More information

ELEC 377 Operating Systems. Week 1 Class 2

ELEC 377 Operating Systems. Week 1 Class 2 Operating Systems Week 1 Class 2 Labs vs. Assignments The only work to turn in are the labs. In some of the handouts I refer to the labs as assignments. There are no assignments separate from the labs.

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

10 Steps to Virtualization

10 Steps to Virtualization AN INTEL COMPANY 10 Steps to Virtualization WHEN IT MATTERS, IT RUNS ON WIND RIVER EXECUTIVE SUMMARY Virtualization the creation of multiple virtual machines (VMs) on a single piece of hardware, where

More information

Simulator for H8/300, H8/300H and H8S

Simulator for H8/300, H8/300H and H8S Simulator for H8/300, H8/300H and H8S TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... TRACE32 Instruction Set Simulators... Simulator for H8/300, H8/300H and H8S... 1 TRACE32 Simulator

More information

AN301, Spring 2017, V 1.0 Ken Havens

AN301, Spring 2017, V 1.0 Ken Havens Using the Cortex-M23 IoT Kit Image on MPS2+ MDK Version 5 AN301, Spring 2017, V 1.0 Ken Havens Contents Introduction...1 Prerequisites...1 Using the Cortex-M23 IoT Kit Image on MPS2+...1 Verify the Pack

More information

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services Objectives Chapter 2: Operating-System Structures To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 8: MEMORY MANAGEMENT By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the

More information

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring

More information

Getting Started with FreeRTOS BSP for i.mx 7Dual

Getting 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 information

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved Avi Shapira Graphic Remedy Copyright Khronos Group, 2009 - Page 1 2004 2009 Graphic Remedy. All Rights Reserved Debugging and profiling 3D applications are both hard and time consuming tasks Companies

More information

OS Awareness Manual OSEK/ORTI

OS Awareness Manual OSEK/ORTI OS Awareness Manual OSEK/ORTI TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... OS Awareness Manuals... OS Awareness for OSEK/ORTI... OS Awareness Manual OSEK/ORTI... 1 History...

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures 2.1 Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information