Microchip Technology Incorporated · NASDAQ:MCHP
Microchip Technology — Technical Presentation (August 2019)
32 slides from Microchip Technology's technical presentation, Aug 1, 2019
Slide 1: First Thursdays
First Thursdays May 2 - Webinar 1: Discover Renode for PolarFire® SoC Design and Debug June 6 - Webinar 2: How to Get Started with Renode for PolarFire SoC July 4 - Webinar 3: Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Aug. 1 - Webinar 4: Tips and Tricks for Even Easier PolarF
Slide 2: Supporting Content
Supporting Content www.microsemi.com/Mi-V “Renode Webinar Series” 2
Slide 3: Getting Started with the RISC-V Based PolarFire SoC FPGA Webinar Series
Getting Started with the RISC-V Based PolarFire® SoC FPGA Webinar Series Session 4: Tips and Tricks for Even Easier PolarFire SoC Debug with Renode Hugh Breslin, Embedded Linux Engineer Thursday Aug. 1, 2019
Slide 4: Tips and Tricks for Even Easier PolarFire SoC Debug with Renode
Tips and Tricks for Even Easier PolarFire® SoC Debug with Renode • Recap • Using the Renode console • Using Renode logs and their output 4
Slide 5: Recap
Recap • Webinar 1: Discover Renode for PolarFire® SoC Design and Debug • Introduction to the Renode platform and PolarFire SoC • Webinar 2: How to Get Started with Renode for PolarFire SoC • Installing SoftConsole with Renode on Windows® and Linux® • Demo of the Mi-V example projects • Webinar 3: Le
Slide 6: Recap
Recap • Install SoftConsole v6.0 with Renode • Able to launch the included sample projects and debug in Renode • Set up debug configurations and configure launch groups for use with Renode • Basic use of the Renode console • Run PolarFire SoC applications on multiple harts 6
Slide 7: Using The Renode Console
Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Using The Renode Console 7
Slide 8: Using the Renode Console
Using the Renode Console • Renode commands and peripheral names are case sensitive • Incorrectly capitalizing a command or peripheral name will cause an error even if spelling is correct! e.g.: sysbus.e51 – ok! sysbus.E51 – not ok Sysbus.e51 – not ok 8
Slide 9: Using the Renode Console
Using the Renode Console Command: help Use / Example: “help” “help [command]” “help logLevel” Output: Prints available commands if no arguments and prints information about the command and usage examples if a command is given as an argument Notes: Cannot be used for peripherals i.e. “help e51” will
Slide 10: Using the Renode Console
Using the Renode Console Command: peripherals Use/Example: “peripherals” Output: Prints peripherals connected to sysbus Notes: Prints sysbus for the current machine 10
Slide 11: Using the Renode Console
Using the Renode Console Command: using sysbus Use/Example: “using sysbus” Output: N/A Notes: Tells Renode to assume you’re using sysbus 11
Slide 12: Using the Renode Console
Using the Renode Console Command: [peripheral name] Use/Example: “e51” Output: Prints methods and properties available to be used with the peripheral Notes: Methods can be called to set or change functionality of a peripheral (e.g. reset) and properties are values describing the peripheral or its st
Slide 13: Using the Renode Console
Using the Renode Console Command: [peripheral name] [method] [args] Use/Example: “e51 AddHook 0x60000000 @main.py” “e51 GetRegistersValues” Output: Depends on the return type of the method (if any) Notes: 13
Slide 14: Using the Renode Console
Using the Renode Console Command: [peripheral name] [method] [args] e.g.: - String GetCPUThreadName (Machine machine) - [return value] {command} ([arg type] arg, [arg type] arg) - Void AddHook (UInt64 addr, String pythonScript) - String DisassembleBlock (UInt32 addr, Uint32 flags = 0) - Boolean HasG
Slide 15: Using the Renode Console
Using the Renode Console Command: [peripheral name] [property] [args] Use / Example: “e51 Architecture”, “e51 IsHalted”, “e51 IsHalted True” Output: None if setting, will print value if using get Notes: Some properties are read-only and some can be set during execution, you can tell as read-only wil
Slide 16: Using the Renode Console
Using the Renode Console Command: [peripheral name] [property] [args] - String Architecture Available for ‘get’ - String[] AvailableDisassemblers Available for ‘get’ - Boolean ChainingEnabled Available for ‘get’ and ‘set’ ‘get’: Returns the current value of the property ‘set’: Sets the value of the
Slide 17: Using the Renode Console
Using the Renode Console Command: [peripheral name].[sub-peripheral] Use/Example: “gpio0.button0” Output: Prints methods and properties available to be used with the peripheral Notes: Methods can be called to set or change functionality of a peripheral (e.g reset) and properties are values describin
Slide 18: Using the Renode Console
Using the Renode Console Command: [peripheral name].[sub-peripheral] [method] [args] Use / Example: “gpio0.button0 GetGPIOs”, “gpio0.button0 PressAndRelease” Output: None if setting, will print value if using get Notes: Some properties are read-only and some can be set during execution, you can tell
Slide 19: Using the Renode Console
Using the Renode Console Command: logLevel [level] [peripheral] Use / Example: “logLevel”, “logLevel -1”, “logLevel -1 sysbus.e51” Output: No args: Peripherals currently being logged and their log levels With args: No output Notes: 19
Slide 20: Using Renode Logs and Their Output
Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Using Renode Logs and Their Output 20
Slide 21: Renode Logs and Their Output
Using Renode Logs and Their Output • There are several logging levels available: • -1 Noisy • 0 Debug • 1 Info • 2 Warning • 3 Error • Each can capture different levels of data • Peripherals will produce a different level of log data depending on what has caused the log (e.g. uart print vs fatal err
Slide 22: Renode Logs and Their Output
Using Renode Logs and Their Output • Logging (and other commands) can be set up automatically by passing the commands during start up • E.G (pse-blinky debug configuration): • monitor sysbus.u54_3 IsHalted true • monitor sysbus.u54_4 IsHalted true • monitor sysbus LogPeripheralAccess sysbus.gpio1 •
Slide 23: Renode Logs and Their Output
Using Renode Logs and Their Output Logging can be set globally or set for individual peripherals 23
Slide 24: Renode Logs and Their Output
Using Renode Logs and Their Output • Logs can be directed to a file • The log file is created if it doesn’t exist and existing logs are overwritten SoftConsole Renode Log.txt Installation 24
Slide 25: Renode Logs and Their Output
Using Renode Logs and Their Output Example: logFile @uart.txt logLevel 0 sysbus.mmuart0 Sysbus LogPeripheralAccess sysbus.mmuart0 25
Slide 26: Renode Logs and Their Output
Using Renode Logs and Their Output logLevel 3 file 1 2 3 26
Slide 27: Renode Logs and Their Output
Using Renode Logs and Their Output • Now there’s a log producing a very large output file • Only want to actually look at a small part of it / check if a value appears • Use a script to parse it! 27
Slide 28: Renode Logs and Their Output
Using Renode Logs and Their Output 28
Slide 29: Renode Logs and Their Output
Using Renode Logs and Their Output • Python scripts can be added as external tools • Add the script to a launch group and run it after your debug session has been terminated • Add the Python script as a hook in Renode 29
Slide 30: Renode Logs and Their Output
Using Renode Logs and Their Output • The python external tool can be called as part of a launch group • They will then run from the Console in SoftConsole 30
Slide 31: First Thursdays
First Thursdays May 2 - Webinar 1: Discover Renode for PolarFire® SoC Design and Debug June 6 - Webinar 2: How to Get Started with Renode for PolarFire SoC July 4 - Webinar 3: Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Aug. 1 - Webinar 4: Tips and Tricks for Even Easier PolarF
Slide 32: Thank You! Questions?
S MICROCHIP Thank You! Questions?
Microchip Technology — Technical Presentation (August 2019) on 6ix