Обновили список ошибок для STM8

9 Августа 2011 К комментариям

Добавили ошибку при работе с EEPROM.

Core kept in stall mode when DMA transfer occurs during program/erase operation to EEPROM.


When the MCU performs EEPROM program/erase operation, the core is stalled during data transfer to the memory controller, which occurs at the beginning of the program/erase operation. If a DMA request servicing starts while the core is stalled, the core does not
return from stall mode to program execution.

The core is stalled for 11 cycles during byte program/erase, 8 cycles during word program/erase and 3 cycles during each word transfer in block programming mode. For block erase, the core is stalled for 127 cycles. When a DMA request arises, it is only served if the DMA priority is higher than the core access priority.

If the current DMA priority is lower than the core one, the DMA service is delayed until the core access becomes idle.

The DMA also includes a programmable timeout function, configurable by DMA_GCSR register. If the core does not release the bus during this timeout, the DMA automatically increases its own priority and forces the core to release the bus for DMA service. No fix is planned.
Several workarounds are available for this limitation.

Как видим не планируется исправлять, но предлагается несколько решений.

comments powered by Disqus