-
-
Notifications
You must be signed in to change notification settings - Fork 345
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
General review and update to documentation **Smart quotes** These are the 'pretty' versions of regular quotes which can infect code and documentation due to a 'smart quote' virus embedded into many modern editors. Their purpose is to make documentation (e.g. web pages) look pretty. That's it. Their presence in C/C++ code is a syntax errror. In documentation, not so much. However, if they appear in quoted code snippets then these won't work when pasted. I think it best therefore to avoid them completely, so have all been converted to standard 'dumb' quotes. Note that Sphinx will automatically convert regular quotes into their curly equivalents so there is no need whatsoever to have these in the source. TODO (please comment if you have any thoughts on these!): * [x] Is espconn still unsupported by lwip2? Don't know: just add note. * [x] Windows .cmd install scripts are quite useable, just needs an `export.cmd` and documenting. We then don't need the custom sming choco scripts: we should remove those from documentation. Bit more than that: separate PR. * [x] Is there a way to check/fix use of smart quotes automatically? Nope. I'll write one. * [x] Add notes on debugging in vscode - already there, just not as involved as Eclipse * [x] Is eclipse still a good development environment? I always found it slow, complicated and clunky, but maybe that's changed? Is the documentation still correct for current versions? * [x] Lots of duplication in eclipse debugging pages, merge this into single document
- Loading branch information
Showing
166 changed files
with
2,241 additions
and
2,243 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,4 @@ | ||
I2S: Inter-IC Serial communications | ||
=================================== | ||
|
||
Introduction | ||
------------ | ||
|
||
`I2S <https://en.wikipedia.org/wiki/I%C2%B2S>`__ was designed for transfer of digital audio data. | ||
|
||
The ESP8266 has two I2S modules (one transmitter and one receiver), both with hardware | ||
`DMA <https://en.wikipedia.org/wiki/Direct_memory_access>`__ support, which means transfers from | ||
RAM to the hardware SPI FIFO can be handled directly in hardware without any CPU involvement. | ||
|
||
|
||
Sming I2S support | ||
----------------- | ||
|
||
The Sming driver deals with the complicated of setting up the hardware, using an API | ||
similar to that in the Espressif RTOS SDK. In addition, DMA buffers may be accessed directly | ||
to avoid double-buffering and the associated RAM and copy overhead. | ||
|
||
|
||
Applications | ||
------------ | ||
|
||
Audio | ||
~~~~~ | ||
|
||
Playing MIDI files, MP3 files, speech synthesis, etc. is all possible using the ESP8266, | ||
though many audio applications require considerable processing power. | ||
That means you may need to disable WiFi and set the processor to run at full 160MHz speed. | ||
|
||
High-quality multi-channel audio requires an external I2S DAC, which is what the protocol | ||
was designed for in the first place. You may find problems with insufficient RAM, | ||
but you can always add external SPI RAM. | ||
|
||
More realistic uses include generating simple tones, beeps, playing pre-recorded WAV audio, | ||
etc. to supplement existing projects. This can all be done in the background without | ||
disrupting the system's main purpose, whatever that may be. | ||
|
||
For such applications you can generate single-channel audio via the I2S OUT pin, | ||
using `Pulse-density modulation <https://en.wikipedia.org/wiki/Pulse-density_modulation>`__. | ||
|
||
See the :library:`ToneGenerator` library for a demonstration of this. | ||
|
||
|
||
GPIO Expansion | ||
~~~~~~~~~~~~~~ | ||
|
||
Expand GPIO using low-cost shift registers. https://github.com/lhartmann/esp8266_reprap. | ||
|
||
|
||
Pixel-strip control | ||
~~~~~~~~~~~~~~~~~~~ | ||
|
||
Devices such as WS2812-based NeoPixels use a simple, single-wire protocol. | ||
I2S is ideal for this as it can be used to generate a precisely-timed bitstream | ||
with very low CPU loading. | ||
|
||
|
||
API Documentation | ||
----------------- | ||
|
||
.. doxygengroup:: i2s_driver | ||
:content-only: | ||
Not currently implemented for Esp32. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,4 @@ | ||
Heap | ||
==== | ||
Esp32 Heap | ||
========== | ||
|
||
This Component implements heap-related housekeeping functions. Heap usage is tracked using :component:`malloc_count`. | ||
This also provides some validation (using *sentinels* to detect if memory blocks are overwritten). | ||
|
||
.. envvar:: ENABLE_MALLOC_COUNT | ||
|
||
We require :component:`malloc_count` to keep track of heap usage for system_get_free_heap_size(). | ||
It does this by hooking the memory allocation routines (malloc, free, etc.). | ||
If you wish to disable this behaviour, set `ENABLE_MALLOC_COUNT=0`. | ||
If using tools such as `Valgrind <https://www.valgrind.org>`__, this will provide a cleaner trace. | ||
This Component supplements the actual heap implementation provided by the ESP IDF SDK. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.