Peripherals
Drivers
In order to control the dependence of other components on drivers at a smaller granularity, the original peripheral drivers under the driver
component were split into separate components:
esp_driver_gptimer - Driver for general purpose timers
esp_driver_pcnt - Driver for pulse counter
esp_driver_gpio - Driver for GPIO
esp_driver_spi - Driver for GPSPI
esp_driver_mcpwm - Driver for Motor Control PWM
esp_driver_sdmmc - Driver for SDMMC
esp_driver_sdspi - Driver for SDSPI
esp_driver_sdio - Driver for SDIO
esp_driver_ana_cmpr - Driver for Analog Comparator
esp_driver_i2s - Driver for I2S
esp_driver_dac - Driver for DAC
esp_driver_rmt - Driver for RMT
esp_driver_tsens - Driver for Temperature Sensor
esp_driver_sdm - Driver for Sigma-Delta Modulator
esp_driver_i2c - Driver for I2C
esp_driver_uart - Driver for UART
esp_driver_ledc - Driver for LEDC
esp_driver_parlio - Driver for Parallel IO
esp_driver_usb_serial_jtag - Driver for USB_SERIAL_JTAG
For compatibility, the original driver
component is still treated as an all-in-one component by registering these esp_driver_xyz components as its public dependencies. In other words, you do not need to modify the CMake file of an existing project, but you now have a way to specify the specific peripheral driver that your project depends on.
Originally, you may have used linker.lf to specify the link ___location of some driver functions in memory space, but now, because the ___location of the driver files have been moved, you need to make changes your linker.lf file accordingly. For example, a linker.lf file with the following entries:
[mapping:my_mapping_scheme]
archive: libdriver.a
entries:
gpio (noflash)
Should be changed to:
[mapping:my_mapping_scheme]
archive: libesp_driver_gpio.a
entries:
gpio (noflash)
Secure Element
The ATECC608A secure element interfacing example has been moved to ESP Cryptoauthlib Repository on GitHub.
This example is also part of the esp-cryptoauthlib in the ESP Component Registry.
I2S
Due to the cumbersome usage of the secondary pointer of DMA buffer, the data
field in the callback event i2s_event_data_t
is deprecated, please use the newly added first-level pointer dma_buf
instead.