Deep Dive w/Scott: SVD and Interrupts #adafruit
Scott covers progress on the Cortex A work for Raspberry Pi. He's been working on expanding the system view description (SVD) files and learning all about the Generic Interrupt Controller (GIC400 / GICv2). He'll also answer any questions folks have. Visit the Adafruit shop online - http://www.adafruit.com
Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord.
Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome.
0:00 Getting started
0:02:00 Hello and Housekeeping
0:04:42 Unexpected Makers Feather S2 - https://unexpectedmaker.com/
0:05:30 Today’s topic deep dive Raspberry Pi
0:06:30 Educational/Work Background summary
0:10:20 Getting started in Board Design - KiCad, Oshpark - https://www.kicad.org/
0:12:00 Working on google maps, reasons for leaving
0:13:35 What was the most important thing learned at Google?
0:14:45 Getting started with surface mount
0:16:15 Flux and soldering, Pin Headers - https://www.adafruit.com/product/2830
0:20:30 Adafruit Collin's Lab soldering videos - https://www.youtube.com/playlist?list=PLjF7R1fz_OOXyxiYQWEX4OZga9c7jrw5q
0:21:05 Hand soldering, vs. SMD for dotstars
0:22:17 Looking at the ‘new’ Pi Development board 40-Pin / external JTAG / SWD adapter - https://oshpark.com/shared_projects/fBq76nP9
0:24:22 Raspberry Pi CM4
0:25:37 USB to UART external board
0:26:45 External connector and chickadee logo ( on oshpark )
0:29:35 Oshpark, PCB shopper (dot com)
0:31:00 Chickadee.tech web page and After Dark theme
0:32:12 Two weeks of progress on RPi
0:32:32 Troubleshooting 4 layer boards
0:33:25 adafruit/samd-peripherals github page - SAMD21 / SAMD51
0:33:52 adafruit / Broadcom peripherals page - https://github.com/adafruit/broadcom-peripherals
0:35:55 Recap system on chips ( SAM D21 block diagram )
0:38:00 .SVD ( arm ) vs flash.xml ?
0:38:46 Memory Mapped I/O and Product (memory) Mapping
0:40:40 SVD file used for debugging and generate C code
0:42:00 RPi Desktop/workspace setup explained
0:44:00 Debug output and open OCD
0:44:35 Gdbstub PyCortexMDebug - https://github.com/bnahill/PyCortexMDebug
0:46:30 “svd” commands
0:50:24 Using KDE console terminal for tiling “management”
0:51:00 IRQ’s and interrupts
0:53:24 Need USB Interrupts to get TinyUSB to work
0:54:00 PPI vs SPI
0:57:28 Would interrupts drive support to multicore
0:58:55 Do we need delays to support interrupts? (no)
1:00:50 Can you have delays in an interrupt? ( don’t want to )
1:02:10 SVDcon (sp) converted table
1:02:39 Python generated jinja macros (svd tool)
1:07:50 GPIO alternate functions - moving to get interrupts working
1:08:40 USB initialization need to be powered on ( see vcmailbox ? )
1:09:40 How does the interrupt handler work - assembly code
1:10:10 saving and restoring state in interrupts (macro)
1:11:30 handling invalid interrupt entries
1:12:25 CPU exception top level code
1:13:14 handle IRQ
1:14:15 svd USB_OTG_GLOBAL / examine the registers
1:17:02 next thing down the line, the interrupt controller
1:20:30 Lady Ada on the screen!
1:32:23 - after some good advice, goodbye
1:35:20 ARM provided svd conv (sp)
1:38:52 GIC 400
1:40:53 the GIC 400 overview diagram
1:43:20 Interrupt “1023” magic number - in a spurious interrupt
1:46:42 Interrupt handling state machine diagram Figure 3-1
1:47:55 Distributor register descriptions - GICD_ITARGETS
1:49:00 Old show notes - https://github.com/adafruit/deep-dive-notes/
1:51:16 Reviewing interrupt priority fields
1:54:20 interrupts are all zero
1:55:00 Try setting priority to one, as an experiment
1:57:00 restart with new code - gdb says in fifo-read
1:58:34 Wrap-up
1:59:25 Next week next Friday
2:00:09 cat-cam
-----------------------------------------
LIVE CHAT IS HERE! http://adafru.it/discord
Adafruit on Instagram: https://www.instagram.com/adafruit
Subscribe to Adafruit on YouTube: http://adafru.it/subscribe
New tutorials on the Adafruit Learning System: http://learn.adafruit.com/
-----------------------------------------