55
AVR32 Debugger and NEXUS Trace 1 ©1989-2018 Lauterbach GmbH AVR32 Debugger and NEXUS Trace TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents ...................................................................................................................... ICD In-Circuit Debugger ................................................................................................................ Processor Architecture Manuals .............................................................................................. AVR32 ....................................................................................................................................... AVR32 Debugger and NEXUS Trace ................................................................................... 1 Introduction ....................................................................................................................... 5 Brief Overview of Documents for New Users 5 Demo and Start-up Scripts 6 Configuration ..................................................................................................................... 7 Debugger 7 Debugger and NEXUS Trace 8 Warning .............................................................................................................................. 9 Quick Start ......................................................................................................................... 10 Troubleshooting ................................................................................................................ 12 Special Nexus Trace Troubleshooting 13 FAQ ..................................................................................................................................... 14 Debugger 14 NEXUS 16 Trace Extension ................................................................................................................. 20 CPU specific SYStem Settings ......................................................................................... 21 SYStem.CONFIG.state Display target configuration 21 SYStem.CONFIG Configure debugger according to target topology 22 SYStem.CPU Select the used CPU 26 SYStem.CpuAccess Run-time memory access (intrusive) 26 SYStem.JtagClock Define JTAG clock 28 SYStem.MemAccess Real-time memory access (non-intrusive) 28 SYStem.Mode Establish the communication with the target 29 SYStem.LOCK Lock and tristate the debug port 29 SYStem.Option.IMASKASM Disable interrupts while single stepping 29 SYStem.Option.IMASKHLL Disable interrupts while HLL single stepping 30 SYStem.Option.MPU Disable MPU during memory access 30 SYStem.Option AUTO Auto JTAG setting 31

AVR32 Debugger and NEXUS Trace

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AVR32 Debugger and NEXUS Trace

AVR32 Debugger and NEXUS Trace

TRACE32 Online Help

TRACE32 Directory

TRACE32 Index

TRACE32 Documents ......................................................................................................................

ICD In-Circuit Debugger ................................................................................................................

Processor Architecture Manuals ..............................................................................................

AVR32 .......................................................................................................................................

AVR32 Debugger and NEXUS Trace ................................................................................... 1

Introduction ....................................................................................................................... 5

Brief Overview of Documents for New Users 5

Demo and Start-up Scripts 6

Configuration ..................................................................................................................... 7

Debugger 7

Debugger and NEXUS Trace 8

Warning .............................................................................................................................. 9

Quick Start ......................................................................................................................... 10

Troubleshooting ................................................................................................................ 12

Special Nexus Trace Troubleshooting 13

FAQ ..................................................................................................................................... 14

Debugger 14

NEXUS 16

Trace Extension ................................................................................................................. 20

CPU specific SYStem Settings ......................................................................................... 21

SYStem.CONFIG.state Display target configuration 21

SYStem.CONFIG Configure debugger according to target topology 22

SYStem.CPU Select the used CPU 26

SYStem.CpuAccess Run-time memory access (intrusive) 26

SYStem.JtagClock Define JTAG clock 28

SYStem.MemAccess Real-time memory access (non-intrusive) 28

SYStem.Mode Establish the communication with the target 29

SYStem.LOCK Lock and tristate the debug port 29

SYStem.Option.IMASKASM Disable interrupts while single stepping 29

SYStem.Option.IMASKHLL Disable interrupts while HLL single stepping 30

SYStem.Option.MPU Disable MPU during memory access 30

SYStem.Option AUTO Auto JTAG setting 31

AVR32 Debugger and NEXUS Trace 1 ©1989-2018 Lauterbach GmbH

Page 2: AVR32 Debugger and NEXUS Trace

SYStem.EraseChip Erases the Flash and the EEprom 31

CPU specific TrOnchip Commands ................................................................................. 32

TrOnchip.state Display on-chip trigger window 32

TrOnchip.CONVert Adjust range breakpoint in on-chip resource 32

TrOnchip.VarCONVert Adjust complex breakpoint in on-chip resource 32

TrOnchip.RESet Set on-chip trigger to default state 33

TrOnchip EVTI Allow the EVTI signal to stop the program execution 33

TrOnchip EVTO Output sync signals on EVT0 34

CPU specific Nexus Commands ...................................................................................... 35

NEXUS.BTM Branch trace mode 35

NEXUS.DDR Use the DDR transmission 35

NEXUS.DTM Data trace mode 35

NEXUS.OTM Ownership trace messages 36

NEXUS.PinConfig Override the nexus port pin mapping 36

NEXUS.PortMode Change the nexus port clock frequency 36

NEXUS.Spen<messagetype> Avoid message overrun 37

NEXUS.SQA Synchronize trace by using full address 37

NEXUS.WTM Watch trace messages 37

Breakpoints ........................................................................................................................ 38

Software breakpoints 38

On-chip breakpoints for instructions 38

On-chip breakpoints for data 38

Example for Breakpoints 38

Filter and Trigger for the NEXUS Trace ........................................................................... 40

Filter and Trigger provided by the Processor (Simple Trigger Unit - STU) 40

Trigger 41

Runtime Measurement 41

Other Useful Trace Commands 42

Memory Classes ................................................................................................................ 43

Programming the On-chip FLASH of the AVR32 ............................................................ 44

Special Hints, Restrictions, and Known Problems ........................................................ 45

Hints: 45

Restrictions: 45

Known Problems: 45

Connectors ........................................................................................................................ 46

Debug Connector 46

Mechanical Description of the 10-pin Debug Cable 46

Technical Data 46

NEXUS Connector 47

Mechanical Description of the MICTOR38 Debug Connector 47

Electrical Description of the 38-pin Mictor Debug Cable 48

AVR32 Debugger and NEXUS Trace 2 ©1989-2018 Lauterbach GmbH

Page 3: AVR32 Debugger and NEXUS Trace

Signal Load and Impedance 48

Mechanical Dimension 50

Support ............................................................................................................................... 51

Available Tools 51

Debugger 51

NEXUS 52

Compilers 52

Realtime Operating System 52

3rd-Party Tool Integrations 53

Products ............................................................................................................................. 54

Product Information 54

Debugger 54

NEXUS 54

Order Information 55

Debugger 55

NEXUS 55

AVR32 Debugger and NEXUS Trace 3 ©1989-2018 Lauterbach GmbH

Page 4: AVR32 Debugger and NEXUS Trace

AVR32 Debugger and NEXUS Trace

Version 16-Nov-2018

AVR32 Debugger and NEXUS Trace 4 ©1989-2018 Lauterbach GmbH

Page 5: AVR32 Debugger and NEXUS Trace

Introduction

This manual serves as a guideline for debugging AVR32 cores and describes all processor-specific TRACE32 settings and features.

Please keep in mind that only the Processor Architecture Manual (the document you are reading at the moment) is CPU specific, while all other parts of the online help are generic for all CPUs supported by Lauterbach. So if there are questions related to the CPU, the Processor Architecture Manual should be your first choice.

Brief Overview of Documents for New Users

Architecture-independent information:

• “Debugger Basics - Training” (training_debugger.pdf): Get familiar with the basic features of a TRACE32 debugger.

• “T32Start” (app_t32start.pdf): T32Start assists you in starting TRACE32 PowerView instances for different configurations of the debugger. T32Start is only available for Windows.

• “General Commands” (general_ref_<x>.pdf): Alphabetic list of debug commands.

Architecture-specific information:

• “Processor Architecture Manuals”: These manuals describe commands that are specific for the processor architecture supported by your debug cable. To access the manual for your processor architecture, proceed as follows:

- Choose Help menu > Processor Architecture Manual.

• To get started with the most important manuals, use the WELCOME.view dialog.

AVR32 Debugger and NEXUS Trace 5 ©1989-2018 Lauterbach GmbH

Page 6: AVR32 Debugger and NEXUS Trace

Demo and Start-up Scripts

To search for PRACTICE scripts, do one of the following in TRACE32 PowerView:

• Type at the command line: WELCOME.SCRIPTS

• or choose File menu > Search for Script.

You can now search the demo folder and its subdirectories for PRACTICE start-up scripts (*.cmm) and other demo software:

You can also inspect the demo folder manually in the root installation directory of TRACE32. The ~~/demo/avr32/ folder contains:

compiler/ Hardware independent compiler examples.

flash/ Binaries for target based programming and example declarations for internal flash.

kernel/ Various OS Awareness examples.

AVR32 Debugger and NEXUS Trace 6 ©1989-2018 Lauterbach GmbH

Page 7: AVR32 Debugger and NEXUS Trace

Configuration

Debugger

Example configuration for an AVR32 debugger.

AVR32 Debugger and NEXUS Trace 7 ©1989-2018 Lauterbach GmbH

Page 8: AVR32 Debugger and NEXUS Trace

Debugger and NEXUS Trace

Example configuration for an AVR32 debugger and NEXUS trace.

AVR32 Debugger and NEXUS Trace 8 ©1989-2018 Lauterbach GmbH

Page 9: AVR32 Debugger and NEXUS Trace

Warning

NOTE: To prevent debugger and target from damage it is recommended to connect or disconnect the debug cable only while the target power is OFF.

Recommendation for the software start:• Disconnect the debug cable from the target while the target power is off.• Connect the host system, the TRACE32 hardware and the debug cable.• Start the TRACE32 software to load the debugger firmware.• Connect the debug cable to the target.• Switch the target power ON.• Configure your debugger e.g. via a start-up script.

Power down:• Switch off the target power.• Disconnect the debug cable from the target.

AVR32 Debugger and NEXUS Trace 9 ©1989-2018 Lauterbach GmbH

Page 10: AVR32 Debugger and NEXUS Trace

Quick Start

Starting up the debugger is done as follows:

1. Select the device prompt B (BDM debugger) and reset TRACE32.

The device prompt B:: is normally already selected in the command line. If this is not the case enter B:: to set the correct device prompt. The RESet command is only necessary if you do not start directly after booting the TRACE32 development tool.

2. Specify the CPU specific settings.

This command selects the CPU type.

The AP7 is not supported at the moment, but it will be in the future.

Note: For a multi-core target it is most likely necessary to configure the multi-core settings using SYStem.Config before continuing.

3. Inform the debugger about cashable address range (FLASH/EEPROM).

This is important to speed up the T32 GUI responsiveness. The specified address range will be accesses only once after a break, thus avoiding unnecessary memory accesses.

4. Reset the target and enter debug mode.

This command resets the CPU on the target, enables On-Chip-Debug Mode and issues a breakpoint right after the reset interrupt routine.The CPU stops execution any instruction and the user is able to download the code and test. After this command is executed, it is possible to access memory and registers.

B::

RESet

SYStem.CPU UC3A0512

MAP.UpdateOnce p:0x8000--0xffff

SYStem.Mode Up

AVR32 Debugger and NEXUS Trace 10 ©1989-2018 Lauterbach GmbH

Page 11: AVR32 Debugger and NEXUS Trace

5. Load the program.

The format of the Data.LOAD command depends on the file format generated by the compiler. Refer to Supported Compilers to find the command that is necessary for your compiler.

A detailed description of the Data.LOAD command and all available options is given in the “General Commands Reference Guide D” (general_ref_d.pdf).

A typical start sequence of the AVR32 is shown below. This sequence can be written to an ASCII file (script file) and executed with the command DO <filename>.

*) These commands open windows on the screen. The window position can be specified with the WinPOS command.

Data.LOAD.Elf userpgm ; ELF specifies the format of the; symbol and debug information

B:: ; Select the ICD device prompt

RESet ; Reset the TRACE32 SW

MAP.UpdateOnce p:0x8000--0xffff

; Specify the address range for caching

WinCLEAR ; Clear all windows

SYStem.Up ; Reset the target and enter debug mode

Data.LOAD.Elf sieve.elf ; Load the target application

; Set the stack pointer to address 8000

PER.view ; Show clearly arranged peripherals ; in window *)

Data.List ; Open source code window *)

Register.view /SpotLight ; Open register window *)

Frame.view /Locals /Caller ; Open the stack frame with ; local variables *)

Var.Watch %SpotLight flags ast ; Open watch window for variables *)

Break.Set 0x1000 /Program ; Set software breakpoint to address; 1000 (address 1000 is within RAM ; address range)

Break.Set 0x101000 /Program ; Set on-chip breakpoint; to address 101000 (address 101000 is; within Flash address range)

AVR32 Debugger and NEXUS Trace 11 ©1989-2018 Lauterbach GmbH

Page 12: AVR32 Debugger and NEXUS Trace

Troubleshooting

Error Message Event Reason

target power fail SYStem.Mode.Up See below.

target processor in reset SYStem.Down See below.

Target not connected or JTAG chain not configured correctly: Returned IR[1:0] != “01”

SYStem.Mode.UpSYStem.Mode.Go

The debugger expects to receive the bit sequence “01“ for every command that is sent over JTAG. If this is not the case, an error message is displayed. Check the JTAG connections.

The number of <number> accessed bytes in memory is not a multiple of the access size <size> bytes.

No special event Internal error, please consult your Lauterbach representative.

Memory address <address> is not aligned to access size <size>.

No special event Internal error, please consult your Lauterbach representative.

Invalid memory access size: <size> bytes (@ address <address>)

No special event Internal error, please consult your Lauterbach representative.

Memory access timeout: Reading from address <address>

No special event Corrupted JTAG connection. Check JTAG hardware and settings.

AVR32 Debugger and NEXUS Trace 12 ©1989-2018 Lauterbach GmbH

Page 13: AVR32 Debugger and NEXUS Trace

Typically the SYStem.Up command is the first command of a debug session where communication with target is required. If you receive error messages like “debug port fail” or “debug port time out” while executing this command, this may have the reasons below. “target processor in reset” is just a follow-up error message.

• Open the AREA.view window to display all error messages.

• If the target has no power or the debug cable is not connected to the target this results in the error message “target power fail”.

• Did you select the correct core type SYStem.CPU <type>?

• There is an issue with the JTAG interface. Maybe there is the need to set jumpers on the target to connect the correct signals to the JTAG connector. It will e.g. not work if nTRST signal is directly connected to ground on target side.

• The target is in an unrecoverable state. Re-power your target and try again.

• The default JTAG clock speed is too fast. In this case try SYStem.JtagClock 50kHz and optimize the speed when you got it working.

• The core is used in a multicore system and the appropriate multicore settings for the debugger are missing. See for example SYStem.CONFIG IRPRE. This is the case if you get a value.

• The core has no clock.

• The core is kept in reset.

• There is a watchdog which needs to be deactivated.

Special Nexus Trace Troubleshooting

For the case the debugger is working, but Nexus trace does not deliver reliable results, one can try the test instruction DIAG 3016 and watch the result in the AREA.view window. This test command does a hardware test of all relevant Nexus signals, independent on the Nexus trace mode. The AREA window delivers information about which signals possibly stack at logical High or LOW or are possibly connected to other Nexus signals. (walking H test).

AVR32 Debugger and NEXUS Trace 13 ©1989-2018 Lauterbach GmbH

Page 14: AVR32 Debugger and NEXUS Trace

FAQ

Debugger

Debugging via VPN

Ref: 0307

The debugger is accessed via Internet/VPN and the performance is very slow. What can be done to improve debug performance?

The main cause for bad debug performance via Internet or VPN are low data throughput and high latency. The ways to improve performance by the debugger are limited:

In PRACTICE scripts, use "SCREEN.OFF" at the beginning of the scriptand "SCREEN.ON" at the end. "SCREEN.OFF" will turn off screenupdates. Please note that if your program stops (e.g. on error) without exe-cuting "SCREEN.OFF", some windows will not be updated.

"SYStem.POLLING SLOW" will set a lower frequency for target statechecks (e.g. power, reset, jtag state). It will take longer for the debugger torecognize that the core stopped on a breakpoint.

"SETUP.URATE 1.s" will set the default update frequency ofData.List/Data.dump/Variable windows to 1 second (the slowest possiblesetting).

prevent unneeded memory accesses using "MAP.UPDATEONCE[address-range]" for RAM and "MAP.CONST [address--range]" forROM/FLASH. Address ranged with "MAP.UPDATEONCE" will read thespecified address range only once after the core stopped at a breakpoint ormanual break. "MAP.CONST" will read the specified address range onlyonce per SYStem.Mode command (e.g. SYStem.Up).

AVR32 Debugger and NEXUS Trace 14 ©1989-2018 Lauterbach GmbH

Page 15: AVR32 Debugger and NEXUS Trace

Setting a Software Breakpoint fails

Ref: 0276

What can be the reasons why setting a software breakpoint fails?

Setting a software breakpoint can fail when the target HW is not able to implement the wanted breakpoint. Possible reasons:

The wanted breakpoint needs special features that are only possible torealize by the trigger unit inside the controller.

Example: Read, write and access (Read/Write) breakpoints ("type" in Break.Set window). Breakpoints with checking in real-time for data-values ("Data"). Breakpoints with special features ("action") like TriggerTrace, TraceEnable, TraceOn/TraceOFF.

TRACE32 can not change the memory.Example: ROM and Flash when no preparation with FLASH.Create, FLASH.TARGET and FLASH.AUTO was made. All type of memory if the memory device is missing the necessary control signals like WriteEnable or settings of registers and SpecialFunctionRegisters (SFR).

Contrary settings in TRACE32.Like: MAP.BOnchip for this memory range. Break.SELect.<breakpoint-type> Onchip (HARD is only available for ICE and FIRE).

RTOS and MMU:If the memory can be changed by Data.Set but the breakpoint doesn't work it might be a problem of using an MMU on target when setting the breakpoint to a symbolic address that is different than the writable and intended memory location.

AVR32 Debugger and NEXUS Trace 15 ©1989-2018 Lauterbach GmbH

Page 16: AVR32 Debugger and NEXUS Trace

NEXUS

Connect a Nexus Probe to a PowerTrace Unit

Ref: 0197

How do I correctly connect a Nexus Probe to a PowerTrace unit?

A Nexus probe has one, two or three ribbon cables for the connection to the PowerTrace unit. The PowerTrace has three connectors which are marked with A, B and C. (C is close to the black heatsink) Nexus probe connectors of newer probes are also marked with A, B and C. Place the appropriate cable into the corresponding connector. For older probes note the following: &bullet; Probes with a single cable: connect the ribbon cable to connector C. &bullet; Probes with two cables: connect the upper cable to connecter C, the second cable underneath to B. &bullet; Probes with three cables: connect the upper cable to connecter C, the second cable underneath to B and the third cable below to connector A. One does not require an additional JTAG dongle!

Incorrect Nexus-POD CPLD Revision

Ref: 0179

What is the reason for "Incorrect Nexus-POD CPLD revision" message?

There are several reasons for the following message: Incorrect Nexus-POD CPLD revision - Please call technical support (refer to AREA) &bullet; A wrong T32xxx.EXE has been executed (e.g. Super10.exe for a Copperhead probe) Just use the right SW. &bullet; The current SW contains a new image for the CPLD on the probe. This reason is very seldom, but it may happen. One have to consider, that it is just a warning and normally one can continue using the debugger. However only for the case, the Area window shows a similar "expected CPLD revision number". It is recommended to contact your next support office. One will get a SW-Tool and some instructions how to fix it. &bullet; The probe is defective. This reason can be recognized if the expected CPLD revision number is totally different from the current CPLD revision number, or even 0x00000 or 0xFFFFF. It is a serious reason and requires to send the probe back for repair. Also contact your local support office first.

AVR32 Debugger and NEXUS Trace 16 ©1989-2018 Lauterbach GmbH

Page 17: AVR32 Debugger and NEXUS Trace

Missing Address Information on Top of the Trace

Ref: 0263

Is there any reason why symbol addresses and names are not displayed from the beginning of the trace?

The Nexus protocol defines that a full address is transferred only occasionally, just in a Branch-Trace-Sync-Message and Data-Trace-Sync-Message. Most of the time only the significant portion of the current address is generated in the device and transferred in a Nexus message. Therefore the address can only be reconstructed and displayed after occurrence of a Sync-Message in the trace memory. A Sync messages is generated automatically after 255 messages latest. A single Nexus message without knowing what had happened before is useless! Look at the T.L /NEXUS , then one will see the location of the DTSM . After that location the address information is visible. A Sync message could be missing on top of the trace in the following cases:

Any time Program is running before trace is in ARM state! Normally if ana-lyzer is armed manually!

In FIFO mode if trace memory overflows.

Selective trace using Watchpoints

Selective trace using CTU

Some other cases.

Nexus Connector Pinout on Target

Ref: 0311

I don't know exactly which signals from MCU must be connected to which

signal on the AUX-port connector.

Must certain signals be crossed ?

Not at all. The pin out one can find in the manual and at our home page, fits the description of Nexus standard from the target point of view. With other words, you have to connect the signals from the device to the appropriate signals with the same name on the connector. You must not take care about signal crossing.

AVR32 Debugger and NEXUS Trace 17 ©1989-2018 Lauterbach GmbH

Page 18: AVR32 Debugger and NEXUS Trace

Nexus-AVR32

AVR32 Trace impacts

Ref: 0372

Which impacts regarding real time behavior must be expected if the Nexus trace is activated?

As long as just program trace is activated and MCKO is set to CPU clock, no speed impacts must be expected. In special cases , just Flowerrors may be visible in the trace list window which may cause flow lost in the trace list. But there is still no speed impact of real time porgram execution. In case of slower MCKO (1/2, 1/4 etc. CPU clock) and in case of data trace is additionally activated, also no speed impacts can be recognized. However the trace contents is possibly not usable due to not sufficient or wrong information from the Nexus cell of the device. To be able to get correct trace information from the device anyway, there is an overrun control register which allows either to generate over flow messages or to avoid nexus FIFO overruns. (Nexus FIFO overruns normally cause unusable trace buffer contents) This mechanism however, may causes real time program execution impacts for the case, the Nexus FIFO threaten to overflow. How much it is depends on the user program and if data-rd and/or data-wr messageging is enabled. (This is not a problem of the debugger, but of the device)

Nexus-AVR32

Breakpoint instruction

Ref: 0376

Is a breakpoint instruction allowed in the code ?

Breakpoint instructions are not allowed in code if a debugger is used for debugging. Without a debugger, a breakpoint instruction is executed as a NOP instruction. In this case, the code will work anyway. If a debugger is involved , program execution will stop at the breakpoint. The user program will not work.

AVR32 Debugger and NEXUS Trace 18 ©1989-2018 Lauterbach GmbH

Page 19: AVR32 Debugger and NEXUS Trace

Nexus-AVR32

Information about AVR32 EVBs

Ref: 0366

Are there modifications of Atmel EVBs for using Nexus trace ?

To be sure that trace signals on the EVB are really released and available for Nexus trace, the system offers a disagnostic command. Just enter DIAG 3016 , the result will be displayed in the Area window. Possibly for the following EVB's , modifications are needed to be able to use Nexus trace : EVK1101 : <BULLET> Check if the Push button SW4 and SW5 are really open. ? (PB3 -> MDO4, PB2 -> MDO3). <BULLET> Check if the pins 1 till 6 of J17 area really open. <BULLET> R32 (0 Ohm) must be removed if U7 is populated. (PB4 is MDO5). <BULLET> EVTI : R33 (0 Ohm ) must be removed if U7 is populated. <BULLET> PB0 and PB1 are connected to the SD-Card Socket. Remove SD-Card! <BULLET> J16 pin 18 must be N/C. <BULLET> PA31 (MDO0) is connected to the temperature sensor. <BULLET> J16 pin 17 must be N/C. <BULLET> Be aware that PA30 (MCKO) is connected to the Photo sensor.

AVR32 Debugger and NEXUS Trace 19 ©1989-2018 Lauterbach GmbH

Page 20: AVR32 Debugger and NEXUS Trace

Trace Extension

The AVR32 family offers NEXUS class 2+ or 3 trace features.

Depending on the debugger configuration (Debug Cable or Nexus Adapter), trace features are available or not. Device internal trace is not supported yet.

AVR32 Debugger and NEXUS Trace 20 ©1989-2018 Lauterbach GmbH

Page 21: AVR32 Debugger and NEXUS Trace

CPU specific SYStem Settings

SYStem.CONFIG.state Display target configuration

Opens the SYStem.CONFIG.state window, where you can view and modify most of the target configuration settings. The configuration settings tell the debugger how to communicate with the chip on the target board and how to access the on-chip debug and trace facilities in order to accomplish the debugger’s operations.

Alternatively, you can modify the target configuration settings via the TRACE32 command line with the SYStem.CONFIG commands. Note that the command line provides additional SYStem.CONFIG commands for settings that are not included in the SYStem.CONFIG.state window.

Format: SYStem.CONFIG.state [/<tab>]

<tab>: DebugPort | Jtag

<tab> Opens the SYStem.CONFIG.state window on the specified tab. For tab descriptions, refer to the tab descriptions below.

DebugPort Informs the debugger about the debug connector type and the communication protocol it shall use.

Jtag Informs the debugger about the position of the Test Access Ports (TAP) in the JTAG chain which the debugger needs to talk to in order to access the debug and trace facilities on the chip.

AVR32 Debugger and NEXUS Trace 21 ©1989-2018 Lauterbach GmbH

Page 22: AVR32 Debugger and NEXUS Trace

SYStem.CONFIG Configure debugger according to target topology

If there is more than one TAP controller in the JTAG chain, the chain must be defined to be able to access the right TAP controller.

The four parameters IRPRE, IRPOST, DRPRE, DRPOST are required to inform the debugger of the TAP controller position in the JTAG chain if there is more than one core in the JTAG chain. The information is required before the debugger can be activated, e.g., by a SYStem.Mode.Attach.

TriState has to be used if several debuggers are connected to a common JTAG port at the same time. TAPState and TCKLevel define the TAP state and TCK level which is selected when the debugger switches to tristate mode. Please note: nTRST must have a pull-up resistor on the target, TCK can have a pull-up or pull-down resistor, other trigger inputs need to be kept in inactive state.

Format: SYStem.CONFIG <parameter>

<parameter>: IRPRE <bits>IRPOST<bits>DRPRE <bits>DRPOST <bits>IRLength <bits>MultiCoreLocal [ON | OFF]CoreNumber <number>TriState [ON | OFF]Slave [ON | OFF]TAPState <state>TCKLevel <level>

DRPRE (default: 0) <number> of TAPs in the JTAG chain between the core of interest and the TDO signal of the debugger. If each core in the system contributes only one TAP to the JTAG chain, DRPRE is the number of cores between the core of interest and the TDO signal of the debugger.

DRPOST (default: 0) <number> of TAPs in the JTAG chain between the TDI signal of the debugger and the core of interest. If each core in the system contributes only one TAP to the JTAG chain, DRPOST is the number of cores between the TDI signal of the debugger and the core of interest.

IRPRE (default: 0) <number> of instruction register bits in the JTAG chain between the core of interest and the TDO signal of the debugger. This is the sum of the instruction register length of all TAPs between the core of interest and the TDO signal of the debugger.

IRPOST (default: 0) <number> of instruction register bits in the JTAG chain between the TDI signal and the core of interest. This is the sum of the instruction register lengths of all TAPs between the TDI signal of the debugger and the core of interest. See also Daisy-Chain Example.

AVR32 Debugger and NEXUS Trace 22 ©1989-2018 Lauterbach GmbH

Page 23: AVR32 Debugger and NEXUS Trace

IRLength Size of the JTAG instruction register in <bits>. Useful in case the TAP of the APS3 IP is under developement and differs from the default size. (default: 8)

MultiCoreLocal For multicore systems this option defines whether cores are organized in a shared-memory or local-memory manner. (default: OFF)

CoreNumber <number> of cores in a shared-memory or local-memory multicore system. (default: 1)

TriState onoff The debugger switches to tristate mode after each debug port access. If several debuggers share the same debug port, this option is required. Then other debuggers can access the port. (default: OFF)

Slave [ON | OFF] Defines the master in a multicore chip. Only one core can be the master of the chip reset, the TAP reset and the chip initialization features. All other cores are slave cores. (default: OFF)

TAPState This is the state of the TAP controller when the debugger switches to tristate mode. All states of the JTAG TAP controller are selectable. (default: 7 = Select-DR-Scan)

TCKLevel [0 | 1] Level of TCK signal when all debuggers are tristated. (default: 0)

AVR32 Debugger and NEXUS Trace 23 ©1989-2018 Lauterbach GmbH

Page 24: AVR32 Debugger and NEXUS Trace

Daisy-Chain Example

Daisy chains can be configured using a PRACTICE script (*.cmm) or the SYStem.CONFIG.state window.

Example: This script explains how to obtain the individual IR and DR values for the above daisy chain.

SYStem.CONFIG.state /Jtag ; optional: open the window

SYStem.CONFIG IRPRE 6. ; IRPRE: There is only one TAP. ; So type just the IR bits of TAP4, i.e. 6

SYStem.CONFIG IRPOST 12. ; IRPOST: Add up the IR bits of TAP1, TAP2 ; and TAP3, i.e. 4 + 3 + 5 = 12

SYStem.CONFIG DRPRE 1. ; DRPRE: There is only one TAP which is ; in BYPASS mode. ; So type just the DR of TAP4, i.e. 1

SYStem.CONFIG DRPOST 3. ; DRPOST: Add up one DR bit per TAP which ; is in BYPASS mode, i.e. 1 + 1 + 1 = 3 ; This completes the configuration.

NOTE: In many cases, the number of TAPs equals the number of cores. But in many other cases, additional TAPs have to be taken into account; for example, the TAP of an FPGA or the TAP for boundary scan.

Core

IRPOST IRPRE

4

1

TAP1

IR

DR

3

1

TAP2

IR

DR

5

1

TAP3

IR

DR

6

1

TAP4

IR

DRTDI TDO

DRPOST DRPRE

IR: Instruction register length DR: Data register length Core: The core you want to debug

AVR32 Debugger and NEXUS Trace 24 ©1989-2018 Lauterbach GmbH

Page 25: AVR32 Debugger and NEXUS Trace

TapStates

0 Exit2-DR

1 Exit1-DR

2 Shift-DR

3 Pause-DR

4 Select-IR-Scan

5 Update-DR

6 Capture-DR

7 Select-DR-Scan

8 Exit2-IR

9 Exit1-IR

10 Shift-IR

11 Pause-IR

12 Run-Test/Idle

13 Update-IR

14 Capture-IR

15 Test-Logic-Reset

AVR32 Debugger and NEXUS Trace 25 ©1989-2018 Lauterbach GmbH

Page 26: AVR32 Debugger and NEXUS Trace

SYStem.CPU Select the used CPU

Default: UC3XXX.

Selects the processor type. All of the Atmel CPUs with AVR32 cores are supported.

SYStem.CpuAccess Run-time memory access (intrusive)

Default: Denied.

Format: SYStem.CPU <cpu>

<cpu>: UC3A0512 | UC3A0256 | UC3A0128 | UC3A1512 | UC3A1256 | UC3A1128 | UC3B0512 | UC3B0256 | UC3B0128 | UC3B064 | UC3B1512 | UC3B1256 | UC3B1128 | UC3B164 | UC3L064 | UC3L032 | UC3L016 | UC3A3256S | UC3A3256 | UC3A3128S | UC3A3128 | UC3A364S | UC3A364 | UC3A4256S | UC3A4256 | UC3A4128S | UC3A4128 | UC3A464S | UC3A464 | UC3C064 | UC3C0128 | UC3C0256 | UC3C0512 | UC3C164 | UC3C1128 | UC3C1256 | UC3C1512 | UC3C264 | UC3C2128 | UC3C2256 | UC3C2512 | UC3D032 | UC3D064 | UC3D0128 | UC3D132 | UC3D164 | UC3D1128 | UC3D1256

Format: SYStem.CpuAccess Enable | Denied | Nonstop

Enable Allow intrusive run-time memory access.In order to perform a memory read or write while the CPU is executing a program, the debugger stops the program execution shortly. Each short stop takes 1 … 100 ms depending on the speed of the debug interface and on the number of the read/write accesses required.A red S in the state line of the TRACE32 screen indicates this intrusive behavior of the debugger.

AVR32 Debugger and NEXUS Trace 26 ©1989-2018 Lauterbach GmbH

Page 27: AVR32 Debugger and NEXUS Trace

Denied Do not allow intrusive run-time memory access.

Nonstop Lock all features of the debugger that affect the run-time behavior.Nonstop reduces the functionality of the debugger to:• run-time access to memory and variables• trace displayThe debugger inhibits the following:• to stop the program execution• all features of the debugger that are intrusive (e.g. action Spot for

breakpoints, performance analysis via StopAndGo mode, condi-tional breakpoints etc.)

AVR32 Debugger and NEXUS Trace 27 ©1989-2018 Lauterbach GmbH

Page 28: AVR32 Debugger and NEXUS Trace

SYStem.JtagClock Define JTAG clock

Default frequency: 1 MHz.

Selects the JTAG port frequency (TCK) used by the debugger to communicate with the processor. The frequency affects e.g. the download speed. It could be required to reduce the JTAG frequency if there are buffers, additional loads or high capacities on the JTAG lines or if VTREF is very low. A very high frequency will not work on all systems and will result in an erroneous data transfer. Therefore we recommend to use the default setting if possible.

SYStem.MemAccess Real-time memory access (non-intrusive)

Default: Denied.

Format: SYStem.JtagClock <frequency>SYStem.BdmClock <frequency> (deprecated)

<frequency>: 4kHz …100 MHz 1250000. | 2500000. | 5000000. | 10000000. (on obsolete ICD hardware)

<frequency> The debugger cannot select all frequencies accurately. It chooses the next possible frequency (i.e. 109 KHz will be converted to 125 KHz).

Besides a decimal number like “100000.” also short forms like “10kHz” or “15MHz” can be used. The short forms imply a decimal value, although no “.” is used.

Format: SYStem.MemAccess CPU | Denied

Nexus Non-intrusive memory access during program execution is enabled. Only run-time memory classes can be accessed.

CPU This option is not available at the moment.

Denied Real-time memory access during program execution to target is disabled.

AVR32 Debugger and NEXUS Trace 28 ©1989-2018 Lauterbach GmbH

Page 29: AVR32 Debugger and NEXUS Trace

SYStem.Mode Establish the communication with the target

SYStem.LOCK Lock and tristate the debug port

Default: OFF

If the system is locked, no access to the debug port will be performed by the debugger. While locked, the debug connector of the debugger is tristated. The main intention of the lock command is to give debug access to another tool.

SYStem.Option.IMASKASM Disable interrupts while single stepping

Default: OFF.

If enabled, the interrupt enable flag of the EFLAGS register will be cleared during assembler single-step operations. After the single step, the interrupt enable flag is restored to the value it had before the step. It is turned on to make sure that no interrupt routine is serviced between break and go states.

Format: SYStem.Mode <mode>

<mode>: DownGoUp

Down Disables the debugger (default). The state of the CPU remains unchanged.

Go Resets the target and starts execution.

Up Resets the target and stops the CPU at the reset vector.

StandBy Not available for AVR32.

Format: SYStem.LOCK [ON | OFF]

Format: SYStem.Option IMASKASM [ON | OFF]

AVR32 Debugger and NEXUS Trace 29 ©1989-2018 Lauterbach GmbH

Page 30: AVR32 Debugger and NEXUS Trace

SYStem.Option.IMASKHLL Disable interrupts while HLL single stepping

Default: OFF.

If enabled, the interrupt enable flag of the EFLAGS register will be cleared during HLL single-step operations. After the single step, the interrupt enable flag is restored to the value it had before the step.

SYStem.Option.MPU Disable MPU during memory access

Default: OFF.

The AVR32 architecture specifies an optional MPU unit which can restrict memory accesses. It’s not possible to read memory when the MPU blocks it. If this option is turned on, the MPU is first turned off, then the memory is read, and the MPU is turned on again. This way, every memory address is accessible.

Format: SYStem.Option IMASKHLL [ON | OFF]

Format: SYStem.Option MPU [ON | OFF]

AVR32 Debugger and NEXUS Trace 30 ©1989-2018 Lauterbach GmbH

Page 31: AVR32 Debugger and NEXUS Trace

SYStem.Option AUTO Auto JTAG setting

Default: ON.

Calculates the maximum available JTAG frequency according to the PLL settings and sets up the JTAG frequency automatically. The calculation and setting of the JTAG frequency is done at every Go / Break command.

SYStem.EraseChip Erases the Flash and the EEprom

Erases the Flash memory. It is available to the user only in the SYStem.Down mode.

Format: SYStem.Option AUTO [ON | OFF]

Format: SYStem.EraseChip

AVR32 Debugger and NEXUS Trace 31 ©1989-2018 Lauterbach GmbH

Page 32: AVR32 Debugger and NEXUS Trace

CPU specific TrOnchip Commands

TrOnchip.state Display on-chip trigger window

Opens the TrOnchip.state window.

TrOnchip.CONVert Adjust range breakpoint in on-chip resource

The on-chip breakpoints can only cover specific ranges. If a range cannot be programmed into the breakpoint, it will automatically be converted into a single address breakpoint when this option is active. This is the default. Otherwise an error message is generated.

TrOnchip.VarCONVert Adjust complex breakpoint in on-chip resource

The on-chip breakpoints can only cover specific ranges. If you want to set a marker or breakpoint to a complex variable, the on-chip break resources of the CPU may be not powerful enough to cover the whole structure. If the option TrOnchip.VarCONVert is set to ON, the breakpoint will automatically be converted into a single address breakpoint. This is the default setting. Otherwise an error message is generated.

Format: TrOnchip.state

Format: TrOnchip.CONVert [ON | OFF]

TrOnchip.CONVert ONBreak.Set 0x1000--0x17ff /WriteBreak.Set 0x1001--0x17ff /Write…

TrOnchip.CONVert OFFBreak.Set 0x1000--0x17ff /WriteBreak.Set 0x1001--0x17ff /Write

; sets breakpoint at range; 1000--17ff sets single breakpoint; at address 1001

; sets breakpoint at range; 1000--17ff; gives an error message

Format: TrOnchip.VarCONVert [ON | OFF]

AVR32 Debugger and NEXUS Trace 32 ©1989-2018 Lauterbach GmbH

Page 33: AVR32 Debugger and NEXUS Trace

TrOnchip.RESet Set on-chip trigger to default state

Sets the TrOnchip settings and trigger module to the default settings.

TrOnchip EVTI Allow the EVTI signal to stop the program execution

Example: Sample all write accesses to the variable flags[3] to the trace and all cycles from func5.

Format: TrOnchip.RESet

Format: TrOnchip EVTI [ON | OFF]

ON Allow the EVTI signal to stop the program execution (faster).

OFF The program execution is stopped by sending a break sequence via NEXUS.(takes a bit longer)

; Set a program breakpoint to the entry of func5 and select the action; TraceONBreak.Set func5 /Program /TraceON

; Set a program breakpoint to the exit of func5 and select the action; TraceOFFBreak.Set Var.END(func5)-1 /Program /TraceOFF

; Set a write breakpoint to flags[3] and select the action TraceEnableVar.Break.Set flags[3] /Write /TraceEnable

AVR32 Debugger and NEXUS Trace 33 ©1989-2018 Lauterbach GmbH

Page 34: AVR32 Debugger and NEXUS Trace

TrOnchip EVTO Output sync signals on EVT0

The output signal EVTO is available at the Nexus probe connector pin OX0.

Format: TrOnchip EVTO [ON | BREAK | OFF]

ON Generates a signal if a Watch/Breakpoint has been passed.

BREAK Generates a signal if the CPT enters Debug mode.

OFF No sync signal is generated on EVTO pin. (Default)

AVR32 Debugger and NEXUS Trace 34 ©1989-2018 Lauterbach GmbH

Page 35: AVR32 Debugger and NEXUS Trace

CPU specific Nexus Commands

NEXUS.BTM Branch trace mode

Default: ON.

If turned on, nexus branch messages are generated each time a jump, return, branch, etc. command is executed. This option must always be turned on if the user wants to reconstruct the program flow.

NEXUS.DDR Use the DDR transmission

Default: OFF.

The clock frequency of the nexus port is halved and the trace data are sent on both falling and rising edge of the trace clock.

NEXUS.DTM Data trace mode

Controls the NEXUS Data Trace Messages.

Default: Data Trace Messages are disabled (OFF).

Format: NEXUS.BTM [ON | OFF]

Format: NEXUS.DDR [ON | OFF]

Format: NEXUS.DTM <mode>

<mode>: ON | OFFReadWriteReadWrite

OFF No Data Trace Messages are generated.

Write Data write accesses are output on the trace.Watchpoints and Trace Filters are used to control the data trace.

AVR32 Debugger and NEXUS Trace 35 ©1989-2018 Lauterbach GmbH

Page 36: AVR32 Debugger and NEXUS Trace

NEXUS.OTM Ownership trace messages

Default: OFF.

Ownership Trace Messages are created when the OTM is on.

NEXUS.PinConfig Override the nexus port pin mapping

Default: 0.

Overrides the default pin mapping of the nexus(aux) port. It allows the user to choose one of the 4 pin configurations as the trace data output.

NEXUS.PortMode Change the nexus port clock frequency

Default: 1/1.

Adjusts the nexus port clock frequency by dividing the CPU clock by 1, 2, 4 or 8.

Read Data read accesses are output on the trace.Watchpoints and Trace Filters are used to control the data trace.

ReadWrite Data read and write accesses are output on the trace.Watchpoints and Trace Filters are used to control the data trace.

Format: NEXUS.OTM [ON | OFF]

Format: NEXUS.PinConfig [0 | 1 | 2 | 3]

Format: NEXUS.PortMode [1/1 | 1/2 | 1/4 | 1/8]

AVR32 Debugger and NEXUS Trace 36 ©1989-2018 Lauterbach GmbH

Page 37: AVR32 Debugger and NEXUS Trace

NEXUS.Spen<messagetype> Avoid message overrun

NEXUS.SpenDTM stalls the CPU to avoid the data trace message overrun if the FIFO is full. Default: OFF.

NEXUS.SpenPTM stalls the CPU to avoid the program trace message overrun if the FIFO is full. Default: ON.

NEXUS.SQA Synchronize trace by using full address

Default: OFF.

Forces the CPU to generate trace messages with full address which allows the TRACE32 to quickly calculate the program counter. This option should be turned on if the user plans to connect/disconnect the Nexus Adapter during run-time. The side-effect of this option is that the trace FIFO on CPU is filled faster.

NEXUS.WTM Watch trace messages

Default: OFF.

Watch Trace Messages are output on the nexus port when the WTM is on.

Format: NEXUS.SpenDTM [ON | OFF]NEXUS.SpenPTM [ON | OFF]

Format: NEXUS.SQA [ON | OFF]

Format: NEXUS.WTM [ON | OFF]

AVR32 Debugger and NEXUS Trace 37 ©1989-2018 Lauterbach GmbH

Page 38: AVR32 Debugger and NEXUS Trace

Breakpoints

Software breakpoints

If a software breakpoint is set, the corresponding program code is replaced by a break instruction. As soon as the program stops, the beak instruction is replaced with the original code. Thus software breakpoints can only be applied to program code residing in a RAM.

There is no restriction to the number of software breakpoints.

On-chip breakpoints for instructions

The AVR32 architecture provides six on-chip breakpoint registers for the program counter. The on-chip breakpoints are generally used to stop the program execution in ROM/Flash area. These on-chip breakpoint registers can also be used to define an address range where the program should stop. In order to define a range, two on-chip breakpoint registers are used; one for the address and another one to define the mask bits which means that only 3 breakpoint ranges can be defined using the on-chip breakpoint registers.

On-chip breakpoints for data

Data breakpoints are used to analyze the read and write accesses to global variables. The data breakpoints can be triggered with respect to the data address or access type, i.e. read, write or both, or the data value. There are a total of 2 on-chip data breakpoint registers available to the user.

In case of an on-chip data breakpoint, every load and store instruction is checked with respect to the breakpoint address, access type and the value. The data breakpoints are especially useful to find out when a global variable is written with a certain value. It is not possible to implement a similar breakpoint in software without affecting the real-time behavior of the system. Since the load and store instructions work on RAM, data breakpoints always point to addresses on RAM.

Example for Breakpoints

Some examples of software and hardware (i.e. on-chip) breakpoints are given below with the following assumption about the memory map.

• FLASH address range from 0x1000--0x1fff

• RAM address range from 0x000--0x0fff

AVR32 Debugger and NEXUS Trace 38 ©1989-2018 Lauterbach GmbH

Page 39: AVR32 Debugger and NEXUS Trace

In the first example, the breakpoint address lies inside the RAM area, a software breakpoint is automatically set. The option /Program is the default option and not required but displayed here for clarification.

If the breakpoint address lies within the Flash address range, it is automatically recognized and a hardware breakpoint is set.

This example specifies a data breakpoint which triggers when a read attempt is made at the address 0x0110.

Similarly, the break command below triggers when a write attempt is made at the address 0x0110.

This last example demonstrates a data breakpoint trigger mechanism for both read and write attempts.

Break.Set 0x0110 /Program ; Software breakpoint

Break.Set 0x1110 /Program ; Hardware breakpoint

Break.Set 0x0110 /Read; Data breakpoint for read access

Break.Set 0x0110 /Write; Data breakpoint for write access

Break.Set 0x0110 /ReadWrite; Data breakpoint for read and write accesses

AVR32 Debugger and NEXUS Trace 39 ©1989-2018 Lauterbach GmbH

Page 40: AVR32 Debugger and NEXUS Trace

Filter and Trigger for the NEXUS Trace

Filter and Trigger provided by the Processor (Simple Trigger Unit - STU)

The internal watchpoints of the AVR32 can be used to control trace message output. The following actions for the NEXUS trace are provided by the Break.Set command:

Actions for the Trace

TraceON Switch the sampling to the trace ON on the specified event.

TraceOFF Switch the sampling to the trace OFF on the specified event.

TraceTrigger Stop the sampling to the trace on the specified event. A trigger delay is possible.

BusTrigger Generate a 100 ns high pulse on the trigger connector of the PowerTrace on the defined trigger event.

BusCount Use the TRACE32 counter to analyze the trigger event.

WATCH Set a watchpoint on the event. The CPU will trigger the EVTO pin if the event occurs.

SPOT Stops user program, updates all windows on the screen and continues user program execution

AVR32 Debugger and NEXUS Trace 40 ©1989-2018 Lauterbach GmbH

Page 41: AVR32 Debugger and NEXUS Trace

Trigger

A bidirectional trigger system allows the following two events:

• Trigger an external system (e.g. logic analyzer) if the program execution is stopped.

• Stop the program execution if an external trigger is asserted.

For more information refer to the TrBus command.

There is further document STU-AVR32.PDF which illustrates the Simple Trigger Unit (STU). The STU is just available for the Nexus probe, not for the JTAG dongle.

Runtime Measurement

The command RunTime allows run time measurement based on polling the CPU run status by software or by hardware. Therefore the result can be about a few milliseconds more than the real value.

As an idea one can expect about 6 ms more in case of the JTAG Dongle (RT start stop just SW controlled)and about 1.2 us in case of the Nexus probe.

Var.Break.Set flags[3] /Write /TraceEnable

; NEXUS outputs only trace; messages; for write accesses to flags[3]

Var.Break.Set flags /Write /TraceData

; NEXUS outputs the complete; program flow and all write; accesses to the variable flags

Break.Set func2 /Program /TraceONBreak.Set Var.END(func2)-3 /TraceOFF

; NEXUS switches the trace; output to ON at the entry to; func2 and switches the trace; output to OFF at the exit of; func2

AVR32 Debugger and NEXUS Trace 41 ©1989-2018 Lauterbach GmbH

Page 42: AVR32 Debugger and NEXUS Trace

Other Useful Trace Commands

Trace.TERMination ON | OFF Use trace line termination of NEXUS adapter.

Trace.TestFocus Test Trace port recording.

AVR32 Debugger and NEXUS Trace 42 ©1989-2018 Lauterbach GmbH

Page 43: AVR32 Debugger and NEXUS Trace

Memory Classes

The following memory access classes are available:

To access a memory class, write the class in front of the address. For example, use ED to access the data memory during run-time.

The memory class SR is used to denote the special system registers and available only during a CPU break.

Since the AVR32 architecture uses the same address range for both data and instructions, the memory access classes D and P in fact are same. So the following two examples return the same results.

Access Class Description

D Data

P Program

SR System Registers

ED Run-time data memory access (see SYStem.MemAccess)

EP Run-time program memory access (see SYStem.MemAccess)

Data.dump ED:0x00

Data.dump SR:0x00

Data.dump D:0x100

Data.dump P:0x100

AVR32 Debugger and NEXUS Trace 43 ©1989-2018 Lauterbach GmbH

Page 44: AVR32 Debugger and NEXUS Trace

Programming the On-chip FLASH of the AVR32

Some example PRACTICE scripts for programming the on-chip FLASH of the AVR32 can be found in the TRACE32 demo folder ~~/demo/avr32/flash/*.cmm, where * stands for the script file name, e.g. at32uc3a.cmm.

Please be aware that these are just example scripts. The scripts have to be adapted to your memory layout. The FLASH programming algorithm used is based on the FLASH library provided by Atmel.

AVR32 Debugger and NEXUS Trace 44 ©1989-2018 Lauterbach GmbH

Page 45: AVR32 Debugger and NEXUS Trace

Special Hints, Restrictions, and Known Problems

Hints:

• JTAG/NEXUS: After startup, OSCILLATOR0 will automatically be selected as clock source of the device. This is a difference to normal startup without the debugger.The command DIAG 3018 0/1 allows to disable/enable OSCILL0 that feature permanently for a debug session.

Restrictions:

• JTAG: Runtime counter causes about 6 ms mismatch.

Known Problems:

• JTAG/NEXUS: Help system not available yet

• NEXUS: STU function DE-Pulse not implemented yet

• NEXUS: EVTI trigger working, but “Warning: CPU already in *Break* mode !” The warning can be ignored.

• NEXUS: Testfocus not implemented yet. (User DIAG 3016 meanwhile)

• NEXUS: SQA mode delivers Flowerror during trace list.

• NEXUS: If Data Trace is activated, data access messages can occasionally not yet properly be displayed, related to the corresponding code.

• JTAG/NEXUS: In-line assembler is not implemented yet.

All problems will be fixed in one of the next SW versions without notice!

AVR32 Debugger and NEXUS Trace 45 ©1989-2018 Lauterbach GmbH

Page 46: AVR32 Debugger and NEXUS Trace

Connectors

Debug Connector

Mechanical Description of the 10-pin Debug CableThis connector is defined by Atmel, and we recommend this connector for all future designs.

Technical Data

tbd.

Signal Pin Pin SignalTCK 1 2 GNDTDO 3 4 VCCTMS 5 6 RST-N/C 7 8 N/CTDI 9 10 GND

AVR32 Debugger and NEXUS Trace 46 ©1989-2018 Lauterbach GmbH

Page 47: AVR32 Debugger and NEXUS Trace

NEXUS Connector

Mechanical Description of the MICTOR38 Debug Connector

This connector is defined by IEEE ISTO NEXUX5001, and we recommend this connector for all future designs.We also recommend to leave the unused signals open.

Signal Pin Pin Signal

MDO12 1 2 MDO13MDO14 3 4 MDO15MDO09 5 6 (CLKOUT)

N/C 7 8 MDO08RSTIN- 9 10 EVTI-

TDO 11 12 VTREFMDO10 13 14 RDY-

TCK 15 16 MDO07TMS 17 18 MDO06TDI 19 20 MDO05

JCOMP 21 22 MDO04MDO11 23 24 MDO03

RESETOUT 25 26 MDO02TDET/WDTDIS 27 28 MDO01

BGRNT 29 30 MDO00N/C 31 32 EVTO-N/C 33 34 MCKO

BREQ 35 36 MSEO1-N/C 37 38 MSEO0-

AVR32 Debugger and NEXUS Trace 47 ©1989-2018 Lauterbach GmbH

Page 48: AVR32 Debugger and NEXUS Trace

Electrical Description of the 38-pin Mictor Debug Cable

Signal Load and Impedance

Important: The load values below are giving just an idea about the signals load and driver impedance (no commitment)

Signal

Direction (for the probe)

ResistanceCapacity Remark

VREF (VTREF) Input 50 KOhm PD-GND

RSTIN InputOutput

10 pF22 Ohm S,10 KOhm VTAR

OD

RSTOUT (RESETOUT) Input 10 pF *

CLKOUT Input 100 Ohm VTT, 10 pF

*

TCK Output 22 Ohm S TS

RTCK Input 100 Ohm VTT10 pF

*

TRST (JCOMP) Output 22 Ohm S TS

DBACK (RDY) Input RC *

DBREQ Output 22 Ohm S *,TS

TMS InputOutput

22 Ohm S

cJTAGTS

TDI Output 22 Ohm S TS

TDO Input RC cJTAG

MCKO Input 100 Ohm VTT,10 pF

MSEO0 Input 100 Ohm VTT, 10 pF

MSEO1 Input 100 Ohm VTT, 10 pF

MDO00 Input 100 Ohm VTT, 10 pF

MDO01 Input 100 Ohm VTT, 10 pF

MDO02 Input 100 Ohm VTT, 10 pF

AVR32 Debugger and NEXUS Trace 48 ©1989-2018 Lauterbach GmbH

Page 49: AVR32 Debugger and NEXUS Trace

* Not relevant vor AVR32, leave open.

VTT: Connected to termination voltage. Can be 0.25 .. 3 V or disabled (tristate)

VTAR:Connected to a voltage equivalent to the voltage at VTREF pin (target voltage).

S: Serial resistor

OD: Open drain output.

TS: Can be tristated.

RC: 100 Ohm - 100 pF in series, one end to signal, other end to GND.

MDO03 Input 100 Ohm VTT, 10 pF

MDO04 Input 100 Ohm VTT, 10 pF

MDO05 Input 100 Ohm VTT, 10 pF

MDO06 Input 100 Ohm VTT, 10 pF

*

MDO07 Input 100 Ohm VTT, 10 pF

*

MDO08 Input 100 Ohm VTT, 10 pF

*

MDO09 Input 100 Ohm VTT, 10 pF

*

MDO10 Input 100 Ohm VTT, 10 pF

*

MDO11 Input 100 Ohm VTT, 10 pF

*

MDO12 Input 100 Ohm VTT, 10 pF

*

MDO13 Input 100 Ohm VTT, 10 pF

*

MDO14 Input 100 Ohm VTT,10 pF

*

MDO15 Input 100 Ohm VTT, 10 pF

*

EVTI Output 22 Ohm S TS

EVTO Input 100 Ohm VTT, 10 pF

WDTE InputOutput

10 pF 22 Ohm S *,TS

ARBREQ Output 22 Ohm S *,TS

ARBGRANT Input 10 pF *

AVR32 Debugger and NEXUS Trace 49 ©1989-2018 Lauterbach GmbH

Page 50: AVR32 Debugger and NEXUS Trace

Mechanical Dimension

PIN1

TOP VIEW

SIDE VIEW

ALL DIMENSIONS IN 1/1000 INCH 275

475675

3950

1400

400

152

5

2475

CABLE

LA

UT

ER

BA

CH

NE

XU

S A

DA

PT

ER

AVR32 Debugger and NEXUS Trace 50 ©1989-2018 Lauterbach GmbH

Page 51: AVR32 Debugger and NEXUS Trace

Support

Available Tools

Debugger

CP

U

ICE

FIR

E

ICD

DE

BU

G

ICD

MO

NIT

OR

ICD

TR

AC

E

PO

WE

RIN

TE

GR

ATO

R

INS

TR

UC

TIO

NS

IMU

LA

TOR

AT32UC3A0128 YESAT32UC3A0256 YESAT32UC3A0512 YESAT32UC3A1128 YESAT32UC3A1256 YESAT32UC3A1512 YESAT32UC3A3128 YESAT32UC3A3128S YESAT32UC3A3256 YESAT32UC3A3256S YESAT32UC3A364 YESAT32UC3A364S YESAT32UC3A4128 YESAT32UC3A4128S YESAT32UC3A4256 YESAT32UC3A4256S YESAT32UC3A464 YESAT32UC3A464S YESAT32UC3B0128 YESAT32UC3B0256 YESAT32UC3B0512 YESAT32UC3B064 YESAT32UC3B1128 YESAT32UC3B1256 YESAT32UC3B1512 YESAT32UC3B164 YESAT32UC3C0128C YESAT32UC3C0256C YESAT32UC3C0512C YESAT32UC3C064C YESAT32UC3C1128C YESAT32UC3C1256C YES

AVR32 Debugger and NEXUS Trace 51 ©1989-2018 Lauterbach GmbH

Page 52: AVR32 Debugger and NEXUS Trace

NEXUS

Compilers

Realtime Operating System

AT32UC3C1512C YESAT32UC3C164C YESAT32UC3C2128C YESAT32UC3C2256C YESAT32UC3C2512C YESAT32UC3C264C YESAT32UC3L016 YESAT32UC3L032 YESAT32UC3L064 YES

Language Compiler Company Option Comment

C/C++ GNU Free Software Foundation, Inc.

AIF

C/C++ ICCAVR32 IAR Systems AB ELF/DWARF

CP

U

ICE

FIR

E

ICD

DE

BU

G

ICD

MO

NIT

OR

ICD

TR

AC

E

PO

WE

RIN

TE

GR

ATO

R

INS

TR

UC

TIO

NS

IMU

LA

TOR

AVR32 Debugger and NEXUS Trace 52 ©1989-2018 Lauterbach GmbH

Page 53: AVR32 Debugger and NEXUS Trace

3rd-Party Tool Integrations

CPU Tool Company Host

WINDOWS CE PLATF. BUILDER

- Windows

CODE::BLOCKS - -C++TEST - WindowsADENEO -X-TOOLS / X32 blue river software GmbH WindowsCODEWRIGHT Borland Software

CorporationWindows

CODE CONFIDENCE TOOLS

Code Confidence Ltd Windows

CODE CONFIDENCE TOOLS

Code Confidence Ltd Linux

EASYCODE EASYCODE GmbH WindowsECLIPSE Eclipse Foundation, Inc WindowsCHRONVIEW Inchron GmbH WindowsLDRA TOOL SUITE LDRA Technology, Inc. WindowsUML DEBUGGER LieberLieber Software

GmbHWindows

SIMULINK The MathWorks Inc. WindowsATTOL TOOLS MicroMax Inc. WindowsVISUAL BASIC INTERFACE

Microsoft Corporation Windows

LABVIEW NATIONAL INSTRUMENTS Corporation

Windows

TPT PikeTec GmbH WindowsCANTATA QA Systems Ltd WindowsRAPITIME Rapita Systems Ltd. WindowsRHAPSODY IN MICROC IBM Corp. WindowsRHAPSODY IN C++ IBM Corp. WindowsDA-C RistanCASE WindowsTRACEANALYZER Symtavision GmbH WindowsECU-TEST TraceTronic GmbH WindowsUNDODB Undo Software LinuxTA INSPECTOR Vector WindowsVECTORCAST UNIT TESTING

Vector Software Windows

VECTORCAST CODE COVERAGE

Vector Software Windows

AVR32 Debugger and NEXUS Trace 53 ©1989-2018 Lauterbach GmbH

Page 54: AVR32 Debugger and NEXUS Trace

Products

Product Information

Debugger

NEXUS

OrderNo Code Text

LA-3779 DEBUG-AVR32

JTAG Debugger for AVR32 (ICD)supports AVR32 cores (32-bit)includes software for Windows, Linux and MacOSXrequires PowerDebug Moduledebug cable with 10 pin connector

LA-3779A DEBUG-AVR32-A

JTAG Debugger License for AVR32 Add.supports AVR32please add the serial number of the base debugcable to your order

OrderNo Code Text

LA-7645 NEXUS-AVR32-AF

NEXUS Debugger/Trace for AVR32 AutoFocusAdapter for NEXUS on AVR32(up to 16 bit MDO, up to 2 bit MSEO)up to 200 MBit/sPort Voltage 1.0 V .. 5.0 VNEXUS probe provides 76 pin mictor connectorrequires LA-7631 for Mictor 38 on targetincludes software for Windows, Linux and MacOSXonly with PowerTrace Ethernet 256MB/512MBor PowerTrace PXplease contact Lauterbach if the serial number ofyour PowerTrace is lower than E03010003982

LA-7645A NEXUS-AVR32-AF-A

Debug/Trace Lic. for AVR32 NEXUS AutoFocusSupports debug/trace for NEXUSAVR32applied to a NEXUS Autofocus preprocessor

LA-7631 CONV-MIC38-GENERIC

Conv. Mictor76 to Mictor38 (NEXUS AF)Converter from Mictor76 to Mictor38 for:LA-7630 (NEXUS Debugger/Trace for MPC5xxx AutoFocus)LA-7635 (NEXUS Debugger/Trace for MAC71xx AutoFocus)LA-7645 (NEXUS Debugger/Trace for AVR32 AutoFocus)

AVR32 Debugger and NEXUS Trace 54 ©1989-2018 Lauterbach GmbH

Page 55: AVR32 Debugger and NEXUS Trace

Order Information

Debugger

NEXUS

Order No. Code Text

LA-3779 DEBUG-AVR32 JTAG Debugger for AVR32 (ICD)LA-3779A DEBUG-AVR32-A JTAG Debugger License for AVR32 Add.

Additional OptionsLA-2704A JTAG-AVR8-A JTAG Debugger License for AVR8 Add.

Order No. Code Text

LA-7645 NEXUS-AVR32-AF NEXUS Debugger/Trace for AVR32 AutoFocusLA-7645A NEXUS-AVR32-AF-A Debug/Trace Lic. for AVR32 NEXUS AutoFocusLA-7631 CONV-MIC38-GENERIC Conv. Mictor76 to Mictor38 (NEXUS AF)

AVR32 Debugger and NEXUS Trace 55 ©1989-2018 Lauterbach GmbH