ARM-ETM RTS User s Guide

Size: px
Start display at page:

Download "ARM-ETM RTS User s Guide"

Transcription

1 ARM-ETM RTS User s Guide TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... ARM-ETM RTS User's Guide... 1 Introduction... 3 Contacting Support 3 Debug System Requirements... 4 Target System Requirements... 4 Differences between Real-time Profiling and Classical Trace... 5 System Setup for Real-time Profiling... 6 Verification of the setup via classical trace 6 Minimal test of RTS 7 Use Case RTS.ON... 9 Use Case RTS.LOAD Avoiding and Fixing Processing Errors Background on Decoding of Trace Protocols and Error Types 15 Resolving Physical Transmission Errors ( Flow errors ) 16 Locating and Resolving Errors No access to code errors 16 Profiling a Target Application Processing Performance Considerations Requirements for Processing Resources 18 Assessing the usage of the host s processing resources 19 Current Limitations Troubleshooting Empty result windows or invalid results 21 Empty windows RTS.LIST or RTS.ListNested 21 Flow Errors 21 Error: No access to code 22 Warning: RTS.ON: There is no program code in the debugger s VM ARM-ETM RTS User s Guide 1

2 Error: Streaming not possible in this configuration 22 Locked commands and disabled dialog controls 24 Glossary ARM-ETM RTS User s Guide 2

3 ARM-ETM RTS User s Guide Version 29-Mar-2017 Introduction The term real-time profiling means the recording, processing, and optional storage of trace data, while the target system is running and emitting new trace data. The term real-time suggests that the analysis on the host is (often) fast enough to process the trace data as quickly as it is created. By no means there is any real-time magic to detect overwritten vectors etc. in the target. Real-time profiling has to be distinguished from the trace mode STREAM which means only recording trace data for extended amounts of time and storing it to disk. The difference between both features regarding the file is that the trace mode STREAM writes unprocessed raw trace data (e.g. raw PTM or ETMV3 protocol data) to the file which serves as huge trace buffer (limited by the size of the disk), while realtime profiling saves pre-decoded trace data and the results of the analysis. This document is about real-time profiling. The document: lists the system requirements, highlights the difference between classical trace and real-time processing shows how to set up a system for RTS, presents exemplary use cases for RTS.ON, RTS.LOAD and for profiling the target application, each illustrating various features, and gives some guidelines to assess the required processing resources on the host. A detailed description of the commands is not given in this document. This can be found in the command reference documentation on RTS. NOTE: For historical reasons the command for invoking real-time profiling feature is named RTS which is the abbreviation of an older name of the feature. Contacting Support For RTS specific support, contact rts-support@lauterbach.com. ARM-ETM RTS User s Guide 3 Introduction

4 Debug System Requirements For using RTS there are the following requirements: A PowerTrace-II with AutoFocus-II preprocessor: only this hardware provides the required data rates and allows to transfer data to the host PC while new data is recorded. A Gbit Ethernet interface; despite theoretically sufficient bandwidth, a debugger with USB interface does not reach the same transfer rates. A fast host PC, especially for the cycle accurate analysis and for nested analysis. A 64bit executable and OS are required for handling traces > 2G Frames. Target System Requirements Currently real-time profiling only support targets with ETMv3 and Coresight or PTM. Some feature are still under development for PTM. ARM-ETM RTS User s Guide 4 Debug System Requirements

5 Differences between Real-time Profiling and Classical Trace The main technical difference between real-time profiling and classical trace is that with classical trace the analysis of the collected trace data is performed after the target stopped while real-time profiling analyses the incoming trace continuously at run-time once the target was started (e.g. via the Go command). The consequence is that classical trace is limited by the available trace buffer (which may be the whole hard-disk when using the trace mode STREAM) while real-time profiling can handle very long-running tasks if the host can keep up with processing the incoming trace data. A technical difference is that for classical trace the debugger reads the program code required for the analysis from the target s program memory (which possible as the analysis is performed with a stopped target). This is not possible for real-time profiling as the analysis takes place at run-time and the debugger cannot read the program image from the target (at least not at the required speed and not without influencing its real-time behavior). Therefore real-time profiling requires a copy of all program code in the debugger s virtual memory (VM:) before starting the RTS analysis. This requirement includes but is not limited to regular program code interrupt handlers reset and exception handlers As a rule of thumb a copy of all code should be present in the VM: before starting the target program. Pay special attention to cases where program code is relocated or loaded at run-time. ARM-ETM RTS User s Guide 5 Differences between Real-time Profiling and

6 System Setup for Real-time Profiling If the requirements listed in section System Requirements are met and classical flow trace functionality works with your target, the setup for RTS is straight-forward. For RTS it is important that there are no flow errors, because these can seriously disturb the more complicated types of trace analysis (e.g. the nested analysis). The only additional requirement over classical tracing is that a copy of all program code has to be loaded into the debugger s virtual memory (VM:) before starting the RTS analysis. This is necessary because the trace decoder cannot read the required program image from the running target. Verification of the setup via classical trace Before testing a simple RTS use case, we want to verify that the trace recording is free from flow errors and that all program code is present in VM: to prevent any no access to code errors. Both can be verified using classical flow trace. To assure there are no flow errors, perform a classical trace analysis with real-time profiling disabled (RTS.OFF) and execute the command Analzyer.FindAll, flowerror In case there are flow errors try to use the calibration features of the trace hardware (e.g. the Autofocus II preprocessor) to get rid of them. To write or copy program code into the VM: the following commands can be helpful: Data.Load.... /VM Data.LOAD.... /PlusVM ; loads the code only into VM ; used when the target boots it s program ; loads the code into both into the VM ; and the target Data.COPY 0x0++0x100 vm:0x0 ; Copy 256. bytes from the target to VM: NOTE: If the target executes interrupt handlers or exception vectors, these need to be present also in the VM. To achieve this, the Data.COPY command can be useful. ARM-ETM RTS User s Guide 6 System Setup for Real-time Profiling

7 To verify that all executed program code was copied to the VM: perform the following steps (still with RTS.OFF) 1. Check the contents of program memory using the commands below. Both windows must show the same contents and the virtual memory must be initialized (otherwise it shows as???????? ). Data.List ; display target memory Data.List VM: ; check the debugger s virtual memory 2. Configure the trace decoder to read program code from the VM: (For RTS this step is redundant because it is implicitly done by RTS.ON) using the command Analyzer.ACCESS VM: 3. Start the target and verify that Analyzer.List works correctly while the target is running by: GO <execute the target code and trace it via classical trace > Analyzer.List ; open the list window Analyzer.OFF ; switch analyzer off but keep target running Now the Analyzer.List window should show valid trace data. 4. Check if no access to code errors occurred using the following command Trace.FindAll cycle unknown In case of errors copy the relevant areas to debugger VM: and repeat the procedure until no errors are left. Minimal test of RTS After verifying that classical trace works correctly while the target is running, we test RTS. 1. Enable RTS and set the required options. Start with simple settings: RTS.Init RTS.TImeMode.OFF RTS.NestingMode.FLAT RTS.TASKMode.OFF RTS.FileMode.OFF RTS.ON ; reset all RTS options to default values ; no real-time information ; no function nesting analysis ; no task support, and ; no writing to file ; enable RTS ARM-ETM RTS User s Guide 7 System Setup for Real-time Profiling

8 2. Start the target and open an ISTAT window: GO RTS.ISTAT.ListModule After starting the target again, the window will be constantly be updated. By default all errors will turn off the trace - which leaves the trace cycles that caused the problem in the regular analyzer. The RTS.List window (if available) will show the trace just up to the problem. ARM-ETM RTS User s Guide 8 System Setup for Real-time Profiling

9 Use Case RTS.ON This section presents a sample use case with RTS.ON. Before following the steps below verify that RTS works as described in the Quick Start Guide. NOTE: Contrary to usual procedure, in this tutorial we will encounter some problems giving us the chance to identify them and learn how to solve them on our own when using RTS in the real world. The first step is to configure RTS for our use case. In this case we do a cycle accurate analysis of the programs call tree. RTS.RESet RTS.NestingMode.TREE RTS.TImMode.CycleAccurate RTS.FILE t32.rts RTS.ON Go ; reset options to defaults ; analysis of the program s call graph ; name of the RTS file ; enable RTS after configuration ; run to breakpoint JPEG_DecompressAllocate After executing Go, the trace data is recorded and analyzed. We open some windows with analysis results. First we are interested in the code coverage analysis: Data.List /COV ARM-ETM RTS User s Guide 9 Use Case RTS.ON

10 Strangely the window is all yellow, as if not code had been executed at all: The reason is that we forgot to open an RTS.COVerage.<*> window. This is required because views depending on the COVerage data base are only updated while such a window is open. The same holds true for the ISTAT information. We open the following windows: RTS.COVerage.ListModule RTS.ISTATistic.ListModule ; keep coverage windows updated ; keep ISTAT windows updated The ISTAT window now correctly shows the coverage information in white and yellow (executed / not executed): the while loop was not entered because the core stopped in JPEG_DecompressAllocate(). However, the columns cycles and cpi at the left side are all zero. This is because we used cycle accurate mode but forgot to set the CPU clock frequency via Trace.CLOCK. ARM-ETM RTS User s Guide 10 Use Case RTS.ON

11 After setting the CPU clock and restarting the trace session (recording the data again), we finally get sensible values for the cycle information: The RTS.ISTATistic window shows similar information Finally we execute RTS.OFF. This ends the RTS sessions. This is not strictly necessary in the current context but when using an RTS file (see RTS.FileMode) it is required to save pending data. So it is a good habit to end the session with RTS.OFF. ARM-ETM RTS User s Guide 11 Use Case RTS.ON

12 Use Case RTS.LOAD This section presents a sample use case using RTS.LOAD. In this mode RTS operates on data loaded from the so-called RTS file. This is useful for analyzing the data later. We start off by creating an RTS file by performing a debug session with RTS.ON with the option RTS.FileMode.FULL. This causes all data recorded during the session to be saved to the file. Obviously this requires some processing resources and may slow down the analysis of the trace data (For more information see Processing Performance Considerations). At the end of the session, it is necessary to use RTS.OFF to save the final results (coverage and instruction statistics) and the virtual memory to the RTS file. SYStem.RESet RTS.RESet Data.LOAD.ELF tribalista.elf /PLUSVM RTS.FILE jaseinamorar.rts ; select file name RTS.FileMode.FULL ; save trace data + final analysis results RTS.NestingMode.TREE ; set analysis options RTS.TImeMode.CycelAccurate ; RTS.TASKMode.OFF ; RTS.ON Go ; start debugging session < target running for some seconds while saving trace data > BREAK RTS.OFF ; stop the target ; close file and save pending data copy jaseinamorar.rts KEEPTHIS.RTS ; make safety copy RTS.ON automatically renames the previous file to *.bak. Despite this we make a safety copy because the mechanism only preserves a single file. Now let s have a look at the setup for RTS.LOAD. Its setup is simpler because the options like RTS.NestingMode, RTS.TImeMode etc. are restored from the file. So we just reset the system and load the RTS file: SYStem.RESet RTS.LOAD jaseinamorar.rts ; enable RTS.LOAD mode loading file This loads the contents of the virtual memory contents (VM:) and the final processing results e.g. the final COVerage information from the file. Then we open the RTS.STATistic.TREE window to inspect the call tree (The minimum detail level required for this is RTS.FileMode.Summary). RTS.STATistic.TREE ARM-ETM RTS User s Guide 12 Use Case RTS.LOAD

13 Unfortunately the result is not what we expected. The call tree is shown but there are no symbolic names listed: The problem is that we did not load the program symbols. This can be done by Data.LOAD.Elf tribalista.elf /NoCODE ; only load symbols Note that loading the program to the VM: is not necessary (but does not harm either) because it is loaded from the RTS file. After closing and reopening the RTS.STATistic.TREE window we get the correct output with symbols. Note the expression 1.(0/1)highlighted in red. It states that the function main() was called once 1.(../..), for main() there were zero (0/..) missing call opcodes in the trace data stream, but one (../1) missing return-from-subroutine statement. ARM-ETM RTS User s Guide 13 Use Case RTS.LOAD

14 A mismatch between analyzed CALL and RTS opcodes occurs when sampling the program flow in a bad moment i.e. when the core is just inside the function invocation: The main() function in the sample was invoked but not terminated yet. when the debugger attaches to a running system and starts the analysis inside a function call hierarchy rather than at the root. an error in the data stream Now let s have a look at the program flow itself via the RTS.List command. It works just like the Trace.List command but reads the trace data (e.g. PTM or ETM protocol data) from the file. Both commands do not load the complete file but only read the data necessary for performing the required function like rendering the Trace.List window). NOTE: For handling RTS files having some GBs in size, the use of an OS with and address space of 64 bits is required. NOTE: The long term trace method (enabled via Trace.Mode.STREAM) uses a file format that is not compatible with the RTS files. This is, because long term trace just dumps the raw trace data into a file, while RTS saves predecoded trace data and processing results. ARM-ETM RTS User s Guide 14 Use Case RTS.LOAD

15 Avoiding and Fixing Processing Errors As with normal tracing, with RTS different errors can occur. This chapter is intended to help to resolve these issues. Some background information about decoding trace protocols is provided to help understanding the process. Background on Decoding of Trace Protocols and Error Types The most important errors are flow error and no access to code. Modern trace protocols (e.g. ETMV3 and PTM) create a very compact encoding of the executed opcodes. For decoding this representation of the program flow, it is necessary to know the program image that the processor works upon. For example the PTM protocol mostly reports whether conditional branches were taken or not. If the program code is known, this information allows to reconstruct the complete program flow and deduce which opcodes between the branches were executed. For the classical trace analysis (using commands like Trace.List), the trace protocol data is recorded while the target is running, but the analysis is performed after the target stopped. When the target is stopped, the debugger can read the program image from the target memories. For RTS (using the RTS command group) the trace protocol data is already decoded (processed) while the target is running. As the debugger cannot access the program image in the target while it is running, the program needs to be loaded also to the debugger s virtual memory (which is accessed by the VM: memory access class). If all the executed program code is available in the VM and the VM s contents is in fact in-sync with the executed code, the analysis will be successful. There are some failure cases, however: Physical transmission errors of the trace protocol data due to bad signals on the trace port. This can create outright impossible trace data (patterns that should not ever occur within the given trace protocol) or invalid data that simply does not match the program flow (e.g. through bit errors in the encoding of branch addresses). For a range of target program memory, there is no representation in the debugger s VM. That means, that the debugger will report no access to code when it tries to read the opcodes from the relevant memory page the VM. The opcodes in the target s program memory are different from the opcodes in the debugger s VM. This can occur by self-modifying code (which is generally problematic to trace) or because the setup scripts did not copy the correct program image or copied only parts of the program image to the VM: The result is a flow error. NOTE: While this distinction between no access to code and flow error is generally valid, in practice there is some overlap between both cases. This is because the debugger s VM is managed in pages that are zero-initialized: if an init-script copies a few opcodes to the beginning of a page, the whole page is allocated in the VM:. Belonging to the same page, the opcodes that were not copied will appear available but incorrect (zero) and thus cause a flow error rather than a no access to code error. ARM-ETM RTS User s Guide 15 Avoiding and Fixing Processing Errors

16 Resolving Physical Transmission Errors ( Flow errors ) The first step in resolving errors with RTS (and normal trace) is to ensure correct recording of the trace protocol data. See the manual for the AutoFocus preprocessor and in particular the test focus feature for suggestions to do this. To check the trace setup do a classical trace analysis of your application: trace the execution of the program and have the debugger perform the analysis after stopping the program. Do this analysis with TRACE.ACCESS auto so that the debugger reads the program image from the target. In this test you would also discover problems with self-modifying code. Locating and Resolving Errors No access to code errors If there are errors with RTS despite a correct physical transmission, the problem is likely to be caused by missing opcodes in the VM:. For finding the problem, copy all relevant code to the VM: (as you would do for RTS), but do a classical trace analysis using Trace.ACCESS VM: : [...] RTS.OFF ; use classical trace Trace.ACCESS VM: ; simulate the access mode used on default for RTS Trace.List /Track Trace.FindAll cycle unknown /Track <execute the program> Using these settings, the debugger reads the program image from the VM: and encounters the same problems as RTS would. The advantage of performing this analysis with classical trace rather than with RTS is that Trace.List is not disturbed by errors while RTS.List (currently) has problems handling errors. Among other commands you may use Trace.List, and Trace.List VM: to compare actual target memory and virtual memory, and Trace.FindAll flowerror to locate the problems. After fixing the problems with classical trace, RTS should work without problems. If you still encounter problems, please contact Lauterbach support. NOTE: Even in mode RTS.ON, the classical trace commands like Trace.List are available. However, they only work on the latest data recorded in the analyzer s memory as RTS configures the trace memory as a FIFO. If your lucky and can stop the target quickly after a trace-related error, you may be able to identify it using the method described above. ARM-ETM RTS User s Guide 16 Avoiding and Fixing Processing Errors

17 Profiling a Target Application For profiling your application s patterns regarding executed operations and memory accesses, there is the command RTS.PROfile. It can be used only in mode RTS.ON and displays the accesses made in real-time if there is no processing back-log i.e. if the processing can keep up with the newly created data stream. NOTE: Currently, when the user interface is blocked e.g. while resizing a window with the mouse, the profiling windows will show this period as if there were no events. Once the user interface becomes responsive again, the events accumulated during the pause are shown as if they had occurred in the last observation interval. Another useful command to get a feeling for the behavior of the program is Data.List VM: /ISTAT ; note the VM: memory class specifier By using the VM: memory class specifier, the window remains alive even though the target is running and constantly updates the statistics and coverage data.. ARM-ETM RTS User s Guide 17 Profiling a Target Application

18 Processing Performance Considerations Real-time profiling processes the trace data while it is recorded. This is in contrast to classical flow trace which uploads the trace data only after the target stopped. All windows are updated while the trace is running, but there is currently no limitation that prevents them from consuming too much host processing power so that the processing threads might become too slow and cause the FIFO for the trace data to overflow. Ideally the average processing speed of the host at least equals the average rate of recorded trace data. Bursts of trace data that cannot be processed in real-time are uncritical as the trace memory of the analyzer (up to 4 GB with PowerTrace II) acts as a FIFO buffering the burst data. If the average rate of data recorded at the chips trace port is higher than the processing speed, the analyzer s memory will gradually fill up and processing will stop when the buffer overflows. Therefore, generally speaking, the use of a fast host machine is advisable. In the following sections we present some more detailed considerations on performance requirements and finding performance bottlenecks in the processing system. Requirements for Processing Resources The following table compares the effect of various RTS-options to the default settings (OFF) regarding the amount of generated trace data and the required real-time processing resources. The effect of the option is encoded as follows: 0 : option is neutral, + : some increase, ++ : big increase in required resources: amount of created trace data required real-time processing resources RTS.NestingMode.FLAT 0 0 RTS.NestingMode.TREE 0 + RTS.TImeMode.Sampling 0 + RTS.TImeMode.CycleAccurate RTS.FileMode.SUMMARY 0 0 RTS.FileMode.TASK 0 + RTS.FileMode.FULL 0 ++ RTS.FileCompression.LOW 0 + ARM-ETM RTS User s Guide 18 Processing Performance Considerations

19 RTS.FileCompression.MID 0 + RTS.FileCompression.HIGH 0 ++ Assessing the usage of the host s processing resources There is a number of commands to assess how much performance and I/O bandwidth the debugger is currently using. For using them take in consideration that the processing works in a pipelined manner and the slowest part of the pipeline will limit the overall processing speed. The stages of the processing pipeline are: recording data from the target (analyzer + preprocessor) transfer of data from analyzer to the host (via ethernet or for slow systems via USB) processing the data (optionally) writing the predecoded trace data to an RTS file PROFILE.STREAMTHREAD PROFILE.STREAMIN PROFILE.STREAMOUT PROFILE.STREAMCOM PROFILE.STREAMBUFFER PROFILE.STREAMFILE Time used by the processing threads data entering into the processing pipeline data leaving the processing pipeline after processing data transferred from the analyzer to the host fill level of the FIFO for trace data (must not overflow) data written to RTS file ARM-ETM RTS User s Guide 19 Processing Performance Considerations

20 Current Limitations Requires ETMv3 or Coresight in the target (support for ETMv1 will just be added on customer demand). Some features are not yet supported with PTM (RTS.List, RTS.ListNesting). Only 8bit or 16bit trace port (other trace port sizes are possible in the future, but will just be added on demand). Only normal mode - no wrapped or continuous modes. (will be added when needed, SMP support will also be added). Only simple function nesting is supported - some compiler or kernel constructs may produce stack overflows or underflows. Over the time we will implement also the complex call/return handling of the regular statistic commands, but this will take time. Currently RTOS awareness supports only static model, i.e. tasks must already exist when RTS is enabled and are not deleted during the trace. Sampling based timestamping is only supported for regular ARM ETMs. It will not work for Coresight or CoresightSingle ETMs. Trace speed is limited by transfer bandwidth to the host (about 50-70MB/second). Hardware based compression is planned to support higher speed targets or cycle accurate modes (target is 500MB/second) ARM-ETM RTS User s Guide 20 Current Limitations

21 Troubleshooting Empty result windows or invalid results When the windows showing analysis results (e.g. RTS.STATistic.TREE, RTS.ISTATistic.LM) are empty, check the following: Be sure to copy the program code to the debugger s VM before starting the trace session. This is necessary so the debugger can analyze the trace data in real-time. See the Quick Start Guide for details. If the RTS.STATistic.TREE window is empty, be sure that nested mode was enabled while recording the data (see RTS.NestingMode.TREE). In cycle accurate mode (RTS.TImeMode.CycleAccurate), if time values (min, max, execution) do not make sense, check that you configured the frequency of the trace clock frequency: TRACE.CLOCK <cpu_frequency>.mhz Note the trailing decimal point. after the number specifying the frequency. Empty windows RTS.LIST or RTS.ListNested The list windows RTS.List and RTS.ListNesting exclusively work on trace data stored in an RTS file. Therefore they require the setting RTS.FileMode FULL. Note that the command can be used in the modes RTS.ON and RTS.LOAD. With RTS.ON the data is read from an RTS file that is just being recorded. With RTS.LOAD the data is read from a file that was recorded previously. Flow Errors RTS requires a trace stream without flow errors, especially for the more complicated analysis of the call tree hierarchy. Therefore before attempting an RTS session, be sure that classical flow trace recording works without flow errors. You may want to use the auto-configuration feature of the AutoFocus preprocessor and the focus test command Analyzer.TestFocus to achieve this. If you get flow errors in RTS, even though classical tracing works perfectly, please check that really all executed program code is present in VM. This includes exception vectors and interrupt handlers etc. ARM-ETM RTS User s Guide 21 Troubleshooting

22 If the problem is caused by opcodes that are missing in VM: you can localize the spot using RTS.List. The listing of the program flow stops at the address of the flow error. NOTE: Single stepping through code with RTS enabled, some times causes flow errors. This is a known problem caused by optimizations for the typical use case of RTS i.e. tracing a running target in real-time. Error: No access to code As outlined earlier, real-time profiling requires that all executed code is copied to the debugger s VM: for the analysis. If the debugger encounters an address in the trace stream that is not present in the VM:, it outputs a No access to code error. In the RTS.LIST window these errors are shown as unknown in the column cycle. It is mandatory that the code is available at the time of processing the trace-data and thus while the program is running. As a rule of thumb all code should be present in the VM: before starting the program. If program code is copied to the VM: after starting the program, it may be too late and cause hard to find No access to code errors. For resolving No access to code errors please refer to section System Setup for Real-Time Profiling. Warning: RTS.ON: There is no program code in the debugger s VM... In order to decode the trace data stream, the debugger needs to know the executed program code. Therefore, before enabling RTS, copy all code that might be executed to VM:, including exception and interrupt vectors. Only if there is no program code at all in the VM:, the debugger issues a warning. Note, however, that the absence of this warning by no means indicates that all required code was present. See the Quick Start Guide for a setup example. Error: Streaming not possible in this configuration You will get this error message, if you try to enable RTS (via RTS.ON or via the RTS.state window) before the debugger is attached to the target (SYStem.Mode.Up). ARM-ETM RTS User s Guide 22 Troubleshooting

23 Another reason is that any of the following requirements is not met: a CombiProbe or a PowerTraceII with preprocessor AutoFocus I or II. an ETM port size of 4, 8, or 16 bits. ETM needs to be enabled ARM ETMV3 or ARM PTM ARM-ETM RTS User s Guide 23 Troubleshooting

24 Locked commands and disabled dialog controls While in streaming file load mode (activated by RTS.LOAD) or in mode RTS.ON, some commands are locked and the corresponding dialog controls are disabled. Examples are commands for selecting the detail level (RTS.NestingMode, RTS.TImeMode, RTS.TASKMode) and file modes (RTS.FileMode) and commands like ISTATistic.SAVE. In mode RTS.LOAD, also the control for RTS.ON is disabled to avoid accidentally overwriting the existing RTS file. For unlocking these features execute RTS.OFF. ARM-ETM RTS User s Guide 24 Troubleshooting

25 Glossary Classical flow trace: recording of flow trace data into a buffer memory in the analyzer. In the classical setting, the trace data is analyzed only after the target stopped whereas with real-time profiling the analysis is done in parallel to recording. Debugger virtual memory: a memory area implemented in the debugger instead of in hardware (thus called virtual memory ). In the context of trace analysis the VM: can be used to hold a copy of the program image so that the trace analyzer can access it even thought the target is running (which often prevents reading the target memories). Flat mode: the debugger only gathers information on executed instructions, not taking into account the call graph (function call hierarchy). Flow errors: a flow error is shown when the program flow reconstructed from the trace data does match the program in memory e.g. if the protocol reports a branch but there is not branch in the code. This can happen due to bit errors caused by incorrectly recorded trace data or due to changes in the program code (selfmodifying code). Hard errors: a hard error is reported, when the trace data stream contains byte patterns that would never be generated by the ETM. This can happen due bit errors caused by incorrectly recorded trace data. Nested mode: the debugger calculates the function nesting i.e. the call graph (function call hierarchy). This can happen due to bit errors caused by incorrectly recorded trace data. Real-time profiling (RTS): records, processes, and optionally stores trace data, while the target system is running and emitting new trace data. Real-time streaming is a deprecated term for real-time profiling. The term Real-time Streaming was changed to Real-time Profiling to avoid confusion with the trace mode STREAM. See trace mode STREAM. Trace mode STREAM: a long-time trace storage that allows to record and analyze amounts of trace data beyond the physical memory available in the trace tool (currently up to 4GB) by streaming the data to the hard-disk. ARM-ETM RTS User s Guide 25 Glossary

NEWS 2018 CONTENTS SOURCE CODE COVERAGE WORKS WITHOUT CODE INSTRUMENTATION. English Edition

NEWS 2018 CONTENTS SOURCE CODE COVERAGE WORKS WITHOUT CODE INSTRUMENTATION. English Edition NEWS 2018 English Edition WORKS WITHOUT CODE INSTRUMENTATION SOURCE CODE COVERAGE CONTENTS Trace-based MCDC Coverage Code Coverage Live Tracing via PCI Express Transition Wind River to TRACE32 RISC-V Debugger

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

ARM Application Note for MXC Chips

ARM Application Note for MXC Chips ARM Application Note for MXC Chips TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... ARM Application

More information

MCUXpresso IDE Instruction Trace Guide. Rev May, 2018 User guide

MCUXpresso IDE Instruction Trace Guide. Rev May, 2018 User guide MCUXpresso IDE Instruction Trace Guide User guide 14 May, 2018 Copyright 2018 NXP Semiconductors All rights reserved. ii 1. Trace Overview... 1 1.1. Instruction Trace Overview... 1 1.1.1. Supported Targets...

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

TRACE32. Product Overview

TRACE32. Product Overview TRACE32 Product Overview Preprocessor Product Portfolio Lauterbach is the world s leading manufacturer of complete, modular microprocessor development tools with 35 years experience in the field of embedded

More information

CONTENTS SOURCE CODE COVERAGE WORKS WITHOUT CODE INSTRUMENTATION. 2 Code Coverage Live. Trace-based MCDC Coverage. 5 Tracing via PCI Express

CONTENTS SOURCE CODE COVERAGE WORKS WITHOUT CODE INSTRUMENTATION. 2 Code Coverage Live. Trace-based MCDC Coverage. 5 Tracing via PCI Express NEWS 2018 SOURCE CODE COVERAGE WORKS WITHOUT CODE INSTRUMENTATION CONTENTS Trace-based MCDC Coverage 2 Code Coverage Live 5 Tracing via PCI Express 6 Transition Wind River to TRACE32 7 RISC-V Debugger

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

Contents. Cortex M On-Chip Emulation. Technical Notes V

Contents. Cortex M On-Chip Emulation. Technical Notes V _ Technical Notes V9.12.225 Cortex M On-Chip Emulation Contents Contents 1 1 Introduction 2 2 Access Breakpoints 3 3 Trace 5 4 NXP LPC 5 4.1 Boot and Memory Remapping 5 4.2 LPC17xx Startup 5 4.1 LPC11A02/04

More information

TDT 1.2 Release Notes and FAQ March 2002

TDT 1.2 Release Notes and FAQ March 2002 TDT 1.2 Release Notes and FAQ March 2002 This document gives additional information about the use of the ARM Trace Debug Tools TDT 1.2 (build 1031) For more information, please see the Trace Debug Tools

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

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information

15: OS Scheduling and Buffering

15: OS Scheduling and Buffering 15: OS Scheduling and ing Mark Handley Typical Audio Pipeline (sender) Sending Host Audio Device Application A->D Device Kernel App Compress Encode for net RTP ed pending DMA to host (~10ms according to

More information

file://c:\documents and Settings\degrysep\Local Settings\Temp\~hh607E.htm

file://c:\documents and Settings\degrysep\Local Settings\Temp\~hh607E.htm Page 1 of 18 Trace Tutorial Overview The objective of this tutorial is to acquaint you with the basic use of the Trace System software. The Trace System software includes the following: The Trace Control

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

Chapter 5 - Input / Output

Chapter 5 - Input / Output Chapter 5 - Input / Output Luis Tarrataca luis.tarrataca@gmail.com CEFET-RJ L. Tarrataca Chapter 5 - Input / Output 1 / 90 1 Motivation 2 Principle of I/O Hardware I/O Devices Device Controllers Memory-Mapped

More information

Supplement: Visual C++ Debugging

Supplement: Visual C++ Debugging Supplement: Visual C++ Debugging For Introduction to C++ Programming By Y. Daniel Liang Note: The screen shots are taken from VC++ 2010. It is the same for the later version. 1 Introduction The debugger

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

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

TRACE32 Glossary Terms, Abbreviations, and Definitions... 2

TRACE32 Glossary Terms, Abbreviations, and Definitions... 2 TRACE32 Glossary TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Glossary... 1 Terms, Abbreviations, and Definitions... 2 Terms with Explanations and Examples... 4 Access Classes 4 Build Path

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2018.11 02 CHAPTER 11 EVENT ANALYSIS WITH TRACEX CONTENTS 11 EVENT ANALYSIS WITH TRACEX 03 11.1 An Introduction to TraceX 03 11.2 Built-in Views and

More information

FPQ9 - MPC8360E implementation

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

The control of I/O devices is a major concern for OS designers

The control of I/O devices is a major concern for OS designers Lecture Overview I/O devices I/O hardware Interrupts Direct memory access Device dimensions Device drivers Kernel I/O subsystem Operating Systems - June 26, 2001 I/O Device Issues The control of I/O devices

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

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

The MARIE Architecture

The MARIE Architecture The MARIE Machine Architecture that is Really Intuitive and Easy. We now define the ISA (Instruction Set Architecture) of the MARIE. This forms the functional specifications for the CPU. Basic specifications

More information

ARM-ETM Programming Dialog

ARM-ETM Programming Dialog ARM-ETM Programming Dialog TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... ARM-ETM Programming

More information

USB3DevIP Data Recorder by FAT32 Design Rev Mar-15

USB3DevIP Data Recorder by FAT32 Design Rev Mar-15 1 Introduction USB3DevIP Data Recorder by FAT32 Design Rev1.1 13-Mar-15 Figure 1 FAT32 Data Recorder Hardware on CycloneVE board The demo system implements USB3 Device IP to be USB3 Mass storage device

More information

Computer System Overview

Computer System Overview Computer System Overview Operating Systems 2005/S2 1 What are the objectives of an Operating System? 2 What are the objectives of an Operating System? convenience & abstraction the OS should facilitate

More information

Instruction Pipelining Review

Instruction Pipelining Review Instruction Pipelining Review Instruction pipelining is CPU implementation technique where multiple operations on a number of instructions are overlapped. An instruction execution pipeline involves a number

More information

Cache Optimisation. sometime he thought that there must be a better way

Cache Optimisation. sometime he thought that there must be a better way Cache sometime he thought that there must be a better way 2 Cache 1. Reduce miss rate a) Increase block size b) Increase cache size c) Higher associativity d) compiler optimisation e) Parallelism f) prefetching

More information

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2.

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2. BASIC ELEMENTS Simplified view: Processor Slide 1 Computer System Overview Operating Systems Slide 3 Main Memory referred to as real memory or primary memory volatile modules 2004/S2 secondary memory devices

More information

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function William Stallings Computer Organization and Architecture Chapter 11 CPU Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data Registers

More information

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Ray Duran Staff Design Specialist FAE, Altera Corporation 408-544-7937

More information

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel Efficient and Large Scale Program Flow Tracing in Linux Alexander Shishkin, Intel 16.09.2013 Overview Program flow tracing - What is it? - What is it good for? Intel Processor Trace - Features / capabilities

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

Chapter 12. CPU Structure and Function. Yonsei University

Chapter 12. CPU Structure and Function. Yonsei University Chapter 12 CPU Structure and Function Contents Processor organization Register organization Instruction cycle Instruction pipelining The Pentium processor The PowerPC processor 12-2 CPU Structures Processor

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

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

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition Chapter 13: I/O Systems Silberschatz, Galvin and Gagne 2013 Chapter 13: I/O Systems Overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations

More information

TRACE32 Training... Training Hexagon-ETM... Hexagon-ETM Training... 1

TRACE32 Training... Training Hexagon-ETM... Hexagon-ETM Training... 1 Hexagon-ETM Training TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training... Training Hexagon-ETM... Hexagon-ETM Training... 1 Introduction Hexagon ETM... 4 Off-chip Trace Port 4 TRACE32

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

There are different characteristics for exceptions. They are as follows:

There are different characteristics for exceptions. They are as follows: e-pg PATHSHALA- Computer Science Computer Architecture Module 15 Exception handling and floating point pipelines The objectives of this module are to discuss about exceptions and look at how the MIPS architecture

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

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

EW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually.

EW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually. EW 25462 The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually. EW 25460 Some objects of a struct/union type defined with

More information

Memory management. Knut Omang Ifi/Oracle 10 Oct, 2012

Memory management. Knut Omang Ifi/Oracle 10 Oct, 2012 Memory management Knut Omang Ifi/Oracle 1 Oct, 212 (with slides from V. Goebel, C. Griwodz (Ifi/UiO), P. Halvorsen (Ifi/UiO), K. Li (Princeton), A. Tanenbaum (VU Amsterdam), and M. van Steen (VU Amsterdam))

More information

Intro to MS Visual C++ Debugging

Intro to MS Visual C++ Debugging Intro to MS Visual C++ Debugging 1 Debugger Definition A program used to control the execution of another program for diagnostic purposes. Debugger Features / Operations Single-Stepping 100011101010101010

More information

Training Simulator and Demo Software

Training Simulator and Demo Software Training Simulator and Demo Software TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training... Training Simulator and Demo Software... 1 About the Demo... 2 Starting the TRACE32 Simulator...

More information

Error Detection by Code Coverage Analysis without Instrumenting the Code

Error Detection by Code Coverage Analysis without Instrumenting the Code Error Detection by Code Coverage Analysis without Instrumenting the Code Erol Simsek, isystem AG Exhaustive testing to detect software errors constantly demands more time within development cycles. Software

More information

Lecture 16. Today: Start looking into memory hierarchy Cache$! Yay!

Lecture 16. Today: Start looking into memory hierarchy Cache$! Yay! Lecture 16 Today: Start looking into memory hierarchy Cache$! Yay! Note: There are no slides labeled Lecture 15. Nothing omitted, just that the numbering got out of sequence somewhere along the way. 1

More information

Outline. Operating Systems: Devices and I/O p. 1/18

Outline. Operating Systems: Devices and I/O p. 1/18 Outline Diversity of I/O devices block and character devices Organization of I/O subsystem of kernel device drivers Common hardware characteristics of device I/O subsystem tasks Operating Systems: Devices

More information

Course Outline. Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems

Course Outline. Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems Course Outline Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems 1 Today: Memory Management Terminology Uniprogramming Multiprogramming Contiguous

More information

_ V Renesas R8C In-Circuit Emulation. Contents. Technical Notes

_ V Renesas R8C In-Circuit Emulation. Contents. Technical Notes _ V9.12. 225 Technical Notes Renesas R8C In-Circuit Emulation This document is intended to be used together with the CPU reference manual provided by the silicon vendor. This document assumes knowledge

More information

FPQ6 - MPC8313E implementation

FPQ6 - 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 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

NEC 78K0- Family On-Chip Emulation

NEC 78K0- Family On-Chip Emulation _ Technical Notes V9.9.86 NEC 78K0- Family On-Chip Emulation Contents Contents... 1 1 Introduction... 2 2 Emulation options... 3 2.1 Hardware Options... 3 3 CPU Setup... 6 3.1 General Options... 6 3.2

More information

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili Virtual Memory Lecture notes from MKP and S. Yalamanchili Sections 5.4, 5.5, 5.6, 5.8, 5.10 Reading (2) 1 The Memory Hierarchy ALU registers Cache Memory Memory Memory Managed by the compiler Memory Managed

More information

ARM Processors for Embedded Applications

ARM Processors for Embedded Applications ARM Processors for Embedded Applications Roadmap for ARM Processors ARM Architecture Basics ARM Families AMBA Architecture 1 Current ARM Core Families ARM7: Hard cores and Soft cores Cache with MPU or

More information

CPU Structure and Function

CPU Structure and Function CPU Structure and Function Chapter 12 Lesson 17 Slide 1/36 Processor Organization CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data Lesson 17 Slide 2/36 CPU With Systems

More information

Getting Started with Red Trace

Getting Started with Red Trace Getting Started with Red Trace Getting Started with Red Trace Red Suite 5 Version 5.1.2 Getting Started with Red Trace 16 April, 2013 Copyright 2012-2013 Code Red Technologies, Inc All rights reserved.

More information

Changing the Embedded World TM. Module 3: Getting Started Debugging

Changing the Embedded World TM. Module 3: Getting Started Debugging Changing the Embedded World TM Module 3: Getting Started Debugging Module Objectives: Section 1: Introduce Debugging Techniques Section 2: PSoC In-Circuit Emulator (ICE) Section 3: Hands on Debugging a

More information

Chapter 5A. Large and Fast: Exploiting Memory Hierarchy

Chapter 5A. Large and Fast: Exploiting Memory Hierarchy Chapter 5A Large and Fast: Exploiting Memory Hierarchy Memory Technology Static RAM (SRAM) Fast, expensive Dynamic RAM (DRAM) In between Magnetic disk Slow, inexpensive Ideal memory Access time of SRAM

More information

Quickly Repair the Most Common Problems that Prevent Windows XP from Starting Up

Quickly Repair the Most Common Problems that Prevent Windows XP from Starting Up XP: Solving Windows Startup Problems X 34/1 Quickly Repair the Most Common Problems that Prevent Windows XP from Starting Up With the information in this article you can: The four most common Windows Startup

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

TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... RAM Trace Port Overview... 2 FAQ...

TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... RAM Trace Port Overview... 2 FAQ... RAM Trace Port TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... ARM/CORTEX/XSCALE... RAM Trace Port... 1 Overview...

More information

General Commands Reference Guide R

General Commands Reference Guide R General Commands Reference Guide R TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... General Commands... General Commands Reference Guide R... 1 REFresh... 4 Function 4 REFresh.Address

More information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY LANGUAGE MACHINE ORGANIZATION ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction

More information

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function William Stallings Computer Organization and Architecture 8 th Edition Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data

More information

INPUT/OUTPUT ORGANIZATION

INPUT/OUTPUT ORGANIZATION INPUT/OUTPUT ORGANIZATION Accessing I/O Devices I/O interface Input/output mechanism Memory-mapped I/O Programmed I/O Interrupts Direct Memory Access Buses Synchronous Bus Asynchronous Bus I/O in CO and

More information

AutoFocus User s Guide

AutoFocus User s Guide AutoFocus User s Guide TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... AutoFocus User's Guide... 1 Introduction... 4 Intended Audience 4 Prerequisites 4 Contacting Support 5 Installation...

More information

Virtual Memory. 11/8/16 (election day) Vote!

Virtual Memory. 11/8/16 (election day) Vote! Virtual Memory 11/8/16 (election day) Vote! Recall: the job of the OS The OS is an interface layer between a user s programs and hardware. Program Operating System Computer Hardware It provides an abstract

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

System Messages - Numerical List

System Messages - Numerical List Page 1 of 13 Open topic with navigation V+ Language Reference Guide, v17.x Page 2 of 13 System Messages - Numerical List This section lists all the V+ messages that have a numeric code. Most message codes

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

Chapter 5 (Part II) Large and Fast: Exploiting Memory Hierarchy. Baback Izadi Division of Engineering Programs

Chapter 5 (Part II) Large and Fast: Exploiting Memory Hierarchy. Baback Izadi Division of Engineering Programs Chapter 5 (Part II) Baback Izadi Division of Engineering Programs bai@engr.newpaltz.edu Virtual Machines Host computer emulates guest operating system and machine resources Improved isolation of multiple

More information

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security Input/Output Today Principles of I/O hardware & software I/O software layers Disks Next Protection & Security Operating Systems and I/O Two key operating system goals Control I/O devices Provide a simple,

More information

CA Performance Management Data Aggregator

CA Performance Management Data Aggregator CA Performance Management Data Aggregator Basic Self-Certification Guide 2.4.1 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to

More information

Plot SIZE. How will execution time grow with SIZE? Actual Data. int array[size]; int A = 0;

Plot SIZE. How will execution time grow with SIZE? Actual Data. int array[size]; int A = 0; How will execution time grow with SIZE? int array[size]; int A = ; for (int i = ; i < ; i++) { for (int j = ; j < SIZE ; j++) { A += array[j]; } TIME } Plot SIZE Actual Data 45 4 5 5 Series 5 5 4 6 8 Memory

More information

After completing this appendix, you will be able to:

After completing this appendix, you will be able to: 1418835463_AppendixA.qxd 5/22/06 02:31 PM Page 879 A P P E N D I X A A DEBUGGING After completing this appendix, you will be able to: Describe the types of programming errors Trace statement execution

More information

Streaming mode snapshot mode Faster Troubleshooting Higher Quality Better Performance Control System Tuning Other Benefits

Streaming mode snapshot mode Faster Troubleshooting Higher Quality Better Performance Control System Tuning Other Benefits Tracealyzer provides an unprecedented level of insight into the runtime world of your embedded software system. Tracealyzer allows you to solve complex software problems in a fraction of the time otherwise

More information

EE382A Lecture 7: Dynamic Scheduling. Department of Electrical Engineering Stanford University

EE382A Lecture 7: Dynamic Scheduling. Department of Electrical Engineering Stanford University EE382A Lecture 7: Dynamic Scheduling Department of Electrical Engineering Stanford University http://eeclass.stanford.edu/ee382a Lecture 7-1 Announcements Project proposal due on Wed 10/14 2-3 pages submitted

More information

Finding Firmware Defects Class T-18 Sean M. Beatty

Finding Firmware Defects Class T-18 Sean M. Beatty Sean Beatty Sean Beatty is a Principal with High Impact Services in Indianapolis. He holds a BSEE from the University of Wisconsin - Milwaukee. Sean has worked in the embedded systems field since 1986,

More information

An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal)

An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal) An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal) OR A Software-generated CALL (internally derived from the execution of an instruction or by some other internal

More information

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University Chapter 3 Top Level View of Computer Function and Interconnection Contents Computer Components Computer Function Interconnection Structures Bus Interconnection PCI 3-2 Program Concept Computer components

More information

LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY

LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY Abridged version of Patterson & Hennessy (2013):Ch.5 Principle of Locality Programs access a small proportion of their address space at any time Temporal

More information

Computer Architecture Memory hierarchies and caches

Computer Architecture Memory hierarchies and caches Computer Architecture Memory hierarchies and caches S Coudert and R Pacalet January 23, 2019 Outline Introduction Localities principles Direct-mapped caches Increasing block size Set-associative caches

More information

Debugging in Small Basic is the process of analysing a program to detect and fix errors or improve functionality in some way.

Debugging in Small Basic is the process of analysing a program to detect and fix errors or improve functionality in some way. How to Debug Introduction Debugging in Small Basic is the process of analysing a program to detect and fix errors or improve functionality in some way. In order to debug a program it must first compile

More information

Minimizing Data hazard Stalls by Forwarding Data Hazard Classification Data Hazards Present in Current MIPS Pipeline

Minimizing Data hazard Stalls by Forwarding Data Hazard Classification Data Hazards Present in Current MIPS Pipeline Instruction Pipelining Review: MIPS In-Order Single-Issue Integer Pipeline Performance of Pipelines with Stalls Pipeline Hazards Structural hazards Data hazards Minimizing Data hazard Stalls by Forwarding

More information

CPU Architecture. HPCE / dt10 / 2013 / 10.1

CPU Architecture. HPCE / dt10 / 2013 / 10.1 Architecture HPCE / dt10 / 2013 / 10.1 What is computation? Input i o State s F(s,i) (s,o) s Output HPCE / dt10 / 2013 / 10.2 Input and Output = Communication There are many different types of IO (Input/Output)

More information

Input and Output = Communication. What is computation? Hardware Thread (CPU core) Transforming state

Input and Output = Communication. What is computation? Hardware Thread (CPU core) Transforming state What is computation? Input and Output = Communication Input State Output i s F(s,i) (s,o) o s There are many different types of IO (Input/Output) What constitutes IO is context dependent Obvious forms

More information

UNIT- 5. Chapter 12 Processor Structure and Function

UNIT- 5. Chapter 12 Processor Structure and Function UNIT- 5 Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data CPU With Systems Bus CPU Internal Structure Registers

More information

Cache introduction. April 16, Howard Huang 1

Cache introduction. April 16, Howard Huang 1 Cache introduction We ve already seen how to make a fast processor. How can we supply the CPU with enough data to keep it busy? The rest of CS232 focuses on memory and input/output issues, which are frequently

More information

SSC - Concurrency and Multi-threading Advanced topics about liveness

SSC - Concurrency and Multi-threading Advanced topics about liveness SSC - Concurrency and Multi-threading Advanced topics about liveness Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Review what we learned

More information

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013 CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013 TOPICS TODAY I/O Architectures Interrupts Exceptions FETCH EXECUTE CYCLE 1.7 The von Neumann Model This is a general

More information

Memory management, part 2: outline

Memory management, part 2: outline Memory management, part 2: outline Page replacement algorithms Modeling PR algorithms o Working-set model and algorithms Virtual memory implementation issues 1 Page Replacement Algorithms Page fault forces

More information

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster Operating Systems 141 Lecture 09: Input/Output Management Despite all the considerations that have discussed so far, the work of an operating system can be summarized in two main activities input/output

More information

Memory Management. Chapter 4 Memory Management. Multiprogramming with Fixed Partitions. Ideally programmers want memory that is.

Memory Management. Chapter 4 Memory Management. Multiprogramming with Fixed Partitions. Ideally programmers want memory that is. Chapter 4 Memory Management Ideally programmers want memory that is Memory Management large fast non volatile 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms

More information

Function names can be specified with winidea syntax for qualified names, if multiple download files and file static functions are tested.

Function names can be specified with winidea syntax for qualified names, if multiple download files and file static functions are tested. _ RELEASE NOTES testidea 9.12.x 9.12.14 (28.3.2012) Qualified function names Function names can be specified with winidea syntax for qualified names, if multiple download files and file static functions

More information