- Tue Apr 16, 2019 12:55 pm
davydnorris wrote:I have generated the cross ref actually, and have done a little digging - seems to be uart code using it, so I'll go in and check the uart driver code I'm using.
Are you using own code for the UART or that in driverlib? Again the code from Espressif is horrible. I'd really advise to do it yourself. All relevant data of the UART is known now.
davydnorris wrote:I've done a lot with I2S and it was my immediate thought because you use DMA to transfer data between the I2S device and the chip and there's an ISR involved - first step inside the ISR you have to clear the DMA interrupt.
I'll dig some more and let you know
Masking, unmasking and clearing of interrupts can all be done without HAL code.
There is some weird code in ROM to be called for enabling the I2S module (called i2c_something, notice the misnomer here!). If I really start to be seriously bored, I am going to reverse engineer that code and find out what registers are actually involved for I2S, including the PLL registers, which would allow us to run the CPU core at up to 320 MHz, the hardware can do it, it's designed for it. The only thing is that the WLAN module can't work at that speed. I'd be interested in a scenario where the CPU is run at higher speeds for short periods, while doing complex work and then drop back to 160 Mhz mostly for operating the WLAN module.