Search found 2270 matches
No, a chunk is a chunk and the ESP32 cache does not do pre-fetching, so randomly accessing aligned 32-byte chunks is as fast as accessing them linearily. (Note that our cache designs have been improved in the meanwhile; this may not be true anymore for any chips we'll be releasing in the future.)
Yes, you can, but I don't think it may actually be necessary. Start reading up on FreeRTOS queues, and instead of setting a flag, dump your data in a queue (or into an ESP-IDF ringbuffer; it may be a bit more efficient). Chances are that the queue already can buffer enough for your printf to finish ...
Don't call any functions that are non-trivial and not marked as ISR-callable (like the FreeRTOS *FromISR functions) in an ISR. Instead, handle the I2S reading in a task and use a semaphore to unblock the interrupt. (Or just spin a task to read the I2S data in the first place, i2s_read_bytes will blo...
From what I remember, the cache tag memory (the 'metadata' as you put it) is a separate bit of memory, the 32K is used in full for the actual data. Cache lines are 32 bytes.
- Mon Feb 18, 2019 4:48 am
- Forum: General Discussion
- Topic: What would you like to see in The Next Chip?
- Replies: 282
- Views: 57545
At the moment, the task stack not being allowed in PSRAM has to do with 1. the workaround the ESP32 needs, which is not baked into the ROM; the ROM may thus cause weird issues when working in stack in PSRAM, and 2. stack in PSRAM means the stack will 'disappear' when the CPU has to write to flash or...