EPISODE · Oct 8, 2021 · 2H 1M
Deep Dive w/Scott: SVD and Interrupts
from Adafruit Industries · host Adafruit Industries
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/ -----------------------------------------
What this episode covers
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/ -----------------------------------------
NOW PLAYING
Deep Dive w/Scott: SVD and Interrupts
No transcript for this episode yet
Similar Episodes
Apr 21, 2026 ·73m
Apr 18, 2026 ·14m
Apr 18, 2026 ·95m
Apr 15, 2026 ·55m
Apr 13, 2026 ·68m
Apr 11, 2026 ·59m