Workaround NeoPixelBus STAGE compile error

Workaround NeoPixelBus STAGE compile error
This commit is contained in:
Theo Arends 2019-03-15 11:25:02 +01:00
parent ed69f5a342
commit ef5377e327
2 changed files with 11 additions and 7 deletions

View File

@ -48,7 +48,11 @@ extern "C"
#include "ets_sys.h" #include "ets_sys.h"
#include "user_interface.h" #include "user_interface.h"
// Workaround STAGE compile error
#include <core_version.h>
#if defined(ARDUINO_ESP8266_RELEASE_2_3_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_1) || defined(ARDUINO_ESP8266_RELEASE_2_4_2) || defined(ARDUINO_ESP8266_RELEASE_2_5_0)
void rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata); void rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata);
#endif
} }
struct slc_queue_item struct slc_queue_item
@ -74,7 +78,7 @@ public:
class NeoEsp8266DmaSpeed800Kbps class NeoEsp8266DmaSpeed800Kbps
{ {
public: public:
const static uint32_t I2sClockDivisor = 3; const static uint32_t I2sClockDivisor = 3;
const static uint32_t I2sBaseClockDivisor = 16; const static uint32_t I2sBaseClockDivisor = 16;
const static uint32_t ResetTimeUs = 50; const static uint32_t ResetTimeUs = 50;
}; };
@ -82,7 +86,7 @@ public:
class NeoEsp8266DmaSpeed400Kbps class NeoEsp8266DmaSpeed400Kbps
{ {
public: public:
const static uint32_t I2sClockDivisor = 6; const static uint32_t I2sClockDivisor = 6;
const static uint32_t I2sBaseClockDivisor = 16; const static uint32_t I2sBaseClockDivisor = 16;
const static uint32_t ResetTimeUs = 50; const static uint32_t ResetTimeUs = 50;
}; };
@ -100,7 +104,7 @@ const uint8_t c_I2sPin = 3; // due to I2S hardware, the pin used is restricted t
template<typename T_SPEED> class NeoEsp8266DmaMethodBase template<typename T_SPEED> class NeoEsp8266DmaMethodBase
{ {
public: public:
NeoEsp8266DmaMethodBase(uint16_t pixelCount, size_t elementSize) NeoEsp8266DmaMethodBase(uint16_t pixelCount, size_t elementSize)
{ {
uint16_t dmaPixelSize = c_dmaBytesPerPixelBytes * elementSize; uint16_t dmaPixelSize = c_dmaBytesPerPixelBytes * elementSize;
@ -269,7 +273,7 @@ public:
private: private:
static NeoEsp8266DmaMethodBase* s_this; // for the ISR static NeoEsp8266DmaMethodBase* s_this; // for the ISR
size_t _pixelsSize; // Size of '_pixels' buffer size_t _pixelsSize; // Size of '_pixels' buffer
uint8_t* _pixels; // Holds LED color values uint8_t* _pixels; // Holds LED color values
uint32_t _i2sBufferSize; // total size of _i2sBuffer uint32_t _i2sBufferSize; // total size of _i2sBuffer
@ -310,7 +314,7 @@ private:
slc_queue_item* finished_item = (slc_queue_item*)SLCRXEDA; slc_queue_item* finished_item = (slc_queue_item*)SLCRXEDA;
// data block has pending data waiting to send, prepare it // data block has pending data waiting to send, prepare it
// point last state block to top // point last state block to top
(finished_item + 1)->next_link_ptr = (uint32_t)(s_this->_i2sBufDesc); (finished_item + 1)->next_link_ptr = (uint32_t)(s_this->_i2sBufDesc);
s_this->_dmaState = NeoDmaState_Sending; s_this->_dmaState = NeoDmaState_Sending;
@ -367,7 +371,7 @@ private:
} }
}; };
template<typename T_SPEED> template<typename T_SPEED>
NeoEsp8266DmaMethodBase<T_SPEED>* NeoEsp8266DmaMethodBase<T_SPEED>::s_this; NeoEsp8266DmaMethodBase<T_SPEED>* NeoEsp8266DmaMethodBase<T_SPEED>::s_this;
typedef NeoEsp8266DmaMethodBase<NeoEsp8266DmaSpeedWs2813> NeoEsp8266DmaWs2813Method; typedef NeoEsp8266DmaMethodBase<NeoEsp8266DmaSpeedWs2813> NeoEsp8266DmaWs2813Method;

View File

@ -90,7 +90,7 @@ platform = https://github.com/platformio/platform-espressif8266
build_flags = ${esp82xx_defaults.build_flags} build_flags = ${esp82xx_defaults.build_flags}
-Wl,-Teagle.flash.1m.ld -Wl,-Teagle.flash.1m.ld
; nonos-sdk 22x ; nonos-sdk 22x
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x
; nonos-sdk-pre-v3 ; nonos-sdk-pre-v3
; -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 ; -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
; lwIP 1.4 (Default) ; lwIP 1.4 (Default)