Hi,
I try to build the strandtest example from Neopxl8 library using platformio in vscode and selected StampS3 as board. The example compiles in Arduino but not in platformio what is my favourite development platform.
I get errors while compiling “Adafruit_ZeroDMA.cpp”.
Anyone here facing the same problems? Any solutions available?
```Processing m5stack-stamps3 (platform: espressif32; board: m5stack-stamps3; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/m5stack-stamps3.html
PLATFORM: Espressif 32 (6.5.0) > M5Stack StampS3
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
- tool-esptoolpy @ 1.40501.0 (4.5.1)
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
- toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 45 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit NeoPXL8 @ 1.2.6
Building in release mode
Compiling .pio/build/m5stack-stamps3/libf74/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp.o
Compiling .pio/build/m5stack-stamps3/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/m5stack-stamps3/FrameworkArduino/Print.cpp.o
Compiling .pio/build/m5stack-stamps3/FrameworkArduino/Stream.cpp.o
In file included from .pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.h:25,
from .pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:29:
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/utility/dma.h:73:29: error: 'DMAC_CHCTRLB_TRIGACT_BLOCK_Val' was not declared in this scope
DMA_TRIGGER_ACTON_BLOCK = DMAC_CHCTRLB_TRIGACT_BLOCK_Val,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/utility/dma.h:74:28: error: 'DMAC_CHCTRLB_TRIGACT_BEAT_Val' was not declared in this scope
DMA_TRIGGER_ACTON_BEAT = DMAC_CHCTRLB_TRIGACT_BEAT_Val,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/utility/dma.h:75:35: error: 'DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val' was not declared in this scope
DMA_TRIGGER_ACTON_TRANSACTION = DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from .pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:29:
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.h:201:3: error: 'DmacDescriptor' does not name a type
DmacDescriptor *
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.h:219:25: error: 'DmacDescriptor' has not been declared
void changeDescriptor(DmacDescriptor *d, void *src = NULL, void *dst = NULL,
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:46:41: error: 'DmacDescriptor' does not name a type
__attribute__((__aligned__(16))) static DmacDescriptor ///< 128 bit alignment
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:53:34: error: 'DMAC_CH_NUM' was not declared in this scope
static Adafruit_ZeroDMA *_dmaPtr[DMAC_CH_NUM] = {0}; // Init to NULL
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:53:34: note: suggested alternative: 'EMAC_CLK_OUT'
static Adafruit_ZeroDMA *_dmaPtr[DMAC_CH_NUM] = {0}; // Init to NULL
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In function 'void cpu_irq_enter_critical()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:62:9: error: '__get_PRIMASK' was not declared in this scope
if (__get_PRIMASK() == 0) { // IRQ enabled?
^~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:63:7: error: '__disable_irq' was not declared in this scope
__disable_irq(); // Disable it
^~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:64:7: error: '__DMB' was not declared in this scope
__DMB();
^~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In function 'void cpu_irq_leave_critical()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:85:7: error: '__DMB' was not declared in this scope
__DMB();
^~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:86:7: error: '__enable_irq' was not declared in this scope
__enable_irq();
^~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:86:7: note: suggested alternative: '_rename_r'
__enable_irq();
^~~~~~~~~~~~
_rename_r
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In function 'void DMAC_Handler()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:128:21: error: 'DMAC' was not declared in this scope
uint8_t channel = DMAC->INTPEND.bit.ID; // Channel # causing interrupt
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:128:21: note: suggested alternative: 'DEPC'
uint8_t channel = DMAC->INTPEND.bit.ID; // Channel # causing interrupt
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:129:17: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:129:17: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:131:16: error: '_dmaPtr' was not declared in this scope
if ((dma = _dmaPtr[channel])) { // -> Channel's ZeroDMA object
^~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::_IRQhandler(uint8_t)':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:159:15: error: 'DMAC_CHINTENCLR_TERR' was not declared in this scope
if (flags & DMAC_CHINTENCLR_TERR) {
^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:164:5: error: 'DMAC' was not declared in this scope
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_TERR;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:164:5: note: suggested alternative: 'DEPC'
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_TERR;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:169:22: error: 'DMAC_CHINTENCLR_TCMPL' was not declared in this scope
} else if (flags & DMAC_CHINTENCLR_TCMPL) {
^~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:174:5: error: 'DMAC' was not declared in this scope
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_TCMPL;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:174:5: note: suggested alternative: 'DEPC'
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_TCMPL;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:179:22: error: 'DMAC_CHINTENCLR_SUSP' was not declared in this scope
} else if (flags & DMAC_CHINTENCLR_SUSP) {
^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:184:5: error: 'DMAC' was not declared in this scope
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_SUSP;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:184:5: note: suggested alternative: 'DEPC'
DMAC->CHINTFLAG.reg = DMAC_CHINTENCLR_SUSP;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'ZeroDMAstatus Adafruit_ZeroDMA::allocate()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:197:17: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel < DMAC_CH_NUM)
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:197:17: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel < DMAC_CH_NUM)
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:208:32: error: 'DMAC_CH_NUM' was not declared in this scope
for (channel = 0; (channel < DMAC_CH_NUM) && (_channelMask & (1 << channel));
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:208:32: note: suggested alternative: 'EMAC_CLK_OUT'
for (channel = 0; (channel < DMAC_CH_NUM) && (_channelMask & (1 << channel));
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:217:18: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel >= DMAC_CH_NUM) // No free channel!
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:217:18: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel >= DMAC_CH_NUM) // No free channel!
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:229:5: error: 'PM' was not declared in this scope
PM->AHBMASK.bit.DMAC_ = 1; // Initialize DMA clocks
^~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:229:5: note: suggested alternative: 'PI'
PM->AHBMASK.bit.DMAC_ = 1; // Initialize DMA clocks
^~
PI
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:232:5: error: 'DMAC' was not declared in this scope
DMAC->CTRL.bit.DMAENABLE = 0; // Disable DMA controller
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:232:5: note: suggested alternative: 'DEPC'
DMAC->CTRL.bit.DMAENABLE = 0; // Disable DMA controller
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:236:45: error: '_descriptor' was not declared in this scope
DMAC->BASEADDR.bit.BASEADDR = (uint32_t)_descriptor;
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:236:45: note: suggested alternative: 'hasDescriptors'
DMAC->BASEADDR.bit.BASEADDR = (uint32_t)_descriptor;
^~~~~~~~~~~
hasDescriptors
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:237:43: error: '_writeback' was not declared in this scope
DMAC->WRBADDR.bit.WRBADDR = (uint32_t)_writeback;
^~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:237:43: note: suggested alternative: '_write_r'
DMAC->WRBADDR.bit.WRBADDR = (uint32_t)_writeback;
^~~~~~~~~~
_write_r
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:242:22: error: 'DMAC_CTRL_DMAENABLE' was not declared in this scope
DMAC->CTRL.reg = DMAC_CTRL_DMAENABLE | DMAC_CTRL_LVLEN(0xF);
^~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:242:22: note: suggested alternative: 'EMAC_CLK_DEFAULT'
DMAC->CTRL.reg = DMAC_CTRL_DMAENABLE | DMAC_CTRL_LVLEN(0xF);
^~~~~~~~~~~~~~~~~~~
EMAC_CLK_DEFAULT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:242:44: error: 'DMAC_CTRL_LVLEN' was not declared in this scope
DMAC->CTRL.reg = DMAC_CTRL_DMAENABLE | DMAC_CTRL_LVLEN(0xF);
^~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:254:20: error: 'DMAC_IRQn' was not declared in this scope
NVIC_EnableIRQ(DMAC_IRQn);
^~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:254:5: error: 'NVIC_EnableIRQ' was not declared in this scope
NVIC_EnableIRQ(DMAC_IRQn);
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:255:39: error: '__NVIC_PRIO_BITS' was not declared in this scope
NVIC_SetPriority(DMAC_IRQn, (1 << __NVIC_PRIO_BITS) - 1);
^~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:255:5: error: 'NVIC_SetPriority' was not declared in this scope
NVIC_SetPriority(DMAC_IRQn, (1 << __NVIC_PRIO_BITS) - 1);
^~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:255:5: note: suggested alternative: 'setPriority'
NVIC_SetPriority(DMAC_IRQn, (1 << __NVIC_PRIO_BITS) - 1);
^~~~~~~~~~~~~~~~
setPriority
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:260:3: error: '_dmaPtr' was not declared in this scope
_dmaPtr[channel] = this; // Channel-index-to-object pointer
^~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:267:3: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:267:3: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::setPriority(dma_priority)':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:297:3: error: 'DMAC' was not declared in this scope
DMAC->CHCTRLB.bit.LVL = pri;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:297:3: note: suggested alternative: 'DEPC'
DMAC->CHCTRLB.bit.LVL = pri;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'ZeroDMAstatus Adafruit_ZeroDMA::free()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:311:25: error: 'DMAC_CH_NUM' was not declared in this scope
} else if ((channel < DMAC_CH_NUM) && (_channelMask & (1 << channel))) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:311:25: note: suggested alternative: 'EMAC_CLK_OUT'
} else if ((channel < DMAC_CH_NUM) && (_channelMask & (1 << channel))) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:320:23: error: 'DMAC_IRQn' was not declared in this scope
NVIC_DisableIRQ(DMAC_IRQn); // Disable DMA interrupt
^~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:320:7: error: 'NVIC_DisableIRQ' was not declared in this scope
NVIC_DisableIRQ(DMAC_IRQn); // Disable DMA interrupt
^~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:321:7: error: 'DMAC' was not declared in this scope
DMAC->CTRL.bit.DMAENABLE = 0; // Disable DMA
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:321:7: note: suggested alternative: 'DEPC'
DMAC->CTRL.bit.DMAENABLE = 0; // Disable DMA
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:322:7: error: 'PM' was not declared in this scope
PM->APBBMASK.bit.DMAC_ = 0; // Disable DMA clocks
^~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:322:7: note: suggested alternative: 'PI'
PM->APBBMASK.bit.DMAC_ = 0; // Disable DMA clocks
^~
PI
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:326:5: error: '_dmaPtr' was not declared in this scope
_dmaPtr[channel] = NULL;
^~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'ZeroDMAstatus Adafruit_ZeroDMA::startJob()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:346:25: error: 'DMAC_CH_NUM' was not declared in this scope
} else if (channel >= DMAC_CH_NUM) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:346:25: note: suggested alternative: 'EMAC_CLK_OUT'
} else if (channel >= DMAC_CH_NUM) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:348:34: error: '_descriptor' was not declared in this scope
} else if (!hasDescriptors || (_descriptor[channel].BTCNT.reg <= 0)) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:348:34: note: suggested alternative: 'hasDescriptors'
} else if (!hasDescriptors || (_descriptor[channel].BTCNT.reg <= 0)) {
^~~~~~~~~~~
hasDescriptors
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:363:5: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:363:5: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:364:28: error: 'DMAC_CHINTENSET_MASK' was not declared in this scope
DMAC->CHINTENSET.reg = DMAC_CHINTENSET_MASK & interruptMask;
^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:364:28: note: suggested alternative: 'DMA_STEPSEL_DST'
DMAC->CHINTENSET.reg = DMAC_CHINTENSET_MASK & interruptMask;
^~~~~~~~~~~~~~~~~~~~
DMA_STEPSEL_DST
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:365:28: error: 'DMAC_CHINTENCLR_MASK' was not declared in this scope
DMAC->CHINTENCLR.reg = DMAC_CHINTENCLR_MASK & ~interruptMask;
^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:365:28: note: suggested alternative: 'XCHAL_INTLEVEL9_MASK'
DMAC->CHINTENCLR.reg = DMAC_CHINTENCLR_MASK & ~interruptMask;
^~~~~~~~~~~~~~~~~~~~
XCHAL_INTLEVEL9_MASK
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::suspend()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:389:3: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:389:3: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:390:24: error: 'DMAC_CHCTRLB_CMD_SUSPEND' was not declared in this scope
DMAC->CHCTRLB.reg |= DMAC_CHCTRLB_CMD_SUSPEND;
^~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:390:24: note: suggested alternative: 'DMA_STATUS_SUSPEND'
DMAC->CHCTRLB.reg |= DMAC_CHCTRLB_CMD_SUSPEND;
^~~~~~~~~~~~~~~~~~~~~~~~
DMA_STATUS_SUSPEND
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::resume()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:404:5: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:404:5: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:405:26: error: 'DMAC_CHCTRLB_CMD_RESUME' was not declared in this scope
DMAC->CHCTRLB.reg |= DMAC_CHCTRLB_CMD_RESUME;
^~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::abort()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:421:18: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel <= DMAC_CH_NUM) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:421:18: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel <= DMAC_CH_NUM) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:426:5: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel; // Select channel
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:426:5: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel; // Select channel
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::setTrigger(uint8_t)':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:441:17: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:441:17: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:446:5: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:446:5: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::setAction(dma_transfer_trigger_action)':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:460:17: error: 'DMAC_CH_NUM' was not declared in this scope
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:460:17: note: suggested alternative: 'EMAC_CLK_OUT'
if (channel < DMAC_CH_NUM) {
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:465:5: error: 'DMAC' was not declared in this scope
DMAC->CHID.bit.ID = channel;
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:465:5: note: suggested alternative: 'DEPC'
DMAC->CHID.bit.ID = channel;
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::trigger()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:474:19: error: 'DMAC_CH_NUM' was not declared in this scope
if ((channel <= DMAC_CH_NUM) & hasDescriptors)
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:474:19: note: suggested alternative: 'EMAC_CLK_OUT'
if ((channel <= DMAC_CH_NUM) & hasDescriptors)
^~~~~~~~~~~
EMAC_CLK_OUT
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:475:5: error: 'DMAC' was not declared in this scope
DMAC->SWTRIGCTRL.reg |= (1 << channel);
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:475:5: note: suggested alternative: 'DEPC'
DMAC->SWTRIGCTRL.reg |= (1 << channel);
^~~~
DEPC
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: At global scope:
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:487:1: error: 'DmacDescriptor' does not name a type
DmacDescriptor *Adafruit_ZeroDMA::addDescriptor(void *src, void *dst,
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:580:41: error: variable or field 'changeDescriptor' declared void
void Adafruit_ZeroDMA::changeDescriptor(DmacDescriptor *desc, void *src,
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:580:41: error: 'DmacDescriptor' was not declared in this scope
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:580:57: error: 'desc' was not declared in this scope
void Adafruit_ZeroDMA::changeDescriptor(DmacDescriptor *desc, void *src,
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:580:57: note: suggested alternative: 'getc'
void Adafruit_ZeroDMA::changeDescriptor(DmacDescriptor *desc, void *src,
^~~~
getc
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:580:63: error: expected primary-expression before 'void'
void Adafruit_ZeroDMA::changeDescriptor(DmacDescriptor *desc, void *src,
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:581:41: error: expected primary-expression before 'void'
void *dst, uint32_t count) {
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:581:61: error: expected primary-expression before 'count'
void *dst, uint32_t count) {
^~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'void Adafruit_ZeroDMA::loop(boolean)':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:5: error: 'DmacDescriptor' was not declared in this scope
DmacDescriptor *desc = &_descriptor[channel];
^~~~~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:5: note: suggested alternative: 'hasDescriptors'
DmacDescriptor *desc = &_descriptor[channel];
^~~~~~~~~~~~~~
hasDescriptors
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:21: error: 'desc' was not declared in this scope
DmacDescriptor *desc = &_descriptor[channel];
^~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:21: note: suggested alternative: 'getc'
DmacDescriptor *desc = &_descriptor[channel];
^~~~
getc
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:29: error: '_descriptor' was not declared in this scope
DmacDescriptor *desc = &_descriptor[channel];
^~~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:654:29: note: suggested alternative: 'hasDescriptors'
DmacDescriptor *desc = &_descriptor[channel];
^~~~~~~~~~~
hasDescriptors
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:657:31: error: expected primary-expression before ')' token
desc = (DmacDescriptor *)desc->DESCADDR.reg;
^
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp: In member function 'bool Adafruit_ZeroDMA::isActive()':
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:706:10: error: '_writeback' was not declared in this scope
return _writeback[channel].BTCTRL.bit.VALID;
^~~~~~~~~~
.pio/libdeps/m5stack-stamps3/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp:706:10: note: suggested alternative: '_write_r'
return _writeback[channel].BTCTRL.bit.VALID;
^~~~~~~~~~
_write_r
*** [.pio/build/m5stack-stamps3/libf74/Adafruit Zero DMA Library/Adafruit_ZeroDMA.cpp.o] Error 1
====================================================================== [FAILED] Took 9.64 seconds ======================================================================
The Adafruit Zero DMA Library (which is installed as a dependency beside of the other of tons of depenencies this library comes with) is for architecture samd (see library.properties).
After adding a few lines to the beginning of the example code:
PlatformIO is picking up the wrong library dependencies. If Neopxl8 hard-depends on the Zero DMA library, you won’T be able to use it as-is. If it can work without that library, use lib_ldf_mode — PlatformIO v6.1 documentation with deep+ to hopefully correct the dependency tree.