You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(gdb) backtrace
#0 codal::ZSPI::startTransfer (this=0x2000050c <xn+692>, txBuffer=0x0, txSize=0, rxBuffer=0x0, rxSize=0,
doneHandler=0x0, arg=0x0)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/libraries/codal-stm32/src/ZSPI.cpp:357
#1 0x0801842a in codal::ZSPI::transfer (this=<optimized out>, txBuffer=0x0, txSize=0, rxBuffer=0x0, rxSize=0)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/libraries/codal-stm32/src/ZSPI.cpp:313
#2 0x08016380 in codal::StandardSPIFlash::sendCommand (this=this@entry=0x200008ec <storage>,
command=command@entry=6 '\006', addr=addr@entry=-1, resp=resp@entry=0x0, respSize=respSize@entry=0)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/libraries/codal-core/source/drivers/StandardSPIFlash.cpp:55
#3 0x0801647e in codal::StandardSPIFlash::writeEnable (this=0x200008ec <storage>)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/libraries/codal-core/source/drivers/StandardSPIFlash.cpp:63
#4 codal::StandardSPIFlash::writeBytes (this=0x200008ec <storage>, addr=1703948, buffer=0x20017f4c, len=4)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/libraries/codal-core/source/drivers/StandardSPIFlash.cpp:98
#5 0x08010776 in codal::snorfs::FS::swapRow (this=this@entry=0x20000904 <storage+24>, row=28)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/SNORFS.cpp:295
#6 0x08010b42 in codal::snorfs::FS::gcCore (this=0x20000904 <storage+24>, force=<optimized out>,
isData=<optimized out>) at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/SNORFS.cpp:257
#7 0x08010e5e in codal::snorfs::FS::mount (this=0x20000904 <storage+24>)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/SNORFS.cpp:614
#8 codal::snorfs::FS::lock (this=this@entry=0x20000904 <storage+24>)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/SNORFS.cpp:613
#9 0x0801101e in codal::snorfs::FS::exists (this=this@entry=0x20000904 <storage+24>,
filename=filename@entry=0x801d86c "foobar")
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/SNORFS.cpp:602
#10 0x08012bc4 in codal::WStorage::mountedStorage (this=this@entry=0x200008ec <storage>)
at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/storage.cpp:20
#11 0x0801286c in main () at /mnt/c/Users/dare-/Documents/Workspace/xtron/codal/source/main.cpp:74
When I try to mount storage, SPI was blocked because of invoke follow api with both txSize and rxSize equal to 0,so it can't receice transferCompleteEventCode event.
int ZSPI::startTransfer(const uint8_t *txBuffer, uint32_t txSize, uint8_t *rxBuffer,
uint32_t rxSize, PVoidCallback doneHandler, void *arg)
{
int res;
init_internal();
LOG("SPI start %p/%d %p/%d D=%p", txBuffer, txSize, rxBuffer, rxSize, doneHandler);
this->doneHandler = doneHandler;
this->doneHandlerArg = arg;
// disable IRQ or else risk a race in HAL, between starting DMA request
// and getting the DMA-done IRQ
if (doneHandler)
target_disable_irq();
if (txSize && rxSize)
{
CODAL_ASSERT(txSize == rxSize, DEVICE_SPI_ERROR); // we could support this if needed
res = HAL_SPI_TransmitReceive_DMA(&spi, (uint8_t *)txBuffer, rxBuffer, txSize);
}
else if (txSize)
{
res = HAL_SPI_Transmit_DMA(&spi, (uint8_t *)txBuffer, txSize);
}
else if (rxSize)
{
res = HAL_SPI_Receive_DMA(&spi, rxBuffer, rxSize);
}
else
{
res = HAL_OK;
}
if (doneHandler)
target_enable_irq();
CODAL_ASSERT(res == HAL_OK, DEVICE_SPI_ERROR);
return 0;
}
The text was updated successfully, but these errors were encountered:
When I try to mount storage, SPI was blocked because of invoke follow api with both txSize and rxSize equal to 0,so it can't receice transferCompleteEventCode event.
The text was updated successfully, but these errors were encountered: