mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fdf983e0c4
The SPI bus lock on SPI1 introduces two side effects:
1. The device lock for the main flash requires the
`CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION` to be selected, however this
option is disabled by default in earlier IDF versions. Some developers
may find their project cannot be built by their old sdkconfig files.
2. Usually we don't need the lock on the SPI1 bus, due to it's
restrictions. However the overhead still exists in this case, the IRAM
cost for static version of semaphore functions, and the time cost when
getting and releasing the lock.
This commit:
1. Add a CONFIG_SPI_FLASH_BYPASS_MAIN_LOCK option, which will forbid the
space cost, as well as the initialization of the main bus lock.
2. When the option is not selected, the bus lock is used, the
`CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION` will be selected explicitly.
3. Revert default value of `CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION`
to `n`.
introduced in
|
||
---|---|---|
.. | ||
components/eeprom | ||
main | ||
CMakeLists.txt | ||
Makefile | ||
README.md |
SPI master half duplex EEPROM example
This code demonstrates how to use the SPI master half duplex mode to read/write a AT93C46D
EEPROM (8-bit mode). There is also an Kconfig option EXAMPLE_USE_SPI1_PINS
allowing use the
SPI1 (bus with code Flash connected on official modules).
Connections
For different chip and host used, the connections may be different.
ESP32 | ESP32 | ESP32S2 | |
---|---|---|---|
Host | SPI1 | HSPI | FSPI |
VCC | 3.3V | 3.3V | 3.3V |
GND | GND | GND | GND |
DO | 7 | 18 | 37 |
DI | 8 | 23 | 35 |
SK | 6 | 19 | 36 |
CS | 13 | 13 | 34 |
ORG | GND | GND | GND |
Notes
If you meet timeout issues, please check your connections.