@cond
@brief Set the attenuation of a particular channel on ADC1, and configure its associated GPIO pin mux.
@brief Configure ADC1 capture width, meanwhile enable output invert for ADC1.
The configuration is for all channels of ADC1
@param width_bit Bit capture width for ADC1
@brief Take an ADC1 reading from a single channel.
@note ESP32:
When the power switch of SARADC1, SARADC2, HALL sensor and AMP sensor is turned on,
the input of GPIO36 and GPIO39 will be pulled down for about 80ns.
When enabling power for any of these peripherals, ignore input from GPIO36 and GPIO39.
Please refer to section 3.11 of ‘ECO_and_Workarounds_for_Bugs_in_ESP32’ for the description of this issue.
As a workaround, call sar_periph_ctrl_adc_oneshot_power_acquire() in the app. This will result in higher power consumption (by ~1mA),
but will remove the glitches on GPIO36 and GPIO39.
@brief Get the GPIO number of a specific ADC1 channel.
@brief Configure the ADC2 channel, including setting attenuation.
@brief Take an ADC2 reading on a single channel
@brief Get the GPIO number of a specific ADC2 channel.
@brief Check the supported ADC calibration scheme
@brief Create a Curve Fitting calibration scheme
@brief Delete the Curve Fitting calibration scheme handle
@brief Convert ADC raw data to calibrated voltage
@brief Get GPIO number from the given ADC channel
@brief Set ADC continuous mode required configurations
@brief Deinitialize the ADC continuous driver.
@brief Flush the driver internal pool
@brief Get ADC channel from the given GPIO number
@brief Initialize ADC continuous driver and get a handle to it
@brief Read bytes from ADC under continuous mode.
@brief Register callbacks
@brief Start the ADC under continuous mode. After this, the hardware starts working.
@brief Stop the ADC. After this, the hardware stops working.
@brief Setting the digital controller.
@brief Deinitialize the Digital ADC.
@brief Initialize the Digital ADC.
@brief Read bytes from Digital ADC through DMA.
@brief Start the Digital ADC and DMA peripherals. After this, the hardware starts working.
@brief Stop the Digital ADC and DMA peripherals. After this, the hardware stops working.
@brief Get GPIO number from the given ADC channel
@brief Set ADC oneshot mode required configurations
@brief Delete the ADC unit handle
@brief Convenience function to get ADC calibrated result
@brief Get ADC channel from the given GPIO number
@brief Create a handle to a specific ADC unit
@brief Get one ADC conversion raw result
@brief Output ADC1 or ADC2’s reference voltage to adc2_channe_t
’s IO.
deprecated functions, for back-compatibility only
other functions
arg_xxx constructor functions
@brief Check if the image (bootloader and application) has valid chip ID and revision
@brief Check if a GPIO input is held low for a long period, short period, or not
at all.
@brief Check if a GPIO input is held low or high for a long period, short period, or not
at all.
@brief Erase the partition data that is specified in the transferred list.
@brief Returns the number of active otadata.
@brief Get chip package
@brief Calculates a sha-256 for a given partition or returns a appended digest.
@brief Determines if the list contains the label
@brief Calculate crc for the OTA data select.
@brief Returns true if OTADATA is not marked as bootable partition.
@brief Verifies the validity of the OTA data select
@brief Read ota_info partition and fill array from two otadata structures.
@brief Returns the number of active otadata.
@brief Configure VDDSDIO, call this API to rise VDDSDIO to 1.9V when VDDSDIO regulator is enabled as 1.8V mode.
@brief Configure default SPI pin modes and drive strengths
@brief Fill buffer with ‘length’ random bytes
@brief Verify and load an app image (available only in space of bootloader).
@brief Load an app image without verification (available only in space of bootloader).
@brief Disable entropy source for RNG
@brief Enable an entropy source for RNG if RF subsystem is disabled
@brief Extracts the input baud rate from the input structure exactly (without interpretation).
@brief Extracts the output baud rate from the input structure exactly (without interpretation).
@brief Set input baud rate in the termios structure
@brief Set output baud rate in the termios structure
INCLUDE_eTaskGetState must be defined as 1 for this function to be available.
See the configuration section for more information.
@brief Characterize an ADC at a particular attenuation
@brief Checks if ADC calibration values are burned into eFuse
@brief Reads an ADC and converts the reading to a voltage in mV
@brief Convert an ADC reading to voltage in mV
\brief Lock access to AES hardware unit
\brief AES-CBC buffer encryption/decryption
Length should be a multiple of the block
size (16 bytes)
\brief AES-CFB8 buffer encryption/decryption.
\brief AES-CFB128 buffer encryption/decryption.
\brief AES-CTR buffer encryption/decryption
\brief AES-ECB block encryption/decryption
\brief This function performs an AES-OFB (Output Feedback Mode)
encryption or decryption operation.
XTS-AES buffer encryption/decryption
Deprecated, see esp_aes_internal_decrypt
Deprecated, see esp_aes_internal_encrypt
\brief Clear AES context
\brief This function performs a GCM authenticated decryption of a
buffer.
\brief This function performs GCM encryption or decryption of a buffer.
\brief This function finishes the GCM operation and generates
the authentication tag.
\brief This function clears a GCM context
\brief This function initializes the specified GCM context
\brief This function associates a GCM context with a
key.
\brief This function starts a GCM encryption or decryption
operation.
\brief This function feeds an input buffer into an ongoing GCM
encryption or decryption operation.
\brief This function feeds an input buffer as associated data
(authenticated but not encrypted data) in a GCM
encryption or decryption operation.
\brief Initialize AES context
\brief Unlock access to AES hardware unit
\brief AES set key schedule (encryption or decryption)
\brief This function releases and clears the specified AES XTS context.
\brief This function initializes the specified AES XTS context.
\brief This function prepares an XTS context for decryption and
sets the decryption key.
\brief This function prepares an XTS context for encryption and
sets the encryption key.
@brief Return esp_app_desc structure. This structure includes app version.
@brief Fill the provided buffer with SHA256 of the ELF file, formatted as hexadecimal, null-terminated.
If the buffer size is not sufficient to fit the entire SHA256 in hex plus a null terminator,
the largest possible number of bytes will be written followed by a null.
@param dst Destination buffer
@param size Size of the buffer
@return Number of bytes written to dst (including null terminator)
Get the next frame on a stack for backtracing
Get the first frame of the current stack’s backtrace
@brief Print the backtrace of the current stack
@brief Print the backtrace from specified frame.
@brief Return base MAC address which is set using esp_base_mac_addr_set.
@brief Set base MAC address with the MAC address which is stored in BLK3 of EFUSE or
external storage e.g. flash and EEPROM.
@brief Reply the confirm value to the peer device in the secure connection stage.
@brief This function is called to create the OOB data for
SMP when secure connection
@brief This function is used to start a test where the DUT receives test reference packets
at a fixed interval.
@brief This function is used to start a test where the DUT generates reference packets
at a fixed interval.
@brief This function is used to start a test where the DUT receives test reference packets
at a fixed interval.
@brief This function is used to stop any test which is in progress
@brief This function is used to start a test where the DUT generates reference packets
at a fixed interval.
@brief This function is called to add a device info into the duplicate scan exceptional list.
@brief This function is called to clean the duplicate scan exceptional list.
This API will delete all device information in the duplicate scan exceptional list.
@brief This function is used to clear legacy advertising
@brief This function clears the random address for the application
@brief Clear all white list
@brief This function is called to override the BTA default ADV parameters.
@brief This function is called to set raw advertising data. User need to fill
ADV data by self.
@brief This function is used to set the data used in advertising PDUs that have a data field
@brief This function is used to provide scan response data used in scanning response PDUs
@brief set local gap appearance icon
@brief Enable/disable privacy (including address resolution) on the local device
@brief This function is used to set the data used in periodic advertising PDUs.
@brief This function is called to set raw scan response data. User need to fill
scan response data by self.
@brief This function is to disconnect the physical connection of the peer device
gattc may have multiple virtual GATT server connections when multiple app_id registered.
esp_ble_gattc_close (esp_gatt_if_t gattc_if, uint16_t conn_id) only close one virtual GATT server connection.
if there exist other virtual GATT server connections, it does not disconnect the physical connection.
esp_ble_gap_disconnect(esp_bd_addr_t remote_device) disconnect the physical connection directly.
@brief This function is used to remove all existing advertising sets from the Controller.
@brief This function is used by the Host to set the advertising parameters.
@brief This function is used by the Host to set the random device address specified by the Random_Address parameter.
@brief This function is used to remove an advertising set from the Controller.
@brief This function is used to request the Controller to enable one or more
advertising sets using the advertising sets identified by the instance parameter.
@brief This function is used to request the Controller to disable one or more
advertising sets using the advertising sets identified by the instance parameter.
@brief This function is called to get the current gap callback
@brief Get device name of the local device
@brief This function is called to get local used address and address type.
uint8_t *esp_bt_dev_get_address(void) get the public address
@brief Get the whitelist size in the controller
@brief This function is used to add a single device to the Periodic Advertiser list stored in the Controller
@brief This function is used to remove all devices from the list of Periodic Advertisers in the Controller.
@brief This function is used to synchronize with periodic advertising from an advertiser and begin receiving periodic advertising packets.
@brief This function is used to set periodic advertising receive enable
@brief This function is used to remove one device from the list of Periodic Advertisers stored in the Controller.
Removals from the Periodic Advertisers List take effect immediately.
@brief This function is used to transfer periodic advertising set info
@brief This function is used by the Host to set the parameters for periodic advertising.
@brief This function is used to request the Controller to enable the periodic advertising for the advertising set specified
@brief This function is used to request the Controller to disable the periodic advertising for the advertising set specified
@brief This function is used to cancel the LE_Periodic_Advertising_Create_Sync command while it is pending.
@brief This function is used to stop reception of the periodic advertising identified by the Sync Handle parameter.
@brief This function is used to transfer periodic advertising sync
@brief This function is used to set aux connection parameters
@brief This function is used to read the current transmitter PHY
and receiver PHY on the connection identified by remote address.
@brief This function is called to read the RSSI of remote device.
The address of link policy results are returned in the gap callback function with
ESP_GAP_BLE_READ_RSSI_COMPLETE_EVT event.
@brief This function is called to occur gap event, such as scan result
@brief This function is called to remove a device info from the duplicate scan exceptional list.
@brief Grant security request access.
@brief Set device name to the local device
Note: This API don’t affect the advertising data
@brief This function is used to set the extended scan parameters to be used on the advertising channels.
@brief This function is used to set periodic advertising sync transfer params
@brief This function is to set maximum LE data packet size
@brief This function is called to set the preferred connection
parameters when default connection parameter is not desired before connecting.
This API can only be used in the master role.
@brief This function is used to allows the Host to specify its preferred values
for the transmitter PHY and receiver PHY to be used for all subsequent connections
over the LE transport.
@brief This function is used to set the PHY preferences for the connection identified by the remote address.
The Controller might not be able to make the change (e.g. because the peer does not support the requested PHY)
or may decide that the current PHY is preferable.
@brief This function allows configuring either a Non-Resolvable Private Address or a Static Random Address
@brief This function is called to set scan parameters
@brief Set a GAP security parameter value. Overrides the default value.
@brief This function is called to start advertising.
@brief This function is used to enable scanning.
@brief This procedure keep the device scanning the peer device which advertising on the air
@brief This function is called to stop advertising.
@brief This function is used to disable scanning.
@brief This function call to stop the device scanning the peer device which advertising on the air
@return
- ESP_OK : success
- other : failed
@brief Update connection parameters, can only be used when connection is up.
@brief Add or remove device from white list
@brief This function is called to send vendor hci command.
@brief This function is called to set local MTU,
the function is called before BLE connection.
@brief This function is called to register application callbacks
with GATTC module.
@brief This function is called to unregister an application
from GATTC module.
@brief Add or delete the associated address with the source address.
Note: The role of this API is mainly when the client side has stored a server-side database,
when it needs to connect another device, but the device’s attribute database is the same
as the server database stored on the client-side, calling this API can use the database
that the device has stored used as the peer server database to reduce the attribute
database search and discovery process and speed up the connection time.
The associated address mains that device want to used the database has stored in the local cache.
The source address mains that device want to share the database to the associated address device.
@brief Clean the service cache of this device in the gattc stack,
@brief Get the address list which has store the attribute table in the gattc cache. There will
callback ESP_GATTC_GET_ADDR_LIST_EVT event when get address list complete.
@brief Refresh the server cache store in the gattc stack of the remote device. If
the device is connected, this API will restart the discovery of service information of the remote device
@brief Close the virtual connection to the GATT server. gattc may have multiple virtual GATT server connections when multiple app_id registered,
this API only close one virtual GATT server connection. if there exist other virtual GATT server connections,
it does not disconnect the physical connection.
if you want to disconnect the physical connection directly, you can use esp_ble_gap_disconnect(esp_bd_addr_t remote_device).
@brief This function is called to execute write a prepare write sequence.
@brief Find all the characteristic with the given service in the gattc cache
Note: It just get characteristic from local cache, won’t get from remote devices.
@brief Find all the descriptor with the given characteristic in the gattc cache
Note: It just get descriptor from local cache, won’t get from remote devices.
@brief Find the attribute count with the given service or characteristic in the gattc cache
@brief This function is called to get the current application callbacks
with BTA GATTC module.
@brief Find the characteristic with the given characteristic uuid in the gattc cache
Note: It just get characteristic from local cache, won’t get from remote devices.
@brief This function is called to get the GATT database.
Note: It just get attribute data base from local cache, won’t get from remote devices.
@brief Find the descriptor with the given characteristic handle in the gattc cache
Note: It just get descriptor from local cache, won’t get from remote devices.
@brief Find the descriptor with the given characteristic uuid in the gattc cache
Note: It just get descriptor from local cache, won’t get from remote devices.
@brief Find the include service with the given service handle in the gattc cache
Note: It just get include service from local cache, won’t get from remote devices.
@brief Find all the service with the given service uuid in the gattc cache, if the svc_uuid is NULL, find all the service.
Note: It just get service from local cache, won’t get from remote devices. If want to get it from remote device, need
to used the esp_ble_gattc_cache_refresh, then call esp_ble_gattc_get_service again.
@brief Open a direct connection or add a background auto connection
@brief This function is called to prepare write a characteristic value.
@brief This function is called to prepare write a characteristic descriptor value.
@brief This function is called to read a service’s characteristics of
the given characteristic UUID
@brief This function is called to read a service’s characteristics of
the given characteristic handle
@brief This function is called to read a characteristics descriptor.
@brief This function is called to read multiple characteristic or
characteristic descriptors.
@brief This function is called to read multiple variable length characteristic or
characteristic descriptors.
@brief This function is called to register application callbacks
with GATTC module.
@brief This function is called to register for notification of a service.
@brief This function is called to get service from local cache.
This function report service search result by a callback
event, and followed by a service search complete event.
Note: 128-bit base UUID will automatically be converted to a 16-bit UUID in the search results. Other types of UUID remain unchanged.
@brief Configure the MTU size in the GATT channel. This can be done
only once per connection. Before using, use esp_ble_gatt_set_local_mtu()
to configure the local MTU size.
@brief This function is called to de-register for notification of a service.
@brief This function is called to write characteristic value.
@brief This function is called to write characteristic descriptor value.
@brief This function is called to add a characteristic into a service.
@brief This function is called to add characteristic descriptor. When
it’s done, a callback event ESP_GATTS_ADD_DESCR_EVT is called
to report the status and an ID number for this descriptor.
@brief This function is called to add an included service. This function have to be called between
‘esp_ble_gatts_create_service’ and ‘esp_ble_gatts_add_char’. After included
service is included, a callback event ESP_GATTS_ADD_INCL_SRVC_EVT
is reported the included service ID.
@brief This function is called to register application identifier
@brief unregister with GATT Server.
@brief Close a connection a remote device.
@brief Create a service attribute tab.
@param[in] gatts_attr_db: the pointer to the service attr tab
@param[in] gatts_if: GATT server access interface
@param[in] max_nb_attr: the number of attribute to be added to the service database.
@param[in] srvc_inst_id: the instance id of the service
@brief Create a service. When service creation is done, a callback
event ESP_GATTS_CREATE_EVT is called to report status
and service ID to the profile. The service ID obtained in
the callback function needs to be used when adding included
service and characteristics/descriptors into the service.
@brief This function is called to delete a service. When this is done,
a callback event ESP_GATTS_DELETE_EVT is report with the status.
@brief Retrieve attribute value
@brief This function is called to get the current application callbacks
with BTA GATTS module.
@brief Open a direct open connection or add a background auto connection
@brief This function is called to register application callbacks
with BTA GATTS module.
@brief Send indicate or notify to GATT client.
Set param need_confirm as false will send notification, otherwise indication.
Note: the size of indicate or notify data need less than MTU size,see “esp_ble_gattc_send_mtu_req”.
@brief This function is called to send a response to a request.
@brief Send service change indication
@brief This function is called to set the attribute value by the application
@brief Print local database (GATT service table)
@brief This function is called to start a service.
@brief This function is called to stop a service.
@brief Get the device from the security database list of peer device.
It will return the device bonded information immediately.
@param[inout] dev_num: Indicate the dev_list array(buffer) size as input.
If dev_num is large enough, it means the actual number as output.
Suggest that dev_num value equal to esp_ble_get_bond_device_num().
@brief Get the device number from the security database list of peer device.
It will return the device bonded number immediately.
@brief This function is called to read the connection
parameters information of the device
@brief This function is called to provide the OOB data for
SMP in response to ESP_GAP_BLE_OOB_REQ_EVT
@brief Reply the key value to the peer device in the legacy connection stage.
@brief Removes a device from the security database list of
peer device. It manages unpairing event while connected.
@brief This function is called to get ADV data for a specific type.
@brief This function is called to provide the OOB data for
SMP in response to ESP_GAP_BLE_SC_OOB_REQ_EVT
@brief Set a gap parameter value. Use this function to change
the default GAP parameter values.
@brief Get BLE TX power
Connection Tx power should only be get after connection created.
@param power_type : The type of which tx power, could set Advertising/Connection/Default and etc
@return >= 0 - Power level, < 0 - Invalid
@brief Set BLE TX power
Connection Tx power should only be set after connection created.
@param power_type : The type of which tx power, could set Advertising/Connection/Default and etc
@param power_level: Power level(index) corresponding to absolute value(dbm)
@return ESP_OK - success, other - failed
@brief Deinit and free the resource for bluetooth, must be after every bluetooth stuff.
@brief Disable bluetooth, must prior to esp_bluedroid_deinit().
@brief Enable bluetooth, must after esp_bluedroid_init()/esp_bluedroid_init_with_cfg().
@brief Get bluetooth stack status
@brief Init and alloc the resource for bluetooth, must be prior to every bluetooth stuff.
@brief Init and alloc the resource for bluetooth, must be prior to every bluetooth stuff.
@brief Return esp_bootloader_desc structure.
@brief This function is used to update the path name of bluetooth bond keys saved in the NVS module
and need to be called before esp_bluedroid_init().
@param[in] file_path: the name of config file path, the length of file_path should be less than NVS_NS_NAME_MAX_SIZE
@brief De-initialize BT controller to free resource and delete task.
You should stop advertising and scanning, as well as
disconnect all existing connections before de-initializing BT controller.
@brief Disable BT controller
@return ESP_OK - success, other - failed
@brief Enable BT controller.
Due to a known issue, you cannot call esp_bt_controller_enable() a second time
to change the controller mode dynamically. To change controller mode, call
esp_bt_controller_disable() and then call esp_bt_controller_enable() with the new mode.
@param mode : the mode(BLE/BT/BTDM) to enable. For compatible of API, retain this argument. This mode must be
equal as the mode in “cfg” of esp_bt_controller_init().
@return ESP_OK - success, other - failed
@brief Get BT controller is initialised/de-initialised/enabled/disabled
@return status value
@brief Initialize BT controller to allocate task and other resource.
This function should be called only once, before any other BT functions are called.
@param cfg: Initial configuration of BT controller. Different from previous version, there’s a mode and some
connection configuration in “cfg” to configure controller work mode and allocate the resource which is needed.
@return ESP_OK - success, other - failed
@brief to check whether bluetooth controller is sleeping at the instant, if modem sleep is enabled
@brief esp_bt_controller_mem_release
release the controller memory as per the mode
@brief request controller to wakeup from sleeping state during sleep mode
@brief Config bluetooth device coexis status. This function should be called after esp_bluedroid_enable()
completes successfully.
@brief Get bluetooth device address. Must use after “esp_bluedroid_enable”.
@brief Set bluetooth device name. This function should be called after esp_bluedroid_enable()
completes successfully.
@brief Get the Bluetooth module sleep clock source.
@brief notify bluetooth controller task to process the event upon Tx or Rx done
@brief esp_bt_mem_release
release controller memory and BSS and data section of the BT/BLE host stack as per the mode
@brief disable bluetooth modem sleep
@brief enable bluetooth to enter modem sleep
@brief Register console command
@param cmd pointer to the command description; can point to a temporary value
@return
- ESP_OK on success
- ESP_ERR_NO_MEM if out of memory
- ESP_ERR_INVALID_ARG if command description includes invalid arguments
@brief de-initialize console module
@note Call this once when done using console module functions
@return
- ESP_OK on success
- ESP_ERR_INVALID_STATE if not initialized yet
@brief Callback which provides command completion for linenoise library
@brief Callback which provides command hints for linenoise library
@brief initialize console module
@param config console configuration
@note Call this once before using other console module features
@return
- ESP_OK on success
- ESP_ERR_NO_MEM if out of memory
- ESP_ERR_INVALID_STATE if already initialized
- ESP_ERR_INVALID_ARG if the configuration is invalid
@brief Establish a console REPL environment over UART driver
@brief Register a ‘help’ command
@brief Run command line
@param cmdline command line (command name followed by a number of arguments)
@param[out] cmd_ret return code from the command (set if command was run)
@return
- ESP_OK, if command was run
- ESP_ERR_INVALID_ARG, if the command line is empty, or only contained
whitespace
- ESP_ERR_NOT_FOUND, if command with given name wasn’t registered
- ESP_ERR_INVALID_STATE, if esp_console_init wasn’t called
@brief Split command line into arguments in place
@verbatim
@brief Start REPL environment
@param[in] repl REPL handle returned from esp_console_new_repl_xxx
@note Once the REPL gets started, it won’t be stopped until the user calls repl->del(repl) to destroy the REPL environment.
@return
- ESP_OK on success
- ESP_ERR_INVALID_STATE, if repl has started already
@brief Check integrity of coredump data in flash.
This function reads the coredump data while calculating their checksum. If it
doesn’t match the checksum written on flash, it means data are corrupted,
an error will be returned. Else, ESP_OK is returned.
@brief Erases coredump data in flash. esp_core_dump_image_get() will then return
ESP_ERR_NOT_FOUND. Can be used after a coredump has been transmitted successfully.
This function is always available, even when core dump is disabled in menuconfig.
@brief Retrieves address and size of coredump data in flash.
This function is always available, even when core dump is disabled in menuconfig.
@brief Initializes core dump module internal data.
@brief Print/store coredump data to the selected destination uart or flash.
@brief Clear a hardware breakpoint on the current CPU
@brief Clear a hardware watchpoint on the current CPU
@brief Atomic compare-and-set operation
@brief Configure the CPU to disable access to invalid memory regions
@brief Get a CPU interrupt’s descriptor
@brief Reset a CPU core
@brief Set and enable a hardware breakpoint on the current CPU
@brief Set and enable a hardware watchpoint on the current CPU
@brief Stall a CPU core
@brief Resume a previously stalled CPU core
@brief Wait for Interrupt
@brief Attach and enable use of a bundle for certificate verification
@brief Disable and dealloc the certification bundle
@brief Set the default certificate bundle used for verification
@brief Enter deep-sleep mode
@brief Unregister an deepsleep callback
@brief Disable logging from the ROM code after deep sleep.
@brief Enable wakeup using specific gpio pins
@brief Register a callback to be called from the deep sleep prepare
@brief Enter deep sleep with the configured wakeup options
@brief Enter deep-sleep mode
@brief Enter deep sleep with the configured wakeup options
@brief The default esp-idf-provided esp_wake_deep_sleep() stub.
@brief Unregister an idle callback. If the idle callback is registered to
the idle hooks of both cores, the idle hook will be unregistered from
both cores
@brief Unregister an idle callback from the idle hook of the specified core
@brief Unregister a tick callback. If the tick callback is registered to the
tick hooks of both cores, the tick hook will be unregistered from
both cores
@brief Unregister a tick callback from the tick hook of the specified core
@brief Derive local MAC address from universal MAC address.
@brief Clear the previously set Certificate Authority (CA) certificate for EAP authentication.
@brief Clear the previously set client certificate and private key for EAP authentication.
@brief Clear the previously set identity for PEAP/TTLS authentication.
@brief Clear new password for MSCHAPv2 method.
@brief Clear password for PEAP/TTLS method.
@brief Clear username for PEAP/TTLS method.
@brief Get EAP client certificates time check status.
@brief Set CA certificate for EAP authentication.
@brief Set client certificate and private key for EAP authentication.
@brief Set EAP client certificates time check (disable or not).
@brief Set the parameters for EAP-FAST Phase 1 authentication.
@brief Set identity for PEAP/TTLS authentication method.
@brief Set a new password for MSCHAPv2 authentication method.
@brief Set the PAC (Protected Access Credential) file for EAP-FAST authentication.
@brief Set password for PEAP/TTLS authentication method.
@brief Enable or disable Suite-B 192-bit certification checks.
@brief Set EAP-TTLS phase 2 method.
@brief Set username for PEAP/TTLS authentication method.
@brief Use the default certificate bundle for EAP authentication.
@brief Set the batch mode of writing fields.
@brief Reset the batch mode of writing fields.
@brief Writes all prepared data for the batch mode.
@brief Checks that the given block is empty.
@brief Checks eFuse errors in BLOCK0.
@brief Check secure_version from app and secure_version and from efuse field.
@brief Return the number of unused efuse key blocks in the range EFUSE_BLK_KEY0..EFUSE_BLK_KEY_MAX
@brief Disable ROM Download Mode via eFuse
@brief Switch ROM Download Mode to Secure Download mode via eFuse
@brief Find a key block with the particular purpose set.
@brief Search for an unused key block and return the first one found.
@brief Return efuse coding scheme for blocks.
@brief Returns the status of the Secure Boot public key digest revocation bit.
@brief Returns the number of bits used by field.
@brief Returns a pointer to a key block.
@brief Returns a read protection for the key block.
@brief Returns a write protection for the key block.
@brief Returns the current purpose set for an efuse key block.
@brief Returns a write protection of the key purpose field for an efuse key block.
@brief Returns chip package from efuse
@brief Returns a pointer to a key purpose for an efuse key block.
@brief Returns a write protection of the Secure Boot public key digest revocation bit.
@brief Returns true if the key block is unused, false otherwise.
@brief Return base MAC address which was previously written to BLK3 of EFUSE.
@brief Return base MAC address which is factory-programmed by Espressif in EFUSE.
@brief Read key to efuse block starting at the offset and the required size.
@brief Read a single bit eFuse field as a boolean value.
@brief Reads bits from EFUSE field and writes it into an array.
@brief Reads bits from EFUSE field and returns number of bits programmed as “1”.
@brief Returns value of efuse register.
@brief Return secure_version from efuse field.
@return Secure version from efuse field
@brief Reset efuse write registers
@brief Sets the Secure Boot public key digest revocation bit.
@brief Sets a read protection for the key block.
@brief Sets a write protection for the key block.
@brief Sets a key purpose for an efuse key block.
@brief Sets a write protection of the key purpose field for an efuse key block.
@brief Sets a read protection for the whole block.
@brief Set boot ROM log scheme via eFuse
@brief Sets a write protection for the whole block.
@brief Sets a write protection of the Secure Boot public key digest revocation bit.
@brief Write efuse field by secure_version value.
@brief Write key to efuse block starting at the offset and the required size.
@brief Write a single bit eFuse field to 1
@brief Writes array to EFUSE field.
@brief Writes a required count of bits as “1” to EFUSE field.
@brief Program a block of key data to an efuse block
@brief Program keys to unused efuse blocks
@brief Write value to efuse register.
@brief Returns string for esp_err_t error codes
@brief Returns string for esp_err_t and system error codes
@brief Set timeout of SmartConfig process.
@brief Decrease Ethernet driver reference
@brief Delete netif glue of Ethernet driver
@brief Install Ethernet driver
@brief Uninstall Ethernet driver
@note It’s not recommended to uninstall Ethernet driver unless it won’t get used any more in application code.
To uninstall Ethernet driver, you have to make sure, all references to the driver are released.
Ethernet driver can only be uninstalled successfully when reference counter equals to one.
@brief Increase Ethernet driver reference
@note Ethernet driver handle can be obtained by os timer, netif, etc.
It’s dangerous when thread A is using Ethernet but thread B uninstall the driver.
Using reference counter can prevent such risk, but care should be taken, when you obtain Ethernet driver,
this API must be invoked so that the driver won’t be uninstalled during your using time.
@brief Misc IO function of Etherent driver
@brief Create DM9051 Ethernet MAC instance
@brief Create KSZ8851SNL Ethernet MAC instance
@brief Create W5500 Ethernet MAC instance
@brief Create a netif glue for Ethernet driver
@note netif glue is used to attach io driver to TCP/IP netif
@brief Create a PHY instance of DM9051
@brief Create a PHY instance of DP83848
@brief Create a PHY instance of IP101
@brief Create a PHY instance of KSZ80xx
@brief Create a PHY instance of KSZ8851SNL
@brief Create a PHY instance of LAN87xx
@brief Create a PHY instance of RTL8201
@brief Create a PHY instance of W5500
@brief Start Ethernet driver ONLY in standalone mode (i.e. without TCP/IP stack)
@brief Stop Ethernet driver
@brief General Transmit
@brief Special Transmit with variable number of arguments
@brief Update Ethernet data input path (i.e. specify where to pass the input buffer)
@brief Connect an ETM event to an ETM task via a previously allocated ETM channel
@brief Disable ETM channel
@brief Enable ETM channel
@brief Delete an ETM channel
@brief Delete ETM event
@brief Delete ETM task
@brief Dump ETM channel usages to the given IO stream
@brief Allocate an ETM channel
@brief Dumps statistics of all event loops.
@brief Register an instance of event handler to the default loop.
@brief Register an instance of event handler to a specific loop.
@brief Unregister a handler from the system event loop.
@brief Unregister a handler instance from a specific event loop.
@brief Register an event handler to the system event loop (legacy).
@brief Register an event handler to a specific loop (legacy).
@brief Unregister a handler with the system event loop (legacy).
@brief Unregister a handler from a specific event loop (legacy).
@brief Special variant of esp_event_post for posting events from interrupt handlers.
@brief Special variant of esp_event_post_to for posting events from interrupt handlers
@brief Create a new event loop.
@brief Create default event loop
@brief Delete an existing event loop.
@brief Delete the default event loop
@brief Dispatch events posted to an event loop.
@brief Posts an event to the system default event loop. The event loop library keeps a copy of event_data and manages
the copy’s lifetime automatically (allocation + deletion); this ensures that the data the
handler receives is always valid.
@brief Posts an event to the specified event loop. The event loop library keeps a copy of event_data and manages
the copy’s lifetime automatically (allocation + deletion); this ensures that the data the
handler receives is always valid.
@brief Fill a buffer with random bytes from hardware RNG
Check if appropriate chip driver is set.
@brief Erase flash chip contents
@brief Erase a region of the flash chip
@brief Read if the entire chip is write protected
@brief Detect flash size based on flash ID.
@brief Read the list of individually protectable regions of this SPI flash chip.
@brief Detect if a region of the SPI flash chip is protected
@brief Detect flash size based on flash ID.
@brief Initialise SPI flash chip interface.
@brief Read data from the SPI flash chip
@brief Read and decrypt data from the SPI flash chip using on-chip hardware flash encryption
@brief Read flash ID via the common “RDID” SPI flash command.
@brief Read flash unique ID via the common “RDUID” SPI flash command.
@brief Set write protection for the SPI flash chip
@brief Update the protected status for a region of the SPI flash chip
@brief Write data to the SPI flash chip
@brief Encrypted and write data to the SPI flash chip using on-chip hardware flash encryption
@brief This function is called to authorized a link after Authentication(MITM protection)
@brief BLE set channels
@brief Get current wake from deep sleep stub
@return Return current wake from deep sleep stub, or NULL if
no stub is installed.
@brief Get the size of available heap.
@brief Get the size of available internal heap.
Return full IDF version string, same as ‘git describe’ output.
@brief Get the minimum heap that has ever been available
@brief On receiving HTTP Status code 401, this API can be invoked to add authorization
information.
@brief Cancel an ongoing HTTP request. This API closes the current socket and opens a new socket with the same esp_http_client context.
@brief This function must be the last function to call for an session.
It is the opposite of the esp_http_client_init function and must be called with the same handle as input that a esp_http_client_init call returned.
This might close all connections this handle has used and possibly has kept open until now.
Don’t call this function if you intend to transfer more files, re-using handles is a key to good performance with esp_http_client.
@brief Close http connection, still kept all http request resources
@brief Delete http request header
@brief This function need to call after esp_http_client_open, it will read from http stream, process all receive headers
@brief Process all remaining response data
This uses an internal buffer to repeatedly receive, parse, and discard response data until complete data is processed.
As no additional user-supplied buffer is required, this may be preferrable to esp_http_client_read_response
in situations where the content of the response may be ignored.
@brief Get Chunk-Length from client
@brief Get http response content length (from header Content-Length)
the valid value if this function invoke after esp_http_client_perform
@brief Get HTTP client session errno
@brief Get http request header.
The value parameter will be set to NULL if there is no header which is same as
the key specified, otherwise the address of header value will be assigned to value parameter.
This function must be called after esp_http_client_init
.
@brief Get http request password.
The address of password buffer will be assigned to value parameter.
This function must be called after esp_http_client_init
.
@brief Get current post field information
@brief Get http response status code, the valid value if this function invoke after esp_http_client_perform
@brief Get transport type
@brief Get URL from client
@brief Get http request user_data.
The value stored from the esp_http_client_config_t will be written
to the address passed into data.
@brief Get http request username.
The address of username buffer will be assigned to value parameter.
This function must be called after esp_http_client_init
.
@brief Start a HTTP session
This function must be the first function to call,
and it returns a esp_http_client_handle_t that you must use as input to other functions in the interface.
This call MUST have a corresponding call to esp_http_client_cleanup when the operation is complete.
@brief Check response data is chunked
@brief Checks if entire data in the response has been read without any error.
@brief This function will be open the connection, write all header strings and return
@brief Invoke this function after esp_http_client_init
and all the options calls are made, and will perform the
transfer as described in the options. It must be called with the same esp_http_client_handle_t as input as the esp_http_client_init call returned.
esp_http_client_perform performs the entire request in either blocking or non-blocking manner. By default, the API performs request in a blocking manner and returns when done,
or if it failed, and in non-blocking manner, it returns if EAGAIN/EWOULDBLOCK or EINPROGRESS is encountered, or if it failed. And in case of non-blocking request,
the user may call this API multiple times unless request & response is complete or there is a failure. To enable non-blocking esp_http_client_perform(), is_async
member of esp_http_client_config_t
must be set while making a call to esp_http_client_init() API.
You can do any amount of calls to esp_http_client_perform while using the same esp_http_client_handle_t. The underlying connection may be kept open if the server allows it.
If you intend to transfer more than one file, you are even encouraged to do so.
esp_http_client will then attempt to re-use the same connection for the following transfers, thus making the operations faster, less CPU intense and using less network resources.
Just note that you will have to use esp_http_client_set_**
between the invokes to set options for the following esp_http_client_perform.
@brief Read data from http stream
@brief Helper API to read larger data chunks
This is a helper API which internally calls esp_http_client_read
multiple times till the end of data is reached or till the buffer gets full.
@brief On receiving a custom authentication header, this API can be invoked to set the
authentication information from the header. This API can be called from the event
handler.
@brief Set http request auth_type.
@brief Set http request header, this function must be called after esp_http_client_init and before any
perform function
@brief Set http request method
@brief Set http request password.
The value of password parameter will be assigned to password buffer.
If the password parameter is NULL then password buffer will be freed.
@brief Set post data, this function must be called before esp_http_client_perform
.
Note: The data parameter passed to this function is a pointer and this function will not copy the data
@brief Set redirection URL.
When received the 30x code from the server, the client stores the redirect URL provided by the server.
This function will set the current URL to redirect to enable client to execute the redirection request.
When disable_auto_redirect
is set, the client will not call this function but the event HTTP_EVENT_REDIRECT
will be dispatched giving the user contol over the redirection event.
@brief Set http request timeout
@brief Set URL for client, when performing this behavior, the options in the URL will replace the old ones
@brief Set http request user_data.
The value passed in +data+ will be available during event callbacks.
No memory management will be performed on the user’s behalf.
@brief Set http request username.
The value of username parameter will be assigned to username buffer.
If the username parameter is NULL then username buffer will be freed.
@brief This function will write data to the HTTP connection previously opened by esp_http_client_open()
@brief Set custom MAC address of the interface. This function allows you to overwrite the MAC addresses
of the interfaces set by the base MAC address.
@brief Get the flash size of the image
@brief Get metadata of app
@brief Verify an app image.
@brief Verify the bootloader image.
@brief Verify the bootloader image.
@brief Enable the interrupt watchdog on the current CPU.
@brief Initialize the non-CPU-specific parts of interrupt watchdog.
\brief Internal AES block decryption function
(Only exposed to allow overriding it,
see AES_DECRYPT_ALT)
\brief Internal AES block encryption function
(Only exposed to allow overriding it,
see AES_ENCRYPT_ALT)
@brief Allocate an interrupt with the given parameters.
@brief Allocate an interrupt with the given parameters.
@brief Disable the interrupt associated with the handle
@brief disable the interrupt source based on its number
@param inum interrupt number from 0 to 31
@brief Dump the status of allocated interrupts
@param stream The stream to dump to, if NULL then stdout is used
@return ESP_OK on success
@brief Enable the interrupt associated with the handle
@brief enable the interrupt source based on its number
@param inum interrupt number from 0 to 31
@brief Disable and free an interrupt.
@brief Get CPU number an interrupt is tied to
@brief Get the allocated interrupt for a certain handle
@brief Mark an interrupt as a shared interrupt
@brief Disable interrupts that aren’t specifically marked as running from IRAM
@brief Re-enable interrupts disabled by esp_intr_noniram_disable
@brief Reserve an interrupt to be used outside of this framework
@brief Set the “in IRAM” status of the handler.
@brief Ascii internet address interpretation routine
The value returned is in network order.
@brief Converts numeric IP address into decimal dotted ASCII representation.
@brief Create LCD panel IO handle, for I2C interface in legacy implementation
@brief Create LCD panel IO handle, for I2C interface in new implementation
@brief Create LCD panel IO handle, for SPI interface
@brief Create LCD panel for model NT35510
@brief Create LCD panel for model SSD1306
@brief Create LCD panel for model ST7789
@brief Deinitialize the LCD panel
@brief Turn off the display
@brief Turn on or off the display
@brief Enter or exit sleep mode
@brief Draw bitmap on LCD panel
@brief Initialize LCD panel
@brief Invert the color (bit-wise invert the color data line)
@brief Destroy LCD panel IO handle (deinitialize panel and free all corresponding resource)
@brief Register LCD panel IO callbacks
@brief Transmit LCD command and receive corresponding parameters
@brief Transmit LCD RGB data
@brief Transmit LCD command and corresponding parameters
@brief Mirror the LCD panel on specific axis
@brief Reset LCD panel
@brief Set extra gap in x and y axis
@brief Swap/Exchange x and y axis
@brief Enter light sleep with the configured wakeup options
@brief Function which returns timestamp to be used in log output
@brief Get log level for a given tag, can be used to avoid expensive log statements
@brief Set log level for given tag
@brief Set function used to output log entries
@brief Function which returns system timestamp to be used in log output
@brief Function which returns timestamp to be used in log output
@brief Write message into the log
@brief Return the size of the MAC type in bytes.
\brief Clone (the state of) an MD5 context
\brief MD5 final digest
\brief Clear MD5 context
\brief Initialize MD5 context
\brief MD5 process data block (internal use only)
\brief MD5 process buffer
@brief Set whether allow more than one root existing in one network
@brief Return the number of packets could be accepted from the specified address
@brief Connect to current parent
@brief Mesh de-initialization
@brief Delete group ID addresses
@brief Disable mesh Power Save function
@brief Disconnect from current parent
@brief Enable mesh Power Save function
@brief Enable network Fixed Root Setting
- Enabling fixed root disables automatic election of the root node via voting.
- All devices in the network shall use the same Fixed Root Setting (enabled or disabled).
- If Fixed Root is enabled, users should make sure a root node is designated for the network.
@brief Flush scan result
@brief Flush upstream packets pending in to_parent queue and to_parent_p2p queue
@brief Get device duty cycle and type
@brief Get announce interval
@brief Get mesh softAP associate expired time
@brief Get mesh softAP authentication mode
@brief Get mesh max connection configuration
@brief Get attempts for mesh self-organized networking
@brief Get mesh softAP beacon interval
@brief Get mesh network capacity
@brief Get mesh stack configuration
@brief Get group ID addresses
@brief Get the number of group ID addresses
@brief Get mesh network ID
@brief Get mesh IE crypto key
@brief Get current layer value over the mesh network
@brief Get max layer value
@brief Get the network duty cycle, duration, type and rule
@brief Get non-mesh max connection configuration
@brief Get the parent BSSID
@brief Get passive scan time
@brief Get delay time before network starts root healing
@brief Get router configuration
@brief Get the router BSSID
@brief Get routing table of this device’s sub-network (including itself)
@brief Get the number of devices in this device’s sub-network (including self)
@brief Get RSSI threshold of current parent
@brief Get the running active duty cycle
- The running active duty cycle of the root is 100.
- If duty type is set to MESH_PS_DEVICE_DUTY_REQUEST, the running active duty cycle is nwk_duty provided by the network.
- If duty type is set to MESH_PS_DEVICE_DUTY_DEMAND, the running active duty cycle is dev_duty specified by the users.
- In a mesh network, devices are typically working with a certain duty-cycle (transmitting, receiving and sleep) to
reduce the power consumption. The running active duty cycle decides the amount of awake time within a beacon interval.
At each start of beacon interval, all devices wake up, broadcast beacons, and transmit packets if they do have pending
packets for their parents or for their children. Note that Low-duty-cycle means devices may not be active in most of
the time, the latency of data transmission might be greater.
@brief Return the number of packets available in the queue waiting to be received by applications
@brief Return whether enable self-organized networking or not
@brief Get nodes in the subnet of a specific child
@brief Get the number of nodes in the subnet of a specific child
@brief Get parameters for parent switch
@brief Get mesh topology
@brief Get total number of devices in current network (including the root)
@brief Get the TSF time
@brief Return the number of packets pending in the queue waiting to be sent by the mesh stack
@brief Get device type over mesh network
@brief Get vote percentage threshold for approval of being a root
@brief Get queue size
@brief Check whether the device is in active state
- If the device is not in active state, it will neither transmit nor receive frames.
@brief Check whether the specified group address is my group
@brief Check whether the mesh Power Save function is enabled
@brief Return whether the device is the root node of the network
@brief Check whether allow more than one root to exist in one network
@brief Check whether network Fixed Root Setting is enabled
- Enable/disable network Fixed Root Setting by API esp_mesh_fix_root().
- Network Fixed Root Setting also changes with the “flag” value in parent networking IE.
@brief Post the toDS state to the mesh stack
@brief Print the number of rxQ waiting
@brief Enable mesh print scan result
@brief Print the number of txQ waiting
@brief Duty signaling
@brief Get the running duties of device, parent and children
@brief Receive a packet targeted to self over the mesh network
@brief Receive a packet targeted to external IP network
- Root uses this API to receive packets destined to external IP network
- Root forwards the received packets to the final destination via socket.
- If no socket connection is ready to send out the received packets and this esp_mesh_recv_toDS()
hasn’t been called by applications, packets from the whole mesh network will be pending in toDS queue.
@brief Get mesh networking IE length of one AP
@brief Get AP record
@brief Send a packet over the mesh network
- Send a packet to any device in the mesh network.
- Send a packet to external IP network.
@brief Set blocking time of esp_mesh_send()
@brief Enable the minimum rate to 6 Mbps
@brief Set the device duty cycle and type
- The range of dev_duty values is 1 to 100. The default value is 10.
- dev_duty = 100, the PS will be stopped.
- dev_duty is better to not less than 5.
- dev_duty_type could be MESH_PS_DEVICE_DUTY_REQUEST or MESH_PS_DEVICE_DUTY_DEMAND.
- If dev_duty_type is set to MESH_PS_DEVICE_DUTY_REQUEST, the device will use a nwk_duty provided by the network.
- If dev_duty_type is set to MESH_PS_DEVICE_DUTY_DEMAND, the device will use the specified dev_duty.
@brief Set announce interval
- The default short interval is 500 milliseconds.
- The default long interval is 3000 milliseconds.
@brief Set mesh softAP associate expired time (default:10 seconds)
- If mesh softAP hasn’t received any data from an associated child within this time,
mesh softAP will take this child inactive and disassociate it.
- If mesh softAP is encrypted, this value should be set a greater value, such as 30 seconds.
@brief Set mesh softAP authentication mode
@brief Set mesh max connection value
- Set mesh softAP max connection = mesh max connection + non-mesh max connection
@brief Set mesh softAP password
@brief Set attempts for mesh self-organized networking
@brief Set mesh network capacity (max:1000, default:300)
@brief Set mesh stack configuration
- Use MESH_INIT_CONFIG_DEFAULT() to initialize the default values, mesh IE is encrypted by default.
- Mesh network is established on a fixed channel (1-14).
- Mesh event callback is mandatory.
- Mesh ID is an identifier of an MBSS. Nodes with the same mesh ID can communicate with each other.
- Regarding to the router configuration, if the router is hidden, BSSID field is mandatory.
@brief Set group ID addresses
@brief Set mesh network ID
@brief Set mesh IE crypto functions
@brief Set mesh IE crypto key
@brief Set network max layer value
- for tree topology, the max is 25.
- for chain topology, the max is 1000.
- Network max layer limits the max hop count.
@brief Set the network duty cycle, duration and rule
- The range of nwk_duty values is 1 to 100. The default value is 10.
- nwk_duty is the network duty cycle the entire network or the up-link path will use. A device that successfully
sets the nwk_duty is known as a NWK-DUTY-MASTER.
- duration_mins specifies how long the specified nwk_duty will be used. Once duration_mins expires, the root will take
over as the NWK-DUTY-MASTER. If an existing NWK-DUTY-MASTER leaves the network, the root will take over as the
NWK-DUTY-MASTER again.
- duration_mins = (-1) represents nwk_duty will be used until a new NWK-DUTY-MASTER with a different nwk_duty appears.
- Only the root can set duration_mins to (-1).
- If applied_rule is set to MESH_PS_NETWORK_DUTY_APPLIED_ENTIRE, the nwk_duty will be used by the entire network.
- If applied_rule is set to MESH_PS_NETWORK_DUTY_APPLIED_UPLINK, the nwk_duty will only be used by the up-link path nodes.
- The root does not accept MESH_PS_NETWORK_DUTY_APPLIED_UPLINK.
- A nwk_duty with duration_mins(-1) set by the root is the default network duty cycle used by the entire network.
@brief Set a specified parent for the device
@brief Set passive scan time
@brief Set delay time before starting root healing
@brief Get router configuration
@brief Set RSSI threshold of current parent
- The default high RSSI threshold value is -78 dBm.
- The default medium RSSI threshold value is -82 dBm.
- The default low RSSI threshold value is -85 dBm.
@brief Enable/disable self-organized networking
- Self-organized networking has three main functions:
select the root node;
find a preferred parent;
initiate reconnection if a disconnection is detected.
- Self-organized networking is enabled by default.
- If self-organized is disabled, users should set a parent for the device via esp_mesh_set_parent().
@brief Set parameters for parent switch
@brief Set mesh topology. The default value is MESH_TOPO_TREE
- MESH_TOPO_CHAIN supports up to 1000 layers
@brief Designate device type over the mesh network
- MESH_IDLE: designates a device as a self-organized node for a mesh network
- MESH_ROOT: designates the root node for a mesh network
- MESH_LEAF: designates a device as a standalone Wi-Fi station that connects to a parent
- MESH_STA: designates a device as a standalone Wi-Fi station that connects to a router
@brief Set vote percentage threshold for approval of being a root (default:0.9)
- During the networking, only obtaining vote percentage reaches this threshold,
the device could be a root.
@brief Set the number of RX queue for the node, the average number of window allocated to one of
its child node is: wnd = xon_qsize / (2 * max_connection + 1).
However, the window of each child node is not strictly equal to the average value,
it is affected by the traffic also.
@brief Start mesh
- Initialize mesh IE.
- Start mesh network management service.
- Create TX and RX queues according to the configuration.
- Register mesh packets receive callback.
@brief Stop mesh
- Deinitialize mesh IE.
- Disconnect with current parent.
- Disassociate all currently associated children.
- Stop mesh network management service.
- Unregister mesh packets receive callback.
- Delete TX and RX queues.
- Release resources.
- Restore Wi-Fi softAP to default settings if Wi-Fi dual mode is enabled.
- Set Wi-Fi Power Save type to WIFI_PS_NONE.
@brief Cause the root device to add Channel Switch Announcement Element (CSA IE) to beacon
- Set the new channel
- Set how many beacons with CSA IE will be sent before changing a new channel
- Enable the channel switch function
@brief Cause the root device to give up (waive) its mesh root status
- A device is elected root primarily based on RSSI from the external router.
- If external router conditions change, users can call this API to perform a root switch.
- In this API, users could specify a desired root address to replace itself or specify an attempts value
to ask current root to initiate a new round of voting. During the voting, a better root candidate would
be expected to find to replace the current one.
- If no desired root candidate, the vote will try a specified number of attempts (at least 15). If no better
root candidate is found, keep the current one. If a better candidate is found, the new better one will
send a root switch request to the current root, current root will respond with a root switch acknowledgment.
- After that, the new candidate will connect to the router to be a new root, the previous root will disconnect
with the router and choose another parent instead.
@brief Lock access to RSA Accelerator (MPI/bignum operations)
@brief Unlock access to RSA Accelerator (MPI/bignum operations)
@brief Destroys the client handle
@brief This api is typically used to force disconnection from the broker
@brief Enqueue a message to the outbox, to be sent later. Typically used for
messages with qos>0, but could be also used for qos=0 messages if store=true.
@brief Get outbox size
@brief Creates MQTT client handle based on the configuration
@brief Client to send a publish message to the broker
@brief This api is typically used to force reconnection upon a specific event
@brief Registers MQTT event
@brief Sets MQTT connection URI. This API is usually used to overrides the
URI configured in esp_mqtt_client_init
@brief Starts MQTT client with already created client handle
@brief Stops MQTT client tasks
@brief Subscribe the client to a list of defined topics with defined qos
@brief Subscribe the client to defined topic with defined qos
@brief Unregisters mqtt event
@brief Unsubscribe the client from defined topic
@brief Dispatch user event to the mqtt internal event loop
@brief Set configuration structure, typically used when updating the config
(i.e. on “before_connect” event
@brief End NAN Datapath that is active
@brief Send Datapath Request to the Publisher with matching service
@brief Send Datapath Response to accept or reject the received request
@brief Start Publishing a service in the NAN cluster
@brief Send Follow-up to the Publisher with matching service
@brief Subscribe for a service within the NAN cluster
@brief Default building block for network interface action upon IPv6 address added by the underlying stack
@brief Default building block for network interface action upon IO driver connected event
@brief Default building block for network interface action upon IO driver disconnected event
@brief Default building block for network interface action upon network got IP event
@brief Default building block for network interface action upon IPv6 multicast group join
@brief Default building block for network interface action upon IPv6 multicast group leave
@brief Default building block for network interface action upon IPv6 address removed by the underlying stack
@brief Default building block for network interface action upon IO driver start event
Creates network interface, if AUTOUP enabled turns the interface on,
if DHCPS enabled starts dhcp server
@brief Default building block for network interface action upon IO driver stop event
@brief Attaches esp_netif instance to the io driver handle
@brief Attaches wifi soft AP interface to supplied netif
@brief Attaches wifi station interface to supplied netif
@brief Creates default WIFI AP. In case of any init error this API aborts.
@brief Creates default STA and AP network interfaces for esp-mesh.
@brief Creates default WIFI NAN. In case of any init error this API aborts.
@brief Creates default WIFI STA. In case of any init error this API aborts.
@brief Create interface link-local IPv6 address
@brief Creates esp_netif WiFi object based on the custom configuration.
@brief Deinitialize the esp-netif component (and the underlying TCP/IP stack)
@brief Destroys the esp_netif object
@brief Destroys default WIFI netif created with esp_netif_create_default_wifi_…() API.
@brief Get DHCP client status
@brief Set or Get DHCP client option
@brief Start DHCP client (only if enabled in interface object)
@brief Stop DHCP client (only if enabled in interface object)
@brief Populate IP addresses of clients connected to DHCP server listed by their MAC addresses
@brief Get DHCP Server status
@brief Set or Get DHCP server option
@brief Start DHCP server (only if enabled in interface object)
@brief Stop DHCP server (only if enabled in interface object)
@brief Return a netif pointer for the first interface that meets criteria defined
by the callback
@brief Get all IPv6 addresses of the specified interface
@brief Getter function of the default netif
@brief Returns configured interface type for this esp-netif instance
@brief Get DNS Server information
@brief Returns configured event for this esp-netif instance and supplied event type
@brief Returns configured flags for this interface
@brief Searches over a list of created objects to find an instance with supplied if key
@brief Get interface hostname.
@brief Returns configured interface key for this esp-netif instance
@brief Gets media driver handle for this esp-netif instance
@brief Get interface global IPv6 address
@brief Get interface link-local IPv6 address
@brief Get interface’s IP address information
@brief Get the mac address for the interface instance
@brief Get net interface index from network stack implementation
@brief Get net interface name from network stack implementation
@brief Returns number of registered esp_netif objects
@brief Get interface’s old IP information
@brief Returns configured routing priority number
@brief Initialize the underlying TCP/IP stack
@brief Get the IPv6 address type
@brief Test if supplied interface is up or down
@brief Cause the TCP/IP stack to join a IPv6 multicast group
@brief Cause the TCP/IP stack to leave a IPv6 multicast group
@brief Disable NAPT on an interface.
@brief Enable NAPT on an interface
@brief free the netstack buffer
@brief increase the reference counter of net stack buffer
@brief Creates an instance of new esp-netif object based on provided config
@brief Iterates over list of interfaces. Returns first netif if NULL given as parameter
@brief Iterates over list of interfaces without list locking. Returns first netif if NULL given as parameter
@brief Passes the raw packets from communication media to the appropriate TCP/IP stack
@brief Manual configuration of the default netif
@brief Set DNS Server information
@brief Configures driver related options of esp_netif object
@brief Set the hostname of an interface
@brief Sets IPv4 address to the specified octets
@brief Set interface’s IP address information
@brief Set the mac address for the interface instance
@brief Set interface old IP information
@brief Deinitialize esp_netif SNTP module
@brief Initialize SNTP with supplied config struct
@param config Config struct
@return ESP_OK on success
@brief Start SNTP service
if it wasn’t started during init (config.start = false)
or restart it if already started
@return ESP_OK on success
@brief Wait for time sync event
@param tout Specified timeout in RTOS ticks
@return ESP_TIMEOUT if sync event didn’t came withing the timeout
ESP_ERR_NOT_FINISHED if the sync event came, but we’re in smooth update mode and still in progress (SNTP_SYNC_STATUS_IN_PROGRESS)
ESP_OK if time sync’ed
@brief Converts Ascii internet IPv4 address into esp_ip4_addr_t
@brief Converts Ascii internet IPv6 address into esp_ip4_addr_t
Zeros in the IP address can be stripped or completely ommited: “2001:db8:85a3:0:0:0:2:1” or “2001:db8::2:1”)
@brief Utility to execute the supplied callback in TCP/IP context
@param fn Pointer to the callback
@param ctx Parameter to the callback
@return The error code (esp_err_t) returned by the callback
Function which sets up newlib in ROM for use with ESP-IDF
Postponed _GLOBAL_REENT stdio FPs initialization.
Initialize newlib static locks
@brief Add a peer to peer list
@brief De-initialize ESPNOW function
@brief Delete a peer from peer list
@brief Fetch a peer from peer list. Only return the peer which address is unicast, for the multicast/broadcast address, the function will ignore and try to find the next in the peer list.
@brief Get a peer whose MAC address matches peer_addr from peer list
@brief Get the number of peers
@brief Get the version of ESPNOW
@brief Initialize ESPNOW function
@brief Peer exists or not
@brief Modify a peer
@brief Register callback function of receiving ESPNOW data
@brief Register callback function of sending ESPNOW data
@brief Send ESPNOW data
@brief Set ESPNOW rate config for each peer
@brief Set the primary master key
@brief Set wake window for esp_now to wake up in interval unit
@brief Unregister callback function of receiving ESPNOW data
@brief Unregister callback function of sending ESPNOW data
@brief Abort OTA update, free the handle and memory associated with it.
@brief Commence an OTA update writing to the specified partition.
@brief Checks applications on the slots which can be booted in case of rollback.
@brief Finish OTA update and validate newly written app image.
@brief Erase previous boot app partition and corresponding otadata select for this partition.
@brief Return esp_app_desc structure. This structure includes app version.
@brief Fill the provided buffer with SHA256 of the ELF file, formatted as hexadecimal, null-terminated.
If the buffer size is not sufficient to fit the entire SHA256 in hex plus a null terminator,
the largest possible number of bytes will be written followed by a null.
@brief Returns number of ota partitions provided in partition table.
@brief Get partition info of currently configured boot app
@brief Returns the description structure of the bootloader.
@brief Returns last partition with invalid state (ESP_OTA_IMG_INVALID or ESP_OTA_IMG_ABORTED).
@brief Return the next OTA app partition which should be written with a new firmware.
@brief Returns esp_app_desc structure for app partition. This structure includes app version.
@brief Get partition info of currently running app
@brief Returns state for given partition.
@brief This function is called to roll back to the previously workable app with reboot.
@brief This function is called to indicate that the running app is working well.
@brief Configure OTA data for a new boot partition
@brief Write OTA update data to partition
@brief Write OTA update data to partition at an offset
@brief Check for the identity of two partitions by SHA-256 digest.
@brief Deregister the partition previously registered using esp_partition_register_external
@param partition pointer to the partition structure obtained from esp_partition_register_external,
@return
- ESP_OK on success
- ESP_ERR_NOT_FOUND if the partition pointer is not found
- ESP_ERR_INVALID_ARG if the partition comes from the partition table
- ESP_ERR_INVALID_ARG if the partition was not registered using
esp_partition_register_external function.
@brief Erase part of the partition
@brief Find partition based on one or more parameters
@brief Find first partition based on one or more parameters
@brief Get esp_partition_t structure for given partition
@brief Get SHA-256 digest for required partition.
Check whether the region on the main flash is not read-only.
@brief Release partition iterator
Check whether the region on the main flash is safe to write.
@brief Configure MMU to map partition into data memory
@brief Release region previously obtained using esp_partition_mmap
@brief Move partition iterator to the next partition found
@brief Read data from the partition
@brief Read data from the partition without any transformation/decryption.
@brief Register a partition on an external flash chip
@brief Unload partitions and free space allocated by them
@brief Verify partition data
@brief Write data to the partition
@brief Write data to the partition without any transformation/encryption.
@brief Delete a ping session
@brief Get runtime profile of ping session
@brief Create a ping session
@brief Start the ping session
@brief Stop the ping session
@brief Set implementation-specific power management configuration
@param config pointer to implementation-specific configuration structure (e.g. esp_pm_config_esp32)
@return
- ESP_OK on success
- ESP_ERR_INVALID_ARG if the configuration values are not correct
- ESP_ERR_NOT_SUPPORTED if certain combination of values is not supported,
or if CONFIG_PM_ENABLE is not enabled in sdkconfig
Dump the list of all locks to stderr
@brief Get implementation-specific power management configuration
@param config pointer to implementation-specific configuration structure (e.g. esp_pm_config_esp32)
@return
- ESP_OK on success
- ESP_ERR_INVALID_ARG if the pointer is null
@brief Take a power management lock
@brief Initialize a lock handle for certain power management parameter
@brief Delete a lock created using esp_pm_lock
@brief Release the lock taken using esp_pm_lock_acquire.
@brief Get the available size of the attached PSRAM chip
@brief Initialize PSRAM interface/hardware.
@brief If PSRAM has been initialized
@brief Get current pthread creation configuration
@brief Creates a default pthread configuration based
on the values set via menuconfig.
@brief Initialize pthread library
@brief Configure parameters for creating pthread
@brief Get one random 32-bit word from hardware RNG
@brief Read base MAC address and set MAC address of the interface.
Clean up some of lazily allocated buffers in REENT structures.
Replacement for newlib’s _REENT_INIT_PTR and __sinit.
@brief Register a callback to the idle hook of the core that calls this function.
The callback should return true if it should be called by the idle hook
once per interrupt (or FreeRTOS tick), and return false if it should
be called repeatedly as fast as possible by the idle hook.
@brief Register a callback to be called from the specified core’s idle hook.
The callback should return true if it should be called by the idle hook
once per interrupt (or FreeRTOS tick), and return false if it should
be called repeatedly as fast as possible by the idle hook.
@brief Register a callback to be called from the calling core’s tick hook.
@brief Register a callback to be called from the specified core’s tick hook.
@brief Register shutdown handler
@brief Get reason of last reset
@return See description of esp_reset_reason_t for explanation of each value.
@brief Restart PRO and APP CPUs.
@brief CRC8 value in big endian.
@brief CRC8 value in little endian.
@brief CRC16 value in big endian.
@brief CRC16 value in little endian.
@brief CRC32 value in big endian.
@brief CRC32 value in little endian.
@brief Pauses execution for us microseconds
@brief Get the real CPU ticks per us
@brief Get reset reason of CPU
@brief Combine a GPIO input with a peripheral signal, which tagged as input attribute.
@brief Combine a peripheral signal which tagged as output attribute with a GPIO.
@brief Enable internal pull up, and disable internal pull down.
@brief Configure IO Pad as General Purpose IO,
so that it can be connected to internal Matrix,
then combined with one or more peripheral signals.
@brief Set IO Pad current drive capability.
@brief Unhold the IO Pad.
@note When the Pad is set to hold, the state is latched at that moment and won’t get changed.
@brief esp_rom_printf can print message to different channels simultaneously.
This function can help install the low level putc function for esp_rom_printf.
@brief Install UART1 as the default console channel, equivalent to esp_rom_install_channel_putc(1, esp_rom_uart_putc)
@brief Extract the MD5 result, and erase the context
@brief Initialize the MD5 context
@brief Running MD5 algorithm over input data
@brief Print formated string to console device
@note float and long long data are not supported!
@brief Route peripheral interrupt sources to CPU’s interrupt port by matrix
@brief Set the real CPU tick rate
@brief Software Reset cpu core.
@brief Software Reset digital core include RTC.
@brief Check RRM capability of connected AP
@brief Send Radio measurement neighbor report request to connected AP
@brief Read key digests from efuse. Any revoked/missing digests will be marked as NULL
@brief If an OCD is connected over JTAG. set breakpoint 0 to the given function
address. Do nothing otherwise.
@param fn Pointer to the target breakpoint position
@brief Install a new stub at runtime to run on wake from deep sleep
@brief Set wake stub entry to default esp_wake_stub_entry
Update current microsecond time from RTC
@brief Configure to isolate all GPIO pins in sleep state
@brief CPU Power down low-level deinitialize, disable CPU power down during light sleep
@return
- ESP_OK on success
- ESP_ERR_NO_MEM not enough retention memory
@brief CPU Power down low-level initialize, enable CPU power down during light sleep
@return
- ESP_OK on success
- ESP_ERR_NO_MEM not enough retention memory
@brief CPU Power down de-initialize
@brief CPU Power down initialize
@brief Disable wakeup by bluetooth
@return
- ESP_OK on success
- ESP_ERR_NOT_SUPPORTED if wakeup from bluetooth is not supported
@brief Disable wakeup source
@brief Disable beacon wakeup by WiFi MAC
@return
- ESP_OK on success
@brief Disable wakeup by WiFi MAC
@return
- ESP_OK on success
@brief Enable wakeup by bluetooth
@return
- ESP_OK on success
- ESP_ERR_NOT_SUPPORTED if wakeup from bluetooth is not supported
@brief Enable or disable GPIO pins status switching between slept status and waked status.
@param enable decide whether to switch status or not
@brief Enable wakeup from light sleep using GPIOs
@brief Enable wakeup by timer
@param time_in_us time before wakeup, in microseconds
@return
- ESP_OK on success
- ESP_ERR_INVALID_ARG if value is out of range (TBD)
@brief Enable wakeup from light sleep using UART
@brief Enable beacon wakeup by WiFi MAC, it will wake up the system into modem state
@return
- ESP_OK on success
@brief Enable wakeup by WiFi MAC
@return
- ESP_OK on success
@brief Get the bit mask of GPIOs which caused wakeup (ext1)
@brief Get the bit mask of GPIOs which caused wakeup (gpio)
@brief Get the wakeup source which caused wakeup from sleep
@brief Returns true if a GPIO number is valid for use as wakeup source.
@brief Set power down mode for an RTC power domain in sleep mode
@brief Set mode of SmartConfig. default normal mode.
@brief Get reserved data of ESPTouch v2.
@brief Get the version of SmartConfig.
@brief Start SmartConfig, config ESP device to connect AP. You need to broadcast information by phone APP.
Device sniffer special packets from the air that containing SSID and password of target AP.
@brief Stop SmartConfig, free the buffer taken by esp_smartconfig_start.
@brief Set protocol type of SmartConfig.
@brief Start SmartConfig, config ESP device to connect AP. You need to broadcast information by phone APP.
Device sniffer special packets from the air that containing SSID and password of target AP.
@brief Stop SmartConfig, free the buffer taken by esp_smartconfig_start.
@brief Checks if sntp is enabled
@return true if sntp module is enabled
@brief Get SNTP server IP
@param idx Index of the server
@return IP address of the server
@brief Gets SNTP server name
@param idx Index of the server
@return Name of the server
@brief Init and start SNTP service
@brief Sets SNTP operating mode. The mode has to be set before init.
@brief Sets SNTP server address
@brief Sets SNTP hostname
@param idx Index of the server
@param server Name of the server
@brief Stops SNTP service
Check integrity of SPIFFS
Format the SPIFFS partition
@brief Perform garbage collection in SPIFFS partition
Get information for SPIFFS
Check if SPIFFS is mounted
@brief Supplicant deinitialization
@brief Disable or enable the caching of Pairwise Master Keys (PMK) in the supplicant.
@brief Supplicant initialization
@brief Convert user input colon separated MAC Address into 6 byte MAC Address
@brief Trigger a software abort
@brief Subscribe a task to the Task Watchdog Timer (TWDT)
@brief Subscribe a user to the Task Watchdog Timer (TWDT)
@brief Deinitialize the Task Watchdog Timer (TWDT)
@brief Unsubscribes a task from the Task Watchdog Timer (TWDT)
@brief Unsubscribes a user from the Task Watchdog Timer (TWDT)
@brief Initialize the Task Watchdog Timer (TWDT)
@brief User ISR callback placeholder
@brief Prints or retrieves information about tasks/users that triggered the Task Watchdog Timeout.
@brief Reconfigure the Task Watchdog Timer (TWDT)
@brief Reset the Task Watchdog Timer (TWDT) on behalf of the currently running task
@brief Reset the Task Watchdog Timer (TWDT) on behalf of a user
@brief Query whether a task is subscribed to the Task Watchdog Timer (TWDT)
@brief Create an esp_timer instance
@brief De-initialize esp_timer library
@brief Delete an esp_timer instance
@brief Dump the list of timers to a stream
@brief Minimal initialization of esp_timer
@brief Get the expiry time of a one-shot timer
@brief Get the timestamp when the next timeout is expected to occur
@return Timestamp of the nearest timer event, in microseconds.
The timebase is the same as for the values returned by esp_timer_get_time.
@brief Get the timestamp when the next timeout is expected to occur skipping those which have skip_unhandled_events flag
@return Timestamp of the nearest timer event, in microseconds.
The timebase is the same as for the values returned by esp_timer_get_time.
@brief Get the period of a timer
@brief Get time in microseconds since boot
@return number of microseconds since underlying timer has been started
@brief Initialize esp_timer library
@brief Returns status of a timer, active or not
@brief Get the ETM event handle of esp_timer underlying alarm event
@brief Restart a currently running timer
@brief Start one-shot timer
@brief Start a periodic timer
@brief Stop the timer
@brief Close the TLS/SSL connection and free any allocated resources.
@brief Create a new blocking TLS/SSL connection with a given “HTTP” url
@brief Create a new non-blocking TLS/SSL connection with a given “HTTP” url
@brief Create a new blocking TLS/SSL connection with a given “HTTP” url
@brief Create a new non-blocking TLS/SSL connection
@brief Create a new blocking TLS/SSL connection
@brief Read from specified tls connection into the buffer ‘data’.
@brief Write from buffer ‘data’ into specified tls connection.
@brief Free the global CA store currently being used.
@brief Returns the last error captured in esp_tls of a specific type
The error information is cleared internally upon return
@brief Returns last error in esp_tls with detailed mbedtls related error codes.
The error information is cleared internally upon return
@brief Return the number of application data bytes remaining to be
read from the current record
@brief Get supported TLS ciphersuites list.
@brief Returns the connection socket file descriptor from esp_tls session
@brief Gets the connection state for the esp_tls session
@brief Returns the ESP-TLS error_handle
@brief Get the pointer to the global CA store currently being used.
@brief Returns the ssl context
@brief Create TLS connection
@brief Create a global CA store, initially empty.
@brief Creates a plain TCP connection, returning a valid socket fd on success or an error handle
@brief Sets the connection socket file descriptor for the esp_tls session
@brief Sets the connection state for the esp_tls session
@brief Set the global CA store with the buffer provided in pem format.
@brief Transport close
@brief Transport connection function, to make a connection to server
@brief Non-blocking transport connection function, to make a connection to server
@brief Cleanup and free memory the transport
@brief Get user data context of this transport
@brief Get default port number used by this transport
@brief Get and clear last captured socket errno
@brief Returns esp_tls error handle.
Warning: The returned pointer is valid only as long as esp_transport_handle_t exists. Once transport
handle gets destroyed, this value (esp_tls_error_handle_t) is freed automatically.
@brief Get transport handle of underlying protocol
which can access this protocol payload directly
(used for receiving longer msg multiple times)
@brief Initialize a transport handle object
@brief Add a transport to the list, and define a scheme to indentify this transport in the list
@brief This function will remove all transport from the list,
invoke esp_transport_destroy of every transport have added this the list
@brief Cleanup and free all transports, include itself,
this function will invoke esp_transport_destroy of every transport have added this the list
@brief Get the transport by scheme, which has been defined when calling function esp_transport_list_add
@brief Create transport list
@brief Poll the transport until readable or timeout
@brief Poll the transport until writeable or timeout
@brief Transport read function
@brief Set transport functions for the transport handle
@brief Set the user context data for this transport
@brief Set default port number that can be used by this transport
@brief Set transport functions for the transport handle
@brief Set parent transport function to the handle
@brief Enable the use of certification bundle for server verfication for
an SSL connection.
It must be first enabled in menuconfig.
@brief Enable global CA store for SSL connection
@brief Create new SSL transport, the transport handle must be release esp_transport_destroy callback
@brief Set the list of supported application protocols to be used with ALPN.
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL certificate data (as PEM format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL certificate data (as DER format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL client certificate data for mutual authentication (as PEM format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL client certificate data for mutual authentication (as DER format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL client key data for mutual authentication (as PEM format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL client key data for mutual authentication (as DER format).
Note that, this function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
@brief Set SSL client key password if the key is password protected. The configured
password is passed to the underlying TLS stack to decrypt the client key
@brief Set the server certificate’s common name field
@brief Set the ds_data handle in ssl context.(used for the digital signature operation)
@brief Set name of interface that socket can be binded on
So the data can transport on this interface
@brief Set keep-alive status in current ssl context
@brief Set PSK key and hint for PSK server/client verification in esp-tls component.
Important notes:
- This function stores the pointer to data, rather than making a copy.
So this data must remain valid until after the connection is cleaned up
- ESP_TLS_PSK_VERIFICATION config option must be enabled in menuconfig
- certificate verification takes priority so it must not be configured
to enable PSK method.
@brief Set TLS protocol version for ESP-TLS connection
@brief Skip validation of certificate’s common name field
@brief Set the ssl context to use secure element (atecc608a) for client(device) private key and certificate
@brief Create TCP transport, the transport handle must be release esp_transport_destroy callback
@brief Set name of interface that socket can be binded on
So the data can transport on this interface
@brief Set TCP keep-alive configuration
@brief Translates the TCP transport error codes to esp_err_t error codes
@brief Transport write function
@brief Returns websocket fin flag for last received data
@brief Returns websocket op-code for last received data
@brief Returns payload length of the last received data
@brief Returns the HTTP status code of the websocket handshake
@brief Create web socket transport
@brief Polls the active connection for termination
@brief Sends websocket raw message with custom opcode and payload
@brief Set websocket authorization headers
@brief Set websocket transport parameters
@brief Set websocket additional headers
@brief Set HTTP path to update protocol to websocket
@brief Set websocket sub protocol header
@brief Set websocket user-agent header
@brief Unregister shutdown handler
@brief add uart/usb_serial_jtag/usb_otg_acmcdc virtual filesystem driver
@brief add /dev/cdcacm virtual filesystem driver
@brief Set the line endings expected to be received
@brief Set the line endings to sent
@brief Set the line endings expected to be received on specified UART
@brief Set the line endings to sent to specified UART
@brief add /dev/uart virtual filesystem driver
@brief Set the line endings expected to be received on UART
@brief Set the line endings to sent to UART
@brief set VFS to use UART driver for reading and writing
@note application must configure UART driver before calling these functions
With these functions, read and write are blocking and interrupt-driven.
@param uart_num UART peripheral number
@brief set VFS to use simple functions for reading and writing UART
Read is non-blocking, write is busy waiting until TX FIFO has enough space.
These functions are used by default.
@param uart_num UART peripheral number
@brief add /dev/usbserjtag virtual filesystem driver
@brief Set the line endings expected to be received
@brief Set the line endings to sent
@brief Registers the event vfs.
@brief Unregisters the event vfs.
@brief Get information for FATFS partition
@deprecated Please use esp_vfs_fat_spiflash_mount_ro
instead
@deprecated Please use esp_vfs_fat_spiflash_unmount_ro
instead
@brief Register FATFS with VFS component
@brief Format FAT filesystem
@brief Unmount an SD card from the FAT filesystem and release resources acquired using
esp_vfs_fat_sdmmc_mount()
or esp_vfs_fat_sdspi_mount()
@brief Convenience function to get FAT filesystem on SD card registered in VFS
@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_sdmmc_mount
@brief Convenience function to get FAT filesystem on SD card registered in VFS
@brief Format FAT filesystem
@cond /
/*
@deprecated Please use esp_vfs_fat_spiflash_mount_rw_wl
instead
@brief Convenience function to initialize read-only FAT filesystem and register it in VFS
@brief Convenience function to initialize FAT filesystem in SPI flash and register it in VFS
@deprecated Please use esp_vfs_fat_spiflash_unmount_rw_wl
instead
@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_spiflash_mount_ro
@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_spiflash_mount_rw_wl
@brief Un-register FATFS from VFS
@brief Implements the VFS layer of POSIX pread()
@brief Implements the VFS layer of POSIX pwrite()
Register a virtual filesystem for given path prefix.
Special function for registering another file descriptor for a VFS registered
by esp_vfs_register_with_id.
Special case function for registering a VFS that uses a method other than
open() to open new file descriptors from the interval <min_fd; max_fd).
Special function for registering another file descriptor with given local_fd
for a VFS registered by esp_vfs_register_with_id.
Special case function for registering a VFS that uses a method other than
open() to open new file descriptors. In comparison with
esp_vfs_register_fd_range, this function doesn’t pre-registers an interval
of file descriptors. File descriptors can be registered later, by using
esp_vfs_register_fd.
@brief Synchronous I/O multiplexing which implements the functionality of POSIX select() for VFS
@param nfds Specifies the range of descriptors which should be checked.
The first nfds descriptors will be checked in each set.
@param readfds If not NULL, then points to a descriptor set that on input
specifies which descriptors should be checked for being
ready to read, and on output indicates which descriptors
are ready to read.
@param writefds If not NULL, then points to a descriptor set that on input
specifies which descriptors should be checked for being
ready to write, and on output indicates which descriptors
are ready to write.
@param errorfds If not NULL, then points to a descriptor set that on input
specifies which descriptors should be checked for error
conditions, and on output indicates which descriptors
have error conditions.
@param timeout If not NULL, then points to timeval structure which
specifies the time period after which the functions should
time-out and return. If it is NULL, then the function will
not time-out. Note that the timeout period is rounded up to
the system tick and incremented by one.
@brief Notification from a VFS driver about a read/write/error condition
@brief Notification from a VFS driver about a read/write/error condition (ISR version)
@brief add virtual filesystem semihosting driver
@brief Un-register semihosting driver from VFS
Register and mount SPIFFS to VFS with given path prefix.
Unregister and unmount SPIFFS from VFS
Unregister a virtual filesystem for given path prefix
Special function for unregistering a file descriptor belonging to a VFS
registered by esp_vfs_register_with_id.
Unregister a virtual filesystem with the given index
@brief set VFS to use USB-SERIAL-JTAG driver for reading and writing
@note application must configure USB-SERIAL-JTAG driver before calling these functions
With these functions, read and write are blocking and interrupt-driven.
@brief set VFS to use simple functions for reading and writing UART
Read is non-blocking, write is busy waiting until TX FIFO has enough space.
These functions are used by default.
These functions are to be used in newlib syscall table. They will be called by
newlib when it needs to use any of the syscalls.
/
/**@{
@brief esp_vhci_host_check_send_available
used for check actively if the host can send packet to controller or not.
@return true for ready to send, false means cannot send packet
@brief esp_vhci_host_register_callback
register the vhci reference callback
struct defined by vhci_host_callback structure.
@param callback esp_vhci_host_callback type variable
@return ESP_OK - success, ESP_FAIL - failed
@brief esp_vhci_host_send_packet
host send packet to controller
@brief Default stub to run on wake from deep sleep.
@brief Send raw ieee80211 data
@brief Get AID of STA connected with soft-AP
@brief Get STAs associated with soft-AP
@brief Disable Wi-Fi SoftAP WPS function and release resource it taken.
@brief Enable Wi-Fi AP WPS function.
@brief WPS starts to work.
@brief Configure wifi beacon montior default parameters
@brief bt Wi-Fi power domain power off
@brief bt Wi-Fi power domain power on
@brief Clear AP list found in last scan
@brief Clears default wifi event handlers for supplied network interface
@brief Currently this API is just an stub API
@brief Enable or disable 11b rate of specified interface
@brief Config 80211 tx rate of specified interface
@brief Config ESPNOW rate of specified interface
@brief Connect WiFi station to the AP.
@brief Set wake interval for connectionless modules to wake up periodically.
@brief Creates wifi driver instance to be used with esp-netif
@brief deauthenticate all stations or associated id equals to aid
@brief Deinit WiFi
Free all resource allocated in esp_wifi_init and stop WiFi task
@brief Deinitialize Wi-Fi Driver
Free resource for WiFi driver, such as WiFi control structure, RX/TX buffer,
WiFi NVS structure among others.
@brief Destroys wifi driver instance
@brief Disable PMF configuration for specified interface
@brief Disconnect WiFi station from the AP.
@brief Request extra reference of Wi-Fi radio.
Wi-Fi keep active state(RF opened) to be able to receive packets.
@brief Release extra reference of Wi-Fi radio.
Wi-Fi go to sleep state(RF closed) if no more use of radio.
@brief End the ongoing FTM Initiator session
@brief Get FTM measurements report copied into a user provided buffer.
@brief Start an FTM Initiator session by sending FTM request
If successful, event WIFI_EVENT_FTM_REPORT is generated with the result of the FTM procedure
@brief Set offset in cm for FTM Responder. An equivalent offset is calculated in picoseconds
and added in TOD of FTM Measurement frame (T1).
@brief Get current antenna configuration
@brief Get current antenna GPIO configuration
@brief Get the bandwidth of specified interface
@brief Get the primary/secondary channel of device
@brief Get configuration of specified interface
@brief get the current country info
@brief get the current country code
@brief Get mask of WiFi events
@brief Return mac of specified wifi driver instance
@brief Get inactive time of specified interface
@brief Get mac of specified interface
@brief Get maximum transmiting power after WiFi start
@brief Get current operating mode of WiFi
@brief Get the promiscuous mode.
@brief Get the subtype filter of the control packet in promiscuous mode.
@brief Get the promiscuous filter.
@brief Get the current protocol bitmap of the specified interface
@brief Get current WiFi power save type
@brief Get the TSF time
In Station mode or SoftAP+Station mode if station is not connected or station doesn’t receive at least
one beacon after connected, will return 0
@brief Initialize WiFi
Allocate resource for WiFi driver, such as WiFi control structure, RX/TX buffer,
WiFi NVS structure etc. This WiFi also starts WiFi task
@brief Initialize Wi-Fi Driver
Alloc resource for WiFi driver, such as WiFi control structure, RX/TX buffer,
WiFi NVS structure among others.
@brief Check the MD5 values of the crypto types header files in IDF and WiFi library
@brief Check the MD5 values of the esp_wifi_he.h in IDF and WiFi library
@brief Check the MD5 values of the esp_wifi.h in IDF and WiFi library
@brief free the rx buffer which allocated by wifi driver
@brief Get the user-configured channel info
@brief Get current WiFi log info
@brief Get the negotiated bandwidth info after WiFi connection established
@brief Get the negotiated channel info after WiFi connection established
@brief A general API to set/get WiFi internal configuration, it’s for debug only
@brief Check if WiFi TSF is active
@brief Set light sleep mode to require WiFi to enable or disable Advanced DTIM sleep function
@brief Set modem state mode to require WiFi to enable or disable Advanced DTIM sleep function
@brief Check the MD5 values of the OS adapter header files in IDF and WiFi library
@brief register the net stack buffer reference increasing and free callback
@brief Set the WiFi RX callback
@brief enable or disable transmitting WiFi MAC frame with fixed rate
@brief Set current WiFi log level
@brief Set current log module and submodule
@brief Set device spp amsdu attributes
@brief Notify WIFI driver that the station got ip successfully
@brief transmit the buffer via wifi driver
@brief transmit the buffer by reference via wifi driver
@brief Update WIFI light sleep default parameters
@brief Update WIFI light sleep wake ahead time
@brief Update WiFi MAC time
@brief De-initialize WAPI function when wpa_supplicant de-initialize.
@brief Initialize WAPI function when wpa_supplicant initialize.
@brief Check the MD5 values of the esp_wifi_he_types.h in IDF and WiFi library
@brief Check the MD5 values of the esp_wifi_types.h in IDF and WiFi library
@brief Return true if the supplied interface instance is ready after start.
Typically used when registering on receive callback, which ought to be
installed as soon as AP started, but once STA gets connected.
@brief Wifi power domain power off
@brief Wifi power domain power on
@brief Register interface receive callback function with argument
@brief Restore WiFi stack persistent settings to default values
@brief Get number of APs found in last scan
@brief Get one AP record from the scanned AP list.
@brief Get AP list found in last scan.
@brief Scan all available APs.
@brief Stop the scan in process
@brief Set antenna configuration
@brief Set antenna GPIO configuration
@brief Set the bandwidth of specified interface
@brief Set primary/secondary channel of device
@brief Set the configuration of the STA, AP or NAN
@brief configure country info
@brief configure country
@brief Enable or disable CSI
@brief Set CSI data configuration
@brief Register the RX callback function of CSI data.
@brief Sets default wifi event handlers for AP interface
@brief Sets default wifi event handlers for NAN interface
@brief Sets default wifi event handlers for STA interface
@brief Config dynamic carrier sense
@brief Set mask to enable or disable some WiFi events
@brief Set the inactive time of the STA or AP
@brief Set wifi keep alive time
@brief Set MAC address of WiFi station, soft-AP or NAN interface.
@brief Set maximum transmitting power after WiFi start.
@brief Set the WiFi operating mode
@brief Enable the promiscuous mode.
@brief Enable subtype filter of the control packet in promiscuous mode.
@brief Enable the promiscuous mode packet type filter.
@brief Register the RX callback function in the promiscuous mode.
@brief Set protocol type of specified interface
The default protocol is (WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N).
if CONFIG_SOC_WIFI_HE_SUPPORT, the default protocol is (WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N|WIFI_PROTOCOL_11AX).
@brief Set current WiFi power save type
@brief Set RSSI threshold, if average rssi gets lower than threshold, WiFi task will post event WIFI_EVENT_STA_BSS_RSSI_LOW.
@brief Set the delay time for wifi to enter the sleep state when light sleep
@brief Set the WiFi API configuration storage type
@brief Register the txDone callback function of type wifi_tx_done_cb_t
@brief Set 802.11 Vendor-Specific Information Element
@brief Register Vendor-Specific Information Element monitoring callback.
@brief Disable EAP authentication(WiFi Enterprise) for the station mode.
@brief Enable EAP authentication(WiFi Enterprise) for the station mode.
@brief Get the Association id assigned to STA by AP
@brief Get information of AP to which the device is associated with
@brief Get the negotiated phymode after connection.
@brief Get the rssi information of AP to which the device is associated with
@brief Clear CA certificate for PEAP/TTLS method.
@brief Clear client certificate and key.
@brief Clear identity for PEAP/TTLS method.
@brief Clear new password for MSCHAPv2 method..
@brief Clear password for PEAP/TTLS method..
@brief Clear username for PEAP/TTLS method.
@deprecated This function is deprecated and will be removed in the future.
Please use esp_eap_client_clear_username
instead.
@brief Disable wpa2 enterprise authentication.
@brief Enable wpa2 enterprise authentication.
@brief Get wpa2 enterprise certs time check(disable or not).
@brief Set CA certificate for PEAP/TTLS method.
@brief Set client certificate and key.
@brief Set wpa2 enterprise certs time check(disable or not).
@brief Set Phase 1 parameters for EAP-FAST
@brief Set identity for PEAP/TTLS method.
@brief Set new password for MSCHAPv2 method..
@brief Set client pac file
@brief Set password for PEAP/TTLS method..
@brief Set wpa2 enterprise ttls phase2 method
@brief Set username for PEAP/TTLS method.
@brief enable/disable 192 bit suite b certification checks
@brief Use default CA cert bundle for server validation
@brief Start WiFi according to current configuration
If mode is WIFI_MODE_STA, it creates station control block and starts station
If mode is WIFI_MODE_AP, it creates soft-AP control block and starts soft-AP
If mode is WIFI_MODE_APSTA, it creates soft-AP and station control block and starts soft-AP and station
If mode is WIFI_MODE_NAN, it creates NAN control block and starts NAN
@brief Dump WiFi statistics
@brief Stop WiFi
If mode is WIFI_MODE_STA, it stops station and frees station control block
If mode is WIFI_MODE_AP, it stops soft-AP and frees soft-AP control block
If mode is WIFI_MODE_APSTA, it stops station/soft-AP and frees station/soft-AP control block
If mode is WIFI_MODE_NAN, it stops NAN and frees NAN control block
@brief Update WiFi TSF tick interval
@brief Disable Wi-Fi WPS function and release resource it taken.
@brief Enable Wi-Fi WPS function.
@brief Start WPS session.
@brief Check bss trasition capability of connected AP
@brief Send bss transition query to connected AP
@brief Get interrupt unmask
@param none
@return uint32_t interrupt unmask
@brief Disable interrupts from interrupt controller.
@brief Enable interrupts from interrupt controller.
@brief Get the current priority of an interrupt
@brief Get the current type of an interrupt
@brief Check if the given interrupt is hardware vectored
Set interrupt priority in the interrupt controller
@param rv_int_num CPU interrupt number
@param priority Interrupt priority level, 1 to 7
Set interrupt priority threshold.
Interrupts with priority levels lower than the threshold are masked.
@brief Set interrupt type
@brief Set interrupt vectored
@brief CPU do while loop for some time.
In FreeRTOS task, please call FreeRTOS apis.
@brief Get apb_freq value, If value not stored in RTC_STORE5, than store.
@brief Get the real CPU ticks per us to the ets.
This function do not return real CPU ticks per us, just the record in ets. It can be used to check with the real CPU frequency.
@brief Get the uart channel of ets_printf(uart_tx_one_char).
@brief Get the apb divior by xtal frequency.
When any types of reset happen, the default value is 2.
@brief Get xtal_freq value, If value not stored in RTC_STORE5, than store.
@brief Ets_printf have two output functions: putc1 and putc2, both of which will be called if need ouput.
To install putc1, which is defaulted installed as ets_write_char_uart in none silent boot mode, as NULL in silent mode.
@brief Ets_printf have two output functions: putc1 and putc2, both of which will be called if need ouput.
To install putc2, which is defaulted installed as NULL.
@brief Install putc1 as ets_write_char_uart.
In silent boot mode(to void interfere the UART attached MCU), we can call this function, after booting ok.
@brief Lock the interrupt to level 2.
This function direct set the CPU registers.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Unlock the interrupt to level 0.
This function direct set the CPU registers.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Attach a interrupt handler to a CPU interrupt number.
This function equals to _xtos_set_interrupt_handler_arg(i, func, arg).
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Mask the interrupts which show in mask bits.
This function equals to _xtos_ints_off(mask).
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Unmask the interrupts which show in mask bits.
This function equals to _xtos_ints_on(mask).
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Printf the strings to uart or other devices, similar with printf, simple than printf.
Can not print float point data format, or longlong data format.
So we maybe only use this in ROM.
@brief Set Pro cpu Entry code, code can be called in PRO CPU when booting is not completed.
When Pro CPU booting is completed, Pro CPU will call the Entry code if not NULL.
@brief Arm an ets timer, this timer range is 640 us to 429496 ms.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Arm an ets timer, this timer range is 640 us to 429496 ms.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Disarm an ets timer.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Unset timer callback and argument to NULL.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Init ets timer, this timer range is 640 us to 429496 ms
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Set timer callback and argument.
In FreeRTOS, please call FreeRTOS apis, never call this api.
@brief Set the real CPU ticks per us to the ets, so that ets_delay_us will be accurate.
Call this function when CPU frequency is changed.
Get next available drive number
@brief Get the driver number corresponding to a card
Register or unregister diskio driver for given drive number.
Register spi flash partition
Register SD/MMC diskio driver
Register spi flash partition
@brief Enable/disable SD card status checking
@brief GPIO common configuration
@brief Disable all digital gpio pads hold function during Deep-sleep.
@brief Enable all digital gpio pads hold function during Deep-sleep.
@brief Disable GPIO deep-sleep wake-up function.
@brief Enable GPIO deep-sleep wake-up function.
@brief Dump IO configuration information to console
@brief Bind the GPIO with the ETM event
@brief Add GPIO to the ETM task.
@brief Remove the GPIO from the ETM task
@brief Force hold all digital and rtc gpio pads.
@brief Force unhold all digital and rtc gpio pads.
@brief Get GPIO pad drive capability
@brief GPIO get input level
@brief Disable gpio pad hold function.
@brief Enable gpio pad hold function.
@brief Install the GPIO driver’s ETS_GPIO_INTR_SOURCE ISR handler service, which allows per-pin GPIO interrupt handlers.
@brief Disable GPIO module interrupt signal
@brief Enable GPIO module interrupt signal
@brief Set pad input to a peripheral signal through the IOMUX.
@param gpio_num GPIO number of the pad.
@param signal_idx Peripheral signal id to input. One of the *_IN_IDX
signals in soc/gpio_sig_map.h
.
@brief Set peripheral output to an GPIO pad through the IOMUX.
@param gpio_num gpio_num GPIO number of the pad.
@param func The function number of the peripheral pin to output pin.
One of the FUNC_X_*
of specified pin (X) in soc/io_mux_reg.h
.
@param oen_inv True if the output enable needs to be inverted, otherwise False.
@brief Add ISR handler for the corresponding GPIO pin.
@brief Remove ISR handler for the corresponding GPIO pin.
@brief Register GPIO interrupt handler, the handler is an ISR.
The handler will be attached to the same CPU core that this function is running on.
@brief Create an ETM event object for the GPIO peripheral
@brief Create an ETM task object for the GPIO peripheral
@brief Disable pull-down on GPIO.
@brief Enable pull-down on GPIO.
@brief Disable pull-up on GPIO.
@brief Enable pull-up on GPIO.
@brief Reset an gpio to default state (select gpio function, enable pullup and disable input and output).
@brief GPIO set direction
@brief Set GPIO pad drive capability
@brief GPIO set interrupt trigger type
@brief GPIO set output level
@brief Configure GPIO pull-up/pull-down resistors
@brief Disable SLP_SEL to change GPIO status automantically in lightsleep.
@param gpio_num GPIO number of the pad.
@brief Enable SLP_SEL to change GPIO status automantically in lightsleep.
@param gpio_num GPIO number of the pad.
@brief GPIO set direction at sleep
@brief Configure GPIO pull-up/pull-down resistors at sleep
@brief Uninstall the driver’s GPIO ISR service, freeing related resources.
@brief Disable GPIO wake-up function.
@brief Enable GPIO wake-up function.
@brief Delete the GPTimer handle
@brief Disable GPTimer
@brief Enable GPTimer
@brief Get GPTimer captured count value
@brief Get GPTimer raw count value
@brief Return the real resolution of the timer
@brief Get the ETM event for GPTimer
@brief Get the ETM task for GPTimer
@brief Create a new General Purpose Timer, and return the handle
@brief Set callbacks for GPTimer
@brief Set alarm event actions for GPTimer.
@brief Set GPTimer raw count value
@brief Start GPTimer (internal counter starts counting)
@brief Stop GPTimer (internal counter stops counting)
@brief Calculate the clock division with fractal part accurately
@note Accuracy first algorithm, Time complexity O(n).
About 1~hundreds times more accurate than the fast algorithm
@brief Calculate the clock division with fractal part fast
@note Speed first algorithm, Time complexity O(log n).
About 8~10 times faster than the accurate algorithm
@brief Calculate the clock division without fractal part
@brief Allocate an aligned chunk of memory which has the given capabilities
@brief Allocate an aligned chunk of memory which has the given capabilities. The initialized value in the memory is set to zero.
@brief Used to deallocate memory previously allocated with heap_caps_aligned_alloc
@brief Allocate a chunk of memory which has the given capabilities. The initialized value in the memory is set to zero.
@brief Allocate a chunk of memory as preference in decreasing order.
@brief Check integrity of all heaps with the given capabilities.
@brief Check integrity of heap memory around a given address.
@brief Check integrity of all heap memory in the system.
@brief Dump the full structure of all heaps with matching capabilities.
@brief Dump the full structure of all heaps.
@brief Free memory previously allocated via heap_caps_malloc() or heap_caps_realloc().
@brief Return the size that a particular pointer was allocated with.
@brief Get the total free size of all the regions that have the given capabilities
@brief Get heap info for all regions with the given capabilities.
@brief Get the largest free block of memory able to be allocated with the given capabilities.
@brief Get the total minimum free memory of all regions with the given capabilities
@brief Get the total size of all the regions that have the given capabilities
@brief Allocate a chunk of memory which has the given capabilities
@brief Enable malloc() in external memory and set limit below which
malloc() attempts are placed in internal memory.
@brief Allocate a chunk of memory as preference in decreasing order.
@brief Print a summary of all memory with the given capabilities.
@brief Reallocate memory previously allocated via heap_caps_malloc() or heap_caps_realloc().
@brief Reallocate a chunk of memory as preference in decreasing order.
@brief registers a callback function to be invoked if a memory allocation operation fails
@param callback caller defined callback to be invoked
@return ESP_OK if callback was registered.
@brief Returns list of current socket descriptors of active sessions
@brief Get HTTPD global transport context (it was set in the server config struct)
@brief Get HTTPD global user context (it was set in the server config struct)
@brief Helper function to get a URL query tag from a query
string of the type param1=val1¶m2=val2
@brief Queue execution of a function in HTTPD’s context
@brief Function for registering HTTP error handlers
@brief Registers a URI handler
@brief Start an asynchronous request. This function can be called
in a request handler to get a request copy that can be used on a async thread.
@brief Mark an asynchronous request as completed. This will
@brief Get the value string of a cookie value from the “Cookie” request headers by cookie name.
@brief Search for a field in request headers and
return the string length of it’s value
@brief Get the value string of a field from the request headers
@brief Get Query string length from the request URL
@brief Get Query string from the request URL
@brief API to read content data from the HTTP request
@brief Get the Socket Descriptor from the HTTP request
@brief API to send a complete HTTP response.
@brief API to send one HTTP chunk
@brief For sending out error code in response to HTTP request.
@brief API to append any additional headers
@brief API to set the HTTP status code
@brief API to set the HTTP content type
@brief Raw HTTP send
@brief Get session context from socket descriptor
@brief Get session ‘transport’ context by socket descriptor
@see httpd_sess_get_ctx()
@brief Set session context by socket descriptor
@brief Override web server’s pending function (by session FD)
@brief Override web server’s receive function (by session FD)
@brief Override web server’s send function (by session FD)
@brief Set session ‘transport’ context by socket descriptor
@see httpd_sess_set_ctx()
@brief Trigger an httpd session close externally
@brief Update LRU counter for a given socket
A low level API to receive data from a given socket
A low level API to send data on a given socket
@brief Starts the web server
@brief Stops the web server
@brief Unregister all URI handlers with the specified uri string
@brief Unregister a URI handler
@brief Test if a URI matches the given wildcard template.
@brief Checks the supplied socket descriptor if it belongs to any active client
of this server instance and if the websoket protocol is active
@brief Receive and parse a WebSocket frame
@brief Sends data to to specified websocket synchronously
@brief Sends data to to specified websocket asynchronously
@brief Construct and send a WebSocket frame
@param[in] req Current request
@param[in] pkt WebSocket frame
@return
@brief Low level send of a WebSocket frame out of the scope of current request
using internally configured httpd send function
@brief Create and initialize an I2C commands list with a given buffer.
After finishing the I2C transactions, it is required to call i2c_cmd_link_delete()
to release and return the resources.
The required bytes will be dynamically allocated.
@brief Create and initialize an I2C commands list with a given buffer.
All the allocations for data or signals (START, STOP, ACK, …) will be
performed within this buffer.
This buffer must be valid during the whole transaction.
After finishing the I2C transactions, it is required to call i2c_cmd_link_delete_static()
.
@brief Free the I2C commands list
@brief Free the I2C commands list allocated statically with i2c_cmd_link_create_static
.
@brief Deinitialize the I2C master bus and delete the handle.
@brief Deinitialize the I2C slave device
@brief Delete I2C driver
@brief Install an I2C driver
@note Not all Espressif chips can support slave mode (e.g. ESP32C2)
@brief Disable filter on I2C bus
@brief Enable hardware filter on I2C bus
Sometimes the I2C bus is disturbed by high frequency noise(about 20ns), or the rising edge of
the SCL clock is very slow, these may cause the master state machine to break.
Enable hardware filter can filter out high frequency interference and make the master more stable.
@note Enable filter will slow down the SCL clock.
@brief get I2C data transfer mode
@brief get I2C data signal timing
@brief Get I2C master clock period
@brief get I2C master start signal timing
@brief get I2C master stop signal timing
@brief get I2C timeout value
@param i2c_num I2C port number
@param timeout pointer to get timeout value
@return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
@brief Add I2C master BUS device.
@brief Reset the I2C master bus.
@brief I2C master bus delete device
@brief Wait for all pending I2C transactions done
@brief Send all the queued commands on the I2C bus, in master mode.
The task will be blocked until all the commands have been sent out.
The I2C port is protected by mutex, so this function is thread-safe.
This function shall only be called in I2C master mode.
@brief Probe I2C address, if address is correct and ACK is received, this function will return ESP_OK.
@brief Queue a “read (multiple) bytes” command to the commands list.
Multiple bytes will be read on the I2C bus. This function shall only be
called in I2C master mode.
Call i2c_master_cmd_begin()
to send all queued commands
@brief Queue a “read byte” command to the commands list.
A single byte will be read on the I2C bus. This function shall only be
called in I2C master mode.
Call i2c_master_cmd_begin()
to send all queued commands
@brief Perform a read to a device connected to a particular I2C port.
This function is a wrapper to i2c_master_start()
, i2c_master_write()
, i2c_master_read()
, etc…
It shall only be called in I2C master mode.
@brief Perform a read transaction on the I2C bus.
The transaction will be undergoing until it finishes or it reaches
the timeout provided.
@brief Register I2C transaction callbacks for a master device
@brief Queue a “START signal” to the given commands list.
This function shall only be called in I2C master mode.
Call i2c_master_cmd_begin()
to send all the queued commands.
@brief Queue a “STOP signal” to the given commands list.
This function shall only be called in I2C master mode.
Call i2c_master_cmd_begin()
to send all the queued commands.
@brief Perform a write transaction on the I2C bus.
The transaction will be undergoing until it finishes or it reaches
the timeout provided.
@brief Perform a write-read transaction on the I2C bus.
The transaction will be undergoing until it finishes or it reaches
the timeout provided.
@brief Queue a “write (multiple) bytes” command to the commands list.
This function shall only be called in I2C master mode.
Call i2c_master_cmd_begin()
to send all queued commands
@brief Queue a “write byte” command to the commands list.
A single byte will be sent on the I2C port. This function shall only be
called in I2C master mode.
Call i2c_master_cmd_begin()
to send all queued commands
@brief Perform a write followed by a read to a device on the I2C bus.
A repeated start signal is used between the write
and read
, thus, the bus is
not released until the two transactions are finished.
This function is a wrapper to i2c_master_start()
, i2c_master_write()
, i2c_master_read()
, etc…
It shall only be called in I2C master mode.
@brief Perform a write to a device connected to a particular I2C port.
This function is a wrapper to i2c_master_start()
, i2c_master_write()
, i2c_master_read()
, etc…
It shall only be called in I2C master mode.
@brief Allocate an I2C master bus
@brief Initialize an I2C slave device
@brief Configure an I2C bus with the given configuration.
@brief reset I2C rx fifo
@brief reset I2C tx hardware fifo
@brief set I2C data transfer mode
@brief set I2C data signal timing
@brief Set I2C master clock period
@brief Configure GPIO pins for I2C SCK and SDA signals.
@brief set I2C master start signal timing
@brief set I2C master stop signal timing
@brief set I2C timeout value
@param i2c_num I2C port number
@param timeout timeout value for I2C bus (unit: APB 80Mhz clock cycle)
@return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
@brief Read bytes from I2C internal buffer. When the I2C bus receives data, the ISR will copy them
from the hardware RX FIFO to the internal ringbuffer.
Calling this function will then copy bytes from the internal ringbuffer to the data
user buffer.
@note This function shall only be called in I2C slave mode.
@brief Read bytes from I2C internal ram. This can be only used when access_ram_en
in configuration structure set to true.
@brief Read bytes from I2C internal buffer. Start a job to receive I2C data.
@brief Set I2C slave event callbacks for I2C slave channel.
@brief Write bytes to internal ringbuffer of the I2C slave data. When the TX fifo empty, the ISR will
fill the hardware FIFO with the internal ringbuffer’s data.
@brief Write bytes to internal ringbuffer of the I2C slave data. When the TX fifo empty, the ISR will
fill the hardware FIFO with the internal ringbuffer’s data.
@note This function shall only be called in I2C slave mode.
@brief Write bytes to I2C internal ram. This can be only used when access_ram_en
in configuration structure set to true.
@brief Disable the I2S channel
@note Only allowed to be called when the channel state is RUNNING, (i.e., channel has been started)
the channel will enter READY state once it is disabled successfully.
@note Disable the channel can stop the I2S communication on hardware. It will stop BCLK and WS signal but not MCLK signal
@brief Enable the I2S channel
@note Only allowed to be called when the channel state is READY, (i.e., channel has been initialized, but not started)
the channel will enter RUNNING state once it is enabled successfully.
@note Enable the channel can start the I2S communication on hardware. It will start outputting BCLK and WS signal.
For MCLK signal, it will start to output when initialization is finished
@brief Get I2S channel information
@brief Initialize I2S channel to PDM TX mode
@note Only allowed to be called when the channel state is REGISTERED, (i.e., channel has been allocated, but not initialized)
and the state will be updated to READY if initialization success, otherwise the state will return to REGISTERED.
@brief Initialize I2S channel to standard mode
@note Only allowed to be called when the channel state is REGISTERED, (i.e., channel has been allocated, but not initialized)
and the state will be updated to READY if initialization success, otherwise the state will return to REGISTERED.
@brief Initialize I2S channel to TDM mode
@note Only allowed to be called when the channel state is REGISTERED, (i.e., channel has been allocated, but not initialized)
and the state will be updated to READY if initialization success, otherwise the state will return to REGISTERED.
@brief Preload the data into TX DMA buffer
@note Only allowed to be called when the channel state is READY, (i.e., channel has been initialized, but not started)
@note As the initial DMA buffer has no data inside, it will transmit the empty buffer after enabled the channel,
this function is used to preload the data into the DMA buffer, so that the valid data can be transmitted immediately
after the channel is enabled.
@note This function can be called multiple times before enabling the channel, the buffer that loaded later will be concatenated
behind the former loaded buffer. But when all the DMA buffers have been loaded, no more data can be preload then, please
check the bytes_loaded
parameter to see how many bytes are loaded successfully, when the bytes_loaded
is smaller than
the size
, it means the DMA buffers are full.
@brief I2S read data
@note Only allowed to be called when the channel state is RUNNING
but the RUNNING only stands for the software state, it doesn’t mean there is no the signal transporting on line.
@brief Reconfigure the I2S clock for PDM TX mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to PDM TX mode, i.e., i2s_channel_init_pdm_tx_mode
has been called before reconfiguring
@brief Reconfigure the I2S GPIO for PDM TX mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to PDM TX mode, i.e., i2s_channel_init_pdm_tx_mode
has been called before reconfiguring
@brief Reconfigure the I2S slot for PDM TX mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to PDM TX mode, i.e., i2s_channel_init_pdm_tx_mode
has been called before reconfiguring
@brief Reconfigure the I2S clock for standard mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to standard mode, i.e., i2s_channel_init_std_mode
has been called before reconfiguring
@brief Reconfigure the I2S GPIO for standard mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to standard mode, i.e., i2s_channel_init_std_mode
has been called before reconfiguring
@brief Reconfigure the I2S slot for standard mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to standard mode, i.e., i2s_channel_init_std_mode
has been called before reconfiguring
@brief Reconfigure the I2S clock for TDM mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to TDM mode, i.e., i2s_channel_init_tdm_mode
has been called before reconfiguring
@brief Reconfigure the I2S GPIO for TDM mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to TDM mode, i.e., i2s_channel_init_tdm_mode
has been called before reconfiguring
@brief Reconfigure the I2S slot for TDM mode
@note Only allowed to be called when the channel state is READY, i.e., channel has been initialized, but not started
this function won’t change the state. i2s_channel_disable
should be called before calling this function if I2S has started.
@note The input channel handle has to be initialized to TDM mode, i.e., i2s_channel_init_tdm_mode
has been called before reconfiguring
@brief Set event callbacks for I2S channel
@brief I2S write data
@note Only allowed to be called when the channel state is RUNNING, (i.e., TX channel has been started and is not writing now)
but the RUNNING only stands for the software state, it doesn’t mean there is no the signal transporting on line.
@brief Delete the I2S channel
@note Only allowed to be called when the I2S channel is at REGISTERED or READY state (i.e., it should stop before deleting it).
@note Resource will be free automatically if all channels in one port are deleted
@brief Install and start I2S driver.
@brief Uninstall I2S driver.
@brief get clock set on particular port number.
@brief Allocate new I2S channel(s)
@note The new created I2S channel handle will be REGISTERED state after it is allocated successfully.
@note When the port id in channel configuration is I2S_NUM_AUTO, driver will allocate I2S port automatically
on one of the I2S controller, otherwise driver will try to allocate the new channel on the selected port.
@note If both tx_handle and rx_handle are not NULL, it means this I2S controller will work at full-duplex mode,
the RX and TX channels will be allocated on a same I2S port in this case.
Note that some configurations of TX/RX channel are shared on ESP32 and ESP32S2,
so please make sure they are working at same condition and under same status(start/stop).
Currently, full-duplex mode can’t guarantee TX/RX channels write/read synchronously,
they can only share the clock signals for now.
@note If tx_handle OR rx_handle is NULL, it means this I2S controller will work at simplex mode.
For ESP32 and ESP32S2, the whole I2S controller (i.e. both RX and TX channel) will be occupied,
even if only one of RX or TX channel is registered.
For the other targets, another channel on this controller will still available.
@brief Configure I2S a/u-law decompress or compress
@brief Read data from I2S DMA receive buffer
@brief Set clock & bit width used for I2S RX and TX.
@brief Set TX PDM mode up-sample rate
@note If you have set PDM mode while calling ‘i2s_driver_install’,
default PDM TX upsample parameters have already been set,
no need to call this function again if you don’t have to change the default configuration
@brief Set I2S pin number
@brief Set sample rate used for I2S RX and TX.
@brief Start I2S driver
@brief Stop I2S driver
@brief Write data to I2S DMA transmit buffer.
@brief Write data to I2S DMA transmit buffer while expanding the number of bits per sample. For example, expanding 16-bit PCM to 32-bit PCM.
@brief Zero the contents of the TX DMA buffer.
Get the interrupt handler function for the given CPU interrupt
Get the interrupt handler argument associated with the given CPU interrupt
Set the interrupt handler function for the given CPU interrupt
@param rv_int_num CPU interrupt number
@param fn Handler function
@param arg Handler argument
this function will be removed in later, please use intr_matrix_set
instead
Route the peripheral interrupt signal to the CPU
@param periph_intr_source Peripheral interrupt number, one of ETS_XXX_SOURCE
@param rv_int_num CPU interrupt number
@brief Attach an CPU interrupt to a hardware source.
We have 4 steps to use an interrupt:
1.Attach hardware interrupt source to CPU. intr_matrix_set(0, ETS_WIFI_MAC_INTR_SOURCE, ETS_WMAC_INUM);
2.Set interrupt handler. xt_set_interrupt_handler(ETS_WMAC_INUM, func, NULL);
3.Enable interrupt for CPU. xt_ints_on(1 << ETS_WMAC_INUM);
4.Enable interrupt in the module.
returns ptr to static buffer; not reentrant!
returns ptr to static buffer; not reentrant!
@brief Bind LEDC channel with the selected timer
@brief LEDC callback registration function
@brief LEDC channel configuration
Configure LEDC channel with the given channel/output gpio_num/interrupt/source timer/frequency(Hz)/LEDC duty
@brief Install LEDC fade function. This function will occupy interrupt of LEDC module.
@brief Uninstall LEDC fade function.
@brief Start LEDC fading.
@brief Stop LEDC fading. The duty of the channel is garanteed to be fixed at most one PWM cycle after the function returns.
@brief Helper function to find the maximum possible duty resolution in bits for ledc_timer_config()
@brief LEDC get duty
This function returns the duty at the present PWM cycle.
You shouldn’t expect the function to return the new duty in the same cycle of calling ledc_update_duty,
because duty update doesn’t take effect until the next cycle.
@brief LEDC get channel frequency (Hz)
@brief LEDC get hpoint value, the counter value when the output is set high level.
@brief Register LEDC interrupt handler, the handler is an ISR.
The handler will be attached to the same CPU core that this function is running on.
@brief LEDC set duty
This function do not change the hpoint value of this channel. if needed, please call ledc_set_duty_with_hpoint.
only after calling ledc_update_duty will the duty update.
@brief A thread-safe API to set duty for LEDC channel and return when duty updated.
@brief LEDC set duty and hpoint value
Only after calling ledc_update_duty will the duty update.
@brief LEDC set gradient
Set LEDC gradient, After the function calls the ledc_update_duty function, the function can take effect.
@brief A thread-safe API to set and start LEDC fade function.
@brief A thread-safe API to set and start LEDC fade function, with a limited time.
@brief Set LEDC fade function.
@brief Set LEDC fade function, with a limited time.
@brief LEDC set channel frequency (Hz)
@brief Set LEDC output gpio.
@brief LEDC stop.
Disable LEDC output, and set idle level
@brief LEDC timer configuration
Configure LEDC timer with the given source timer/frequency(Hz)/duty_resolution
@brief Pause LEDC timer counter
@brief Resume LEDC timer
@brief Reset LEDC timer
@brief Configure LEDC settings
@brief LEDC update channel parameters
A hack to make sure that a few patches to the ESP-IDF which are implemented in Rust
are linked to the final executable
@brief Get the received length of a linked list, until end of the link or eof.
Generate a linked list pointing to a (huge) buffer in an descriptor array.
\brief This function implements the AES-CMAC-PRF-128 pseudorandom
function, as defined in
RFC-4615: The Advanced Encryption Standard-Cipher-based
Message Authentication Code-Pseudo-Random Function-128
(AES-CMAC-PRF-128) Algorithm for the Internet Key
Exchange Protocol (IKE).
\brief Find a specific named_data entry in a sequence or list based on
the OID.
\brief Free all entries in a mbedtls_asn1_named_data list.
\brief Free all shallow entries in a mbedtls_asn1_named_data list,
but do not free internal pointer targets.
\brief Retrieve an AlgorithmIdentifier ASN.1 sequence.
Updates the pointer to immediately behind the full
AlgorithmIdentifier.
\brief Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no
params.
Updates the pointer to immediately behind the full
AlgorithmIdentifier.
\brief Retrieve a bitstring ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
\brief Retrieve a bitstring ASN.1 tag without unused bits and its
value.
Updates the pointer to the beginning of the bit/octet string.
\brief Retrieve a boolean ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
\brief Retrieve an enumerated ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
\brief Retrieve an integer ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
\brief Get the length of an ASN.1 element.
Updates the pointer to immediately behind the length.
\brief Retrieve an integer ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
\brief Parses and splits an ASN.1 “SEQUENCE OF ”.
Updates the pointer to immediately behind the full sequence tag.
\brief Get the tag and length of the element.
Check for the requested tag.
Updates the pointer to immediately behind the tag and length.
\brief Free a heap-allocated linked list presentation of
an ASN.1 sequence, including the first element.
\brief Traverse an ASN.1 SEQUENCE container and
call a callback for each entry.
\brief This function performs a CCM authenticated decryption of a
buffer.
\brief This function encrypts a buffer using CCM.
\brief This function finishes the CCM operation and generates
the authentication tag.
\brief This function releases and clears the specified CCM context
and underlying cipher sub-context.
\brief This function initializes the specified CCM context,
to make references valid, and prepare the context
for mbedtls_ccm_setkey() or mbedtls_ccm_free().
\brief The CCM checkup routine.
\brief This function declares the lengths of the message
and additional data for a CCM encryption or decryption
operation.
\brief This function initializes the CCM context set in the
\p ctx parameter and sets the encryption key.
\brief This function performs a CCM* authenticated decryption of a
buffer.
\brief This function encrypts a buffer using CCM*.
\brief This function starts a CCM encryption or decryption
operation.
\brief This function feeds an input buffer into an ongoing CCM
encryption or decryption operation.
\brief This function feeds an input buffer as associated data
(authenticated but not encrypted data) in a CCM
encryption or decryption operation.
\brief This function encrypts or decrypts data with ChaCha20 and
the given key and nonce.
\brief This function releases and clears the specified
ChaCha20 context.
\brief This function initializes the specified ChaCha20 context.
\brief The ChaCha20 checkup routine.
\brief This function sets the encryption/decryption key.
\brief This function sets the nonce and initial counter value.
\brief This function encrypts or decrypts data.
\brief This function performs a complete ChaCha20-Poly1305
authenticated decryption with the previously-set key.
\brief This function performs a complete ChaCha20-Poly1305
authenticated encryption with the previously-set key.
\brief This function finished the ChaCha20-Poly1305 operation and
generates the MAC (authentication tag).
\brief This function releases and clears the specified
ChaCha20-Poly1305 context.
\brief This function initializes the specified ChaCha20-Poly1305 context.
\brief The ChaCha20-Poly1305 checkup routine.
\brief This function sets the ChaCha20-Poly1305
symmetric encryption key.
\brief This function starts a ChaCha20-Poly1305 encryption or
decryption operation.
\brief Thus function feeds data to be encrypted or decrypted
into an on-going ChaCha20-Poly1305
operation.
\brief This function feeds additional data to be authenticated
into an ongoing ChaCha20-Poly1305 operation.
\brief The authenticated encryption (AEAD/NIST_KW) function.
\brief The authenticated encryption (AEAD/NIST_KW) function.
\brief This function checks the tag for AEAD ciphers.
Currently supported with GCM and ChaCha20+Poly1305.
This must be called after mbedtls_cipher_finish().
\brief This function calculates the full generic CMAC
on the input buffer with the provided key.
\brief This function finishes an ongoing CMAC operation, and
writes the result to the output buffer.
\brief This function starts a new CMAC operation with the same
key as the previous one.
\brief This function starts a new CMAC computation
by setting the CMAC key, and preparing to authenticate
the input data.
It must be called with an initialized cipher context.
\brief This function feeds an input buffer into an ongoing CMAC
computation.
\brief The generic all-in-one encryption/decryption function,
for all ciphers except AEAD constructs.
\brief The generic cipher finalization function. If data still
needs to be flushed from an incomplete block, the data
contained in it is padded to the size of
the last block, and written to the \p output buffer.
\brief This function frees and clears the cipher-specific
context of \p ctx. Freeing \p ctx itself remains the
responsibility of the caller.
\brief This function retrieves the cipher-information
structure associated with the given cipher name.
\brief This function retrieves the cipher-information
structure associated with the given cipher type.
\brief This function retrieves the cipher-information
structure associated with the given cipher ID,
key size and mode.
\brief This function initializes a \p ctx as NONE.
\brief This function retrieves the list of ciphers supported
by the generic cipher module.
\brief This function resets the cipher state.
\brief This function sets the initialization vector (IV)
or nonce.
\brief This function sets the padding mode, for cipher modes
that use padding.
\brief This function sets the key to use with the given context.
\brief This function prepares a cipher context for
use with the given cipher primitive.
\brief The generic cipher update function. It encrypts or
decrypts using the given cipher context. Writes as
many block-sized blocks of data as possible to output.
Any data that cannot be written immediately is either
added to the next block, or flushed when
mbedtls_cipher_finish() is called.
Exception: For MBEDTLS_MODE_ECB, expects a single block
in size. For example, 16 Bytes for AES.
\brief This function adds additional data for AEAD ciphers.
Currently supported with GCM and ChaCha20+Poly1305.
\brief This function writes a tag for AEAD ciphers.
Currently supported with GCM and ChaCha20+Poly1305.
This must be called after mbedtls_cipher_finish().
\brief The CMAC checkup routine.
\brief This function derives and exports the shared secret.
\brief Check whether a given group can be used for ECDH.
\brief This function computes the shared secret.
\brief This function frees a context.
\brief This function generates an ECDH keypair on an elliptic
curve.
\brief Return the ECP group for provided context.
\brief This function sets up an ECDH context from an EC key.
\brief This function initializes an ECDH context.
\brief This function generates an EC key pair and exports its
in the format used in a TLS ServerKeyExchange handshake
message.
\brief This function generates a public key and exports it
as a TLS ClientKeyExchange payload.
\brief This function parses the ECDHE parameters in a
TLS ServerKeyExchange handshake message.
\brief This function parses and processes the ECDHE payload of a
TLS ClientKeyExchange message.
\brief This function sets up the ECDH context with the information
given.
\brief This function checks whether a given group can be used
for ECDSA.
\brief This function frees an ECDSA context.
\brief This function sets up an ECDSA context from an EC key pair.
\brief This function generates an ECDSA keypair on the given curve.
\brief This function initializes an ECDSA context.
\brief This function reads and verifies an ECDSA signature.
\brief This function reads and verifies an ECDSA signature,
in a restartable way.
\brief This function computes the ECDSA signature of a
previously-hashed message.
\brief This function computes the ECDSA signature of a
previously-hashed message, deterministic version.
\brief This function computes the ECDSA signature of a
previously-hashed message, in a restartable way.
\brief This function computes the ECDSA signature of a
previously-hashed message, in a restartable way.
\brief This function verifies the ECDSA signature of a
previously-hashed message.
\brief This function verifies the ECDSA signature of a
previously-hashed message, in a restartable manner
\brief This function computes the ECDSA signature and writes it
to a buffer, serialized as defined in RFC-4492:
Elliptic Curve Cryptography (ECC) Cipher Suites for
Transport Layer Security (TLS).
\brief This function computes the ECDSA signature and writes it
to a buffer, in a restartable way.
\brief Check if an ECJPAKE context is ready for use.
\brief Derive the shared secret
(TLS: Pre-Master Secret).
\brief This clears an ECJPAKE context and frees any
embedded data structure.
\brief Initialize an ECJPAKE context.
\brief Read and process the first round message
(TLS: contents of the Client/ServerHello extension,
excluding extension type and length bytes).
\brief Read and process the second round message
(TLS: contents of the Client/ServerKeyExchange).
\brief Checkup routine
\brief Set the point format for future reads and writes.
\brief Set up an ECJPAKE context for use.
\brief Generate and write the first round message
(TLS: contents of the Client/ServerHello extension,
excluding extension type and length bytes).
\brief Generate and write the second round message
(TLS: contents of the Client/ServerKeyExchange).
\brief Write the shared key material to be passed to a Key
Derivation Function as described in RFC8236.
\brief This function checks that an \c mbedtls_mpi is a
valid private key for this curve.
\brief This function checks that the keypair objects
\p pub and \p prv have the same group and the
same public point, and that the private key in
\p prv is consistent with the public key.
\brief This function checks that a point is a valid public key
on this curve.
\brief This function copies the contents of point \p Q into
point \p P.
\brief This function retrieves curve information from an internal
group identifier.
\brief This function retrieves curve information from a
human-readable name.
\brief This function retrieves curve information from a TLS
NamedCurve value.
\brief This function retrieves the information defined in
mbedtls_ecp_curve_info() for all supported curves.
\brief This function exports generic key-pair parameters.
\brief This function generates an ECP key.
\brief This function generates an ECP keypair.
\brief This function generates a keypair with a configurable base
point.
\brief This function generates a private key.
\brief This function copies the contents of group \p src into
group \p dst.
\brief This function frees the components of an ECP group.
\brief This function initializes an ECP group context
without loading any domain parameters.
\brief This function sets up an ECP group context
from a standardized set of domain parameters.
\brief This function retrieves the list of internal group
identifiers of all supported curves in the order of
preference.
\brief This function checks if a point is the point at infinity.
\brief Calculate the public key from a private key in a key pair.
\brief This function frees the components of a key pair.
\brief Query the group that a key pair belongs to.
\brief This function initializes a key pair as an invalid one.
\brief This function performs a scalar multiplication of a point
by an integer: \p R = \p m * \p P.
\brief This function performs multiplication of a point by
an integer: \p R = \p m * \p P in a restartable way.
\brief This function performs multiplication and addition of two
points by integers: \p R = \p m * \p P + \p n * \p Q
\brief This function performs multiplication and addition of two
points by integers: \p R = \p m * \p P + \p n * \p Q in a
restartable way.
\brief This function compares two points.
\brief This function frees the components of a point.
\brief This function initializes a point as zero.
\brief This function imports a point from unsigned binary data.
\brief This function imports a non-zero point from two ASCII
strings.
\brief This function exports a point into unsigned binary data.
\brief This function reads an elliptic curve private key.
\brief The ECP checkup routine.
\brief Set the public key in a key pair object.
\brief This function sets a point to the point at infinity.
\brief This function sets up an ECP group context from a TLS
ECParameters record as defined in RFC 4492, Section 5.4.
\brief This function extracts an elliptic curve group ID from a
TLS ECParameters record as defined in RFC 4492, Section 5.4.
\brief This function imports a point from a TLS ECPoint record.
\brief This function exports an elliptic curve as a TLS
ECParameters record as defined in RFC 4492, Section 5.4.
\brief This function exports a point as a TLS ECPoint record
defined in RFC 4492, Section 5.4.
\brief This function exports an elliptic curve private key.
\brief This function exports an elliptic curve public key.
\brief The GCM checkup routine.
\brief Translate the high-level part of an Mbed TLS error code into a string
representation.
\brief RIPEMD-160 process data block (internal use only)
\brief SHA-1 process data block (internal use only).
\brief This function processes a single data block within
the ongoing SHA-256 computation. This function is for
internal use only.
\brief This function processes a single data block within
the ongoing SHA-512 computation.
This function is for internal use only.
\brief Translate the low-level part of an Mbed TLS error code into a string
representation.
\brief This function calculates the message-digest of a buffer,
with respect to a configurable message-digest algorithm
in a single call.
\brief Output = MD5( input buffer )
\brief Checkup routine
\brief MD5 context setup
\brief This function clones the state of a message-digest
context.
\brief This function calculates the message-digest checksum
result of the contents of the provided file.
\brief This function finishes the digest operation,
and writes the result to the output buffer.
\brief This function clears the internal structure of \p ctx and
frees any embedded internal structure, but does not free
\p ctx itself.
\brief This function returns the name of the message digest for
the message-digest information structure given.
\brief This function extracts the message-digest size from the
message-digest information structure.
\brief This function extracts the message-digest type from the
message-digest information structure.
\brief This function calculates the full generic HMAC
on the input buffer with the provided key.
\brief This function finishes the HMAC operation, and writes
the result to the output buffer.
\brief This function prepares to authenticate a new message with
the same key as the previous HMAC operation.
\brief This function sets the HMAC key and prepares to
authenticate a new message.
\brief This function feeds an input buffer into an ongoing HMAC
computation.
\brief This function returns the message-digest information
from the given context.
\brief This function returns the message-digest information
associated with the given digest name.
\brief This function returns the message-digest information
associated with the given digest type.
\brief This function initializes a message-digest context without
binding it to a particular message-digest algorithm.
\brief This function returns the list of digests supported by the
generic digest module.
\brief This function selects the message digest algorithm to use,
and allocates internal structures.
\brief This function starts a message-digest computation.
\brief This function feeds an input buffer into an ongoing
message-digest computation.
\brief Perform an unsigned addition of MPIs: X = |A| + |B|
\brief Perform a signed addition of an MPI and an integer: X = A + b
\brief Perform a signed addition of MPIs: X = A + B
\brief Return the number of bits up to and including the most
significant bit of value \c 1.
\brief Compare the absolute values of two MPIs.
\brief Compare an MPI with an integer.
\brief Compare two MPIs.
\brief Make a copy of an MPI.
\brief Perform a division with remainder of an MPI by an integer:
A = Q * b + R
\brief Perform a division with remainder of two MPIs:
A = Q * B + R
\brief Perform a sliding-window exponentiation: X = A^E mod N
@brief Perform a sliding-window exponentiation: X = A^E mod N
\brief Fill an MPI with a number of random bytes.
\brief This function frees the components of an MPI context.
\brief Compute the greatest common divisor: G = gcd(A, B)
\brief Generate a prime number.
\brief Get a specific bit from an MPI.
\brief Enlarge an MPI to the specified number of limbs.
\brief Initialize an MPI context.
\brief Compute the modular inverse: X = A^-1 mod N
\brief Miller-Rabin primality test.
\brief Return the number of bits of value \c 0 before the
least significant bit of value \c 1.
\brief Store integer value in MPI.
\brief Check if an MPI is less than the other in constant time.
\brief Perform a modular reduction with respect to an integer.
r = A mod b
\brief Perform a modular reduction. R = A mod B
\brief Perform a multiplication of an MPI with an unsigned integer:
X = A * b
\brief Perform a multiplication of two MPIs: X = A * B
Generate a random number uniformly in a range.
\brief Import an MPI from unsigned big endian binary data.
\brief Import X from unsigned binary data, little endian
\brief Read an MPI from a line in an opened file.
\brief Import an MPI from an ASCII string.
\brief Perform a safe conditional copy of MPI which doesn’t
reveal whether the condition was true or not.
\brief Perform a safe conditional swap which doesn’t
reveal whether the condition was true or not.
\brief Checkup routine
\brief Modify a specific bit in an MPI.
\brief Perform a left-shift on an MPI: X <<= count
\brief Perform a right-shift on an MPI: X >>= count
\brief This function resizes an MPI downwards, keeping at least the
specified number of limbs.
\brief Return the total size of an MPI value in bytes.
\brief Perform an unsigned subtraction of MPIs: X = |A| - |B|
\brief Perform a signed subtraction of an MPI and an integer:
X = A - b
\brief Perform a signed subtraction of MPIs: X = A - B
\brief Swap the contents of two MPIs.
\brief Export X into unsigned binary data, big endian.
Always fills the whole buffer, which will start with zeros
if the number is smaller.
\brief Export X into unsigned binary data, little endian.
Always fills the whole buffer, which will end with zeros
if the number is smaller.
\brief Export an MPI into an opened file.
\brief Export an MPI to an ASCII string.
\brief Get time in milliseconds.
\brief Tell if a context can do the operation given by type
\brief Check if a public-private pair of keys matches.
\brief Create a PK context starting from a key stored in PSA.
This key:
- must be exportable and
- must be an RSA or EC key pair or public key (FFDH is not supported in PK).
\brief Create a PK context for the public key of a PSA key.
\brief Export debug information
\brief Decrypt message (including padding if relevant).
\brief Encrypt message (including padding if relevant).
\brief Free the components of a #mbedtls_pk_context.
\brief Get the size in bits of the underlying key
\brief Access the type name
\brief Determine valid PSA attributes that can be used to
import a key into PSA.
\brief Get the key type
\brief Import a key into the PSA key store.
\brief Return information associated with the given PK type
\brief Initialize a #mbedtls_pk_context (as NONE).
\ingroup pk_module /
/*
\brief Parse a private key in PEM or DER format
\ingroup pk_module /
/*
\brief Load and parse a private key
\ingroup pk_module /
/*
\brief Parse a public key in PEM or DER format
\ingroup pk_module /
/*
\brief Load and parse a public key
\brief Parse a SubjectPublicKeyInfo DER structure
\brief Initialize a PK context with the information given
and allocates the type-specific PK subcontext.
\brief Initialize an RSA-alt context
\brief Make signature, including padding if relevant.
\brief Make signature given a signature type.
\brief Restartable version of \c mbedtls_pk_sign()
\brief Verify signature (including padding if relevant).
\brief Verify signature, with options.
(Includes verification of the padding depending on type.)
\brief Restartable version of \c mbedtls_pk_verify()
\brief Write a private key to a PKCS#1 or SEC1 DER structure
Note: data is written at the end of the buffer! Use the
return value to determine where you should start
using the buffer
\brief Write a private key to a PKCS#1 or SEC1 PEM string
\brief Write a subjectPublicKey to ASN.1 data
Note: function works backwards in data buffer
\brief Write a public key to a SubjectPublicKeyInfo DER structure
Note: data is written at the end of the buffer! Use the
return value to determine where you should start
using the buffer
\brief Write a public key to a PEM string
\brief Securely zeroize a buffer
\brief This function generates the Poly1305 Message
Authentication Code (MAC).
\brief This function releases and clears the specified
Poly1305 context.
\brief This function initializes the specified Poly1305 context.
\brief This function calculates the Poly1305 MAC of the input
buffer with the provided key.
\brief The Poly1305 checkup routine.
\brief This function sets the one-time authentication key.
\brief This functions feeds an input buffer into an ongoing
Poly1305 computation.
\brief Library deinitialization.
\brief Get statistics about
resource consumption related to the PSA keystore.
\brief Inject an initial entropy seed for the random generator into
secure storage.
\brief Output = RIPEMD-160( input buffer )
\brief Clone (the state of) a RIPEMD-160 context
\brief RIPEMD-160 final digest
\brief Clear RIPEMD-160 context
\brief Initialize RIPEMD-160 context
\brief Checkup routine
\brief RIPEMD-160 context setup
\brief RIPEMD-160 process buffer
\brief This function checks if a context contains an RSA private key
and perform basic consistency checks.
\brief This function checks a public-private RSA key pair.
\brief This function checks if a context contains at least an RSA
public key.
\brief This function completes an RSA context from
a set of imported core parameters.
\brief This function copies the components of an RSA context.
\brief This function exports the core parameters of an RSA key.
\brief This function exports CRT parameters of a private RSA key.
\brief This function exports core parameters of an RSA key
in raw big-endian binary format.
\brief This function frees the components of an RSA key.
\brief This function generates an RSA keypair.
\brief This function retrieves the length of the RSA modulus in bits.
\brief This function retrieves the length of RSA modulus in Bytes.
\brief This function retrieves hash identifier of mbedtls_md_type_t
type.
\brief This function retrieves padding mode of initialized
RSA context.
\brief This function imports a set of core parameters into an
RSA context.
\brief This function imports core RSA parameters, in raw big-endian
binary format, into an RSA context.
\brief This function initializes an RSA context.
\brief This function performs an RSA operation, then removes the
message padding.
\brief This function adds the message padding, then performs an RSA
operation.
\brief This function performs a private RSA operation to sign
a message digest using PKCS#1.
\brief This function performs a public RSA operation and checks
the message digest.
\brief This function performs an RSA private key operation.
\brief This function performs an RSA public key operation.
\brief This function performs a PKCS#1 v2.1 OAEP decryption
operation (RSAES-OAEP-DECRYPT).
\brief This function performs a PKCS#1 v2.1 OAEP encryption
operation (RSAES-OAEP-ENCRYPT).
\brief This function performs a PKCS#1 v1.5 decryption
operation (RSAES-PKCS1-v1_5-DECRYPT).
\brief This function performs a PKCS#1 v1.5 encryption operation
(RSAES-PKCS1-v1_5-ENCRYPT).
\brief This function performs a PKCS#1 v1.5 signature
operation (RSASSA-PKCS1-v1_5-SIGN).
\brief This function performs a PKCS#1 v1.5 verification
operation (RSASSA-PKCS1-v1_5-VERIFY).
\brief This function performs a PKCS#1 v2.1 PSS signature
operation (RSASSA-PSS-SIGN).
\brief This function performs a PKCS#1 v2.1 PSS signature
operation (RSASSA-PSS-SIGN).
\brief This function performs a PKCS#1 v2.1 PSS verification
operation (RSASSA-PSS-VERIFY).
\brief This function performs a PKCS#1 v2.1 PSS verification
operation (RSASSA-PSS-VERIFY).
\brief The RSA checkup routine.
\brief This function sets padding for an already initialized RSA
context.
\brief This function calculates the SHA-1 checksum of a buffer.
\brief This function clones the state of a SHA-1 context.
\brief This function finishes the SHA-1 operation, and writes
the result to the output buffer.
\brief This function clears a SHA-1 context.
\brief This function initializes a SHA-1 context.
\brief The SHA-1 checkup routine.
\brief This function starts a SHA-1 checksum calculation.
\brief This function feeds an input buffer into an ongoing SHA-1
checksum calculation.
\brief This function calculates the SHA-3
checksum of a buffer.
\brief This function clones the state of a SHA-3 context.
\brief This function finishes the SHA-3 operation, and writes
the result to the output buffer.
\brief This function clears a SHA-3 context.
\brief This function initializes a SHA-3 context.
\brief Checkup routine for the algorithms implemented
by this module: SHA3-224, SHA3-256, SHA3-384, SHA3-512.
\brief This function starts a SHA-3 checksum
calculation.
\brief This function feeds an input buffer into an ongoing
SHA-3 checksum calculation.
\brief The SHA-224 checkup routine.
\brief This function calculates the SHA-224 or SHA-256
checksum of a buffer.
\brief This function clones the state of a SHA-256 context.
\brief This function finishes the SHA-256 operation, and writes
the result to the output buffer.
\brief This function clears a SHA-256 context.
\brief This function initializes a SHA-256 context.
\brief The SHA-256 checkup routine.
\brief This function starts a SHA-224 or SHA-256 checksum
calculation.
\brief This function feeds an input buffer into an ongoing
SHA-256 checksum calculation.
\brief The SHA-384 checkup routine.
\brief This function calculates the SHA-512 or SHA-384
checksum of a buffer.
\brief This function clones the state of a SHA-512 context.
\brief This function finishes the SHA-512 operation, and writes
the result to the output buffer.
\brief This function clears a SHA-512 context.
\brief This function initializes a SHA-512 context.
\brief The SHA-512 checkup routine.
\brief This function starts a SHA-384 or SHA-512 checksum
calculation.
\brief This function feeds an input buffer into an ongoing
SHA-512 checksum calculation.
\brief Check if there is data already read from the
underlying transport but not yet processed.
\brief Check whether a buffer contains a valid and authentic record
that has not been seen before. (DTLS only).
\brief Notify the peer that the connection is being closed
\brief Set the supported Application Layer Protocols.
\brief Set the certificate verification mode
Default: NONE on server, REQUIRED on client
\brief Set the data required to verify peer certificate
\brief Set the X.509 security profile used for verification
\brief Whether to send a list of acceptable CAs in
CertificateRequest messages.
(Default: do send)
\brief Set the list of allowed ciphersuites and the preference
order. First in the list has the highest preference.
\brief Set the debug callback
\brief Set a limit on the number of records with a bad MAC
before terminating the connection.
(DTLS only, no effect on TLS.)
Default: 0 (disabled).
\brief Enable or disable Encrypt-then-MAC
(Default: MBEDTLS_SSL_ETM_ENABLED)
\brief Set the current endpoint type
\brief Enable or disable Extended Master Secret negotiation.
(Default: MBEDTLS_SSL_EXTENDED_MS_ENABLED)
\brief Set the allowed groups in order of preference.
\brief Prevent or allow legacy renegotiation.
(Default: MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION)
\brief Set the maximum fragment length to emit and/or negotiate.
(Typical: the smaller of #MBEDTLS_SSL_IN_CONTENT_LEN and
#MBEDTLS_SSL_OUT_CONTENT_LEN, usually 2^14
bytes)
(Server: set maximum fragment length to emit,
usually negotiated by the client during handshake)
(Client: set maximum fragment length to emit and
negotiate with the server during handshake)
(Default: #MBEDTLS_SSL_MAX_FRAG_LEN_NONE)
\brief Set own certificate chain and private key
\brief Pick the ciphersuites order according to the second parameter
in the SSL Server module (MBEDTLS_SSL_SRV_C).
(Default, if never called: MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_SERVER)
\brief Set the timeout period for mbedtls_ssl_read()
(Default: no timeout.)
\brief Enable / Disable renegotiation support for connection when
initiated by peer
(Default: MBEDTLS_SSL_RENEGOTIATION_DISABLED)
\brief Enforce renegotiation requests.
(Default: enforced, max_records = 16)
\brief Set record counter threshold for periodic renegotiation.
(Default: 2^48 - 1)
\brief Set the random number generator callback
\brief Set the session cache callbacks (server-side only)
If not set, no session resuming is done (except if session
tickets are enabled too).
\brief Enable / Disable session tickets (client only).
(Default: MBEDTLS_SSL_SESSION_TICKETS_ENABLED.)
\brief Configure SSL session ticket callbacks (server only).
(Default: none.)
\brief Configure allowed signature algorithms for use in TLS
\brief Set server side ServerName TLS extension callback
(optional, server-side only).
\brief Set the transport type (TLS or DTLS).
Default: TLS
\brief Set the verification callback (Optional).
\brief Load reasonable default SSL configuration values.
(You need to call mbedtls_ssl_config_init() first.)
\brief Free an SSL configuration context
\brief Initialize an SSL configuration context
Just makes the context ready for
mbedtls_ssl_config_defaults() or mbedtls_ssl_config_free().
\brief Free referenced items in an SSL context and clear memory
\brief Get the name of the negotiated Application Layer Protocol.
This function should be called after the handshake is
completed.
\brief Return the number of application data bytes
remaining to be read from the current record.
\brief Return the name of the current ciphersuite
\brief Return the ID of the ciphersuite associated with the
given name
\brief Return the id of the current ciphersuite
\brief Return the name of the ciphersuite associated with the
given ID
\brief Retrieve SNI extension value for the current handshake.
Available in \c f_cert_cb of \c mbedtls_ssl_conf_cert_cb(),
this is the same value passed to \c f_sni callback of
\c mbedtls_ssl_conf_sni() and may be used instead of
\c mbedtls_ssl_conf_sni().
\brief Return the current maximum incoming record payload in bytes.
\brief Return the current maximum outgoing record payload in bytes.
\brief Return the peer certificate from the current connection.
\brief Return the (maximum) number of bytes added by the record
layer: header + encryption/MAC overhead (inc. padding)
\brief Export a session in order to resume it later.
\brief Return the result of the certificate verification
\brief Return the current TLS version
\brief Perform the SSL handshake
\brief Perform a single step of the SSL handshake
\brief Initialize an SSL context
Just makes the context ready for mbedtls_ssl_setup() or
mbedtls_ssl_free()
\brief Read at most ‘len’ application data bytes
\brief Initiate an SSL renegotiation on the running connection.
Client: perform the renegotiation right now.
Server: request renegotiation, which will be performed
during the next call to mbedtls_ssl_read() if honored by
client.
\brief Send an alert message
\brief Free referenced items in an SSL session including the
peer certificate and clear memory
\brief Initialize SSL session structure
\brief Load serialized session data into a session structure.
On client, this can be used for loading saved sessions
before resuming them with mbedtls_ssl_set_session().
On server, this can be used for alternative implementations
of session cache or session tickets.
\brief Reset an already initialized SSL context for re-use
while retaining application-set variables, function
pointers and data.
\brief Save session structure as serialized data in a buffer.
On client, this can be used for saving session data,
potentially in non-volatile storage, for resuming later.
On server, this can be used for alternative implementations
of session cache or session tickets.
\brief Set the underlying BIO callbacks for write, read and
read-with-timeout.
\brief Configure a key export callback.
(Default: none.)
\brief Set or reset the hostname to check against the received
server certificate. It sets the ServerName TLS extension,
too, if that extension is enabled. (client-side only)
\brief Set authmode for the current handshake.
\brief Set the data required to verify peer certificate for the
current handshake
\brief Set DN hints sent to client in CertificateRequest message
\brief Set own certificate and key for the current handshake
\brief Load a session for session resumption.
\brief Set the timer callbacks (Mandatory for DTLS.)
\brief Set a connection-specific verification callback (optional).
\brief Set up an SSL context for use
\brief TLS-PRF function for key derivation.
\brief Try to write exactly ‘len’ application data bytes
\brief Translate an Mbed TLS error code into a string representation.
The result is truncated if necessary and always includes a
terminating null byte.
\brief Unallocate all CRL data
\brief Returns an informational string about the CRL.
\brief Initialize a CRL (chain)
\brief Parse one or more CRLs and append them to the chained list
\brief Parse a DER-encoded CRL and append it to the chained list
\brief Load one or more CRLs and append them to the chained list
\brief Check usage of certificate against extendedKeyUsage.
\brief Check usage of certificate against keyUsage extension.
\brief Unallocate all certificate data
\brief Access the ca_istrue field
\brief Returns an informational string about the
certificate.
\brief Initialize a certificate (chain)
\brief Verify the certificate revocation status
\brief Parse one DER-encoded or one or more concatenated PEM-encoded
certificates and add them to the chained list.
\brief This function parses a CN string as an IP address.
\brief Parse a single DER formatted certificate and add it
to the end of the provided chained list.
\brief Parse a single DER formatted certificate and add it
to the end of the provided chained list. This is a
variant of mbedtls_x509_crt_parse_der() which takes
temporary ownership of the CRT buffer until the CRT
is destroyed.
\brief Parse a single DER formatted certificate and add it
to the end of the provided chained list.
\brief Load one or more certificates and add them
to the chained list. Parses permissively. If some
certificates can be parsed, the result is the number
of failed certificates it encountered. If none complete
correctly, the first error is returned.
\brief Load one or more certificate files from a path and add them
to the chained list. Parses permissively. If some
certificates can be parsed, the result is the number
of failed certificates it encountered. If none complete
correctly, the first error is returned.
\brief Verify a chain of certificates.
\brief Returns an informational string about the
verification status of a certificate.
\brief Restartable version of \c mbedtls_crt_verify_with_profile()
\brief Verify a chain of certificates with respect to
a configurable security profile.
\brief Store the certificate DN in printable form into buf;
no more than size characters will be written.
\brief Unallocate all data related to subject alternative name
\brief This function parses an item in the SubjectAlternativeNames
extension. Please note that this function might allocate
additional memory for a subject alternative name, thus
mbedtls_x509_free_subject_alt_name has to be called
to dispose of this additional memory afterwards.
\brief Store the certificate serial in printable form into buf;
no more than size characters will be written.
\brief Convert the certificate DN string \p name into
a linked list of mbedtls_x509_name (equivalent to
mbedtls_asn1_named_data).
\brief Compare pair of mbedtls_x509_time.
\brief Check a given mbedtls_x509_time against the system time
and tell if it’s in the future.
\brief Check a given mbedtls_x509_time against the system time
and tell if it’s in the past.
\brief Write a built up certificate to a X509 DER structure
Note: data is written at the end of the buffer! Use the
return value to determine where you should start
using the buffer
\brief Free the contents of a CRT write context
\brief Initialize a CRT writing context
\brief Write a built up certificate to a X509 PEM string
\brief Set the authorityKeyIdentifier extension for a CRT
Requires that mbedtls_x509write_crt_set_issuer_key() has been
called before
\brief Set the basicConstraints extension for a CRT
\brief Set the Extended Key Usage Extension
(e.g. MBEDTLS_OID_SERVER_AUTH)
\brief Generic function to add to or replace an extension in the
CRT
\brief Set the issuer key used for signing the certificate
\brief Set the issuer name for a Certificate
Issuer names should contain a comma-separated list
of OID types and values:
e.g. “C=UK,O=ARM,CN=Mbed TLS CA”
\brief Set the Key Usage Extension flags
(e.g. MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_KEY_CERT_SIGN)
\brief Set the MD algorithm to use for the signature
(e.g. MBEDTLS_MD_SHA1)
\brief Set the Netscape Cert Type flags
(e.g. MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT | MBEDTLS_X509_NS_CERT_TYPE_EMAIL)
\brief Set the serial number for a Certificate.
\brief Set Subject Alternative Name
\brief Set the subject public key for the certificate
\brief Set the subjectKeyIdentifier extension for a CRT
Requires that mbedtls_x509write_crt_set_subject_key() has been
called before
\brief Set the subject name for a Certificate
Subject names should contain a comma-separated list
of OID types and values:
e.g. “C=UK,O=ARM,CN=Mbed TLS Server 1”
\brief Set the validity period for a Certificate
Timestamps should be in string format for UTC timezone
i.e. “YYYYMMDDhhmmss”
e.g. “20131231235959” for December 31st 2013
at 23:59:59
\brief Set the version for a Certificate
Default: MBEDTLS_X509_CRT_VERSION_3
@brief Disable MCPWM capture channel
@brief Enable MCPWM capture channel
@brief Set event callbacks for MCPWM capture channel
@brief Trigger a catch by software
@brief Disable MCPWM capture timer
@brief Enable MCPWM capture timer
@brief Get MCPWM capture timer resolution, in Hz
@brief Set sync phase for MCPWM capture timer
@brief Start MCPWM capture timer
@brief Stop MCPWM capture timer
@brief Get the ETM event for MCPWM comparator
@brief Set event callbacks for MCPWM comparator
@brief Set MCPWM comparator’s compare value
@brief Delete MCPWM capture channel
@brief Delete MCPWM capture timer
@brief Delete MCPWM comparator
@brief Delete MCPWM fault
@brief Delete MCPWM generator
@brief Delete MCPWM operator
@brief Delete MCPWM sync source
@brief Delete MCPWM timer
@brief Set event callbacks for MCPWM fault
@brief Set generator action on MCPWM brake event
@brief Set generator action on MCPWM compare event
@brief Set generator action on MCPWM Fault event
@brief Set generator action on MCPWM Sync event
@brief Set generator action on MCPWM timer event
@brief Set generator actions on multiple MCPWM brake events
@brief Set generator actions on multiple MCPWM compare events
@brief Set generator actions on multiple MCPWM timer events
@brief Set dead time for MCPWM generator
@brief Set force level for MCPWM generator
@brief Create MCPWM capture channel
@brief Create MCPWM capture timer
@brief Create MCPWM comparator
@brief Allocate MCPWM generator from given operator
@brief Create MCPWM GPIO fault
@brief Create MCPWM GPIO sync source
@brief Create MCPWM operator
@brief Create MCPWM software fault
@brief Create MCPWM software sync source
@brief Create MCPWM timer
@brief Create MCPWM timer sync source
@brief Apply carrier feature for MCPWM operator
@brief Connect MCPWM operator and timer, so that the operator can be driven by the timer
@brief Try to make the operator recover from fault
@brief Set event callbacks for MCPWM operator
@brief Set brake method for MCPWM operator
@brief Activate the software fault, trigger the fault event for once
@brief Activate the software sync, trigger the sync event for once
@brief Disable MCPWM timer
@brief Enable MCPWM timer
@brief Set event callbacks for MCPWM timer
@brief Set a new period for MCPWM timer
@brief Set sync phase for MCPWM timer
@brief Send specific start/stop commands to MCPWM timer
@brief allocate a chunk of memory with specific alignment
@brief Perform an aligned allocation from the provided offset
@brief free() a buffer aligned in a given heap.
@brief Check heap integrity
@brief Dump heap information to stdout
@brief free() a buffer in a given heap.
@brief Return free heap size
@brief Return the size that a particular pointer was allocated with.
@brief Return metadata about a given heap
@brief malloc() a buffer in a given heap
@brief Return the lifetime minimum free heap size
@brief realloc() a buffer in a given heap.
@brief Register a new heap for use
@brief Associate a private lock pointer with a heap
@brief Close the storage handle and free any allocated resources
@brief Write any pending changes to non-volatile storage
@brief Create an iterator to enumerate NVS entries based on one or more parameters
@brief Create an iterator to enumerate NVS entries based on a handle and type
@brief Fills nvs_entry_info_t structure with information about entry pointed to by the iterator.
@brief Advances the iterator to next item matching the iterator criteria.
@brief Erase all key-value pairs in a namespace
@brief Erase key-value pair with given key name.
@brief Lookup key-value pair with given key name.
@brief Deinitialize NVS storage for the default NVS partition
@brief Deinitialize NVS storage for the given NVS partition
@brief Erase the default NVS partition
@brief Erase specified NVS partition
@brief Erase custom partition.
@brief Generate and store NVS keys in the provided esp partition
@brief Generate (and store) the NVS keys using the specified key-protection scheme
@brief Fetch the configuration structure for the default active
security scheme for NVS encryption
@brief Initialize the default NVS partition.
@brief Initialize NVS flash storage for the specified partition.
@brief Initialize NVS flash storage for the partition specified by partition pointer.
@brief Read NVS security configuration from a partition.
@brief Read NVS security configuration set by the specified security scheme
@brief Registers the given security scheme for NVS encryption
The scheme registered with sec_scheme_id by this API be used as
the default security scheme for the “nvs” partition.
Users will have to call this API explicitly in their application.
@brief Initialize the default NVS partition.
@brief Initialize NVS flash storage for the specified partition.
@brief get blob value for given key
@{*/
/**
@brief get int8_t value for given key
@brief get int16_t value for given key
@brief get int32_t value for given key
@brief get int64_t value for given key
@brief Fill structure nvs_stats_t. It provides info about memory used by NVS.
@{*/
/**
@brief get string value for given key
@brief get uint8_t value for given key
@brief get uint16_t value for given key
@brief get uint32_t value for given key
@brief get uint64_t value for given key
@brief Calculate all entries in a namespace.
@brief Open non-volatile storage with a given namespace from the default NVS partition
@brief Open non-volatile storage with a given namespace from specified partition
@brief Release iterator
@brief set variable length binary value for given key
@{*/
/**
@brief set int8_t value for given key
@brief set int16_t value for given key
@brief set int32_t value for given key
@brief set int64_t value for given key
@brief set string for given key
@brief set uint8_t value for given key
@brief set uint16_t value for given key
@brief set uint32_t value for given key
@brief set uint64_t value for given key
@return The text (human readable) name of the task referenced by the handle
xTaskToQuery. A task can query its own name by either passing in its own
handle, or by setting xTaskToQuery to NULL.
Returns the name that was assigned to a timer when the timer was created.
@brief Disable peripheral module by gating the clock and asserting the reset signal.
@note The following APIs are no longer supported since ESP32P4, please use the RCC lock macros instead.
/
/**
@brief Enable peripheral module by un-gating the clock and de-asserting the reset signal.
@brief Reset peripheral module by asserting and de-asserting the reset signal.
@cond
@brief Add endpoint request handler for a protocomm instance
@brief Start Bluetooth Low Energy based transport layer for provisioning
@brief Stop Bluetooth Low Energy based transport layer for provisioning
@brief Frees internal resources used by a transport session
@brief Delete a protocomm instance
@brief Start HTTPD protocomm transport
@brief Stop HTTPD protocomm transport
@brief Create a new protocomm instance
@brief Allocates internal resources for new transport session
@brief Remove endpoint request handler for a protocomm instance
@brief Calls the registered handler of an endpoint session
for processing incoming data and generating the response
@brief Add endpoint security for a protocomm instance
@brief Set endpoint for version verification
@brief Remove endpoint security for a protocomm instance
@brief Remove version verification endpoint from a protocomm instance
Abort an AEAD operation.
Process an authenticated decryption operation.
Set the key for a multipart authenticated decryption operation.
Process an authenticated encryption operation.
Set the key for a multipart authenticated encryption operation.
Finish encrypting a message in an AEAD operation.
Generate a random nonce for an authenticated encryption operation.
Declare the lengths of the message and additional data for AEAD.
Set the nonce for an authenticated encryption or decryption operation.
Encrypt or decrypt a message fragment in an active AEAD operation.
Pass additional data to an active AEAD operation.
Finish authenticating and decrypting a message in an AEAD operation.
\brief Decrypt a short message with a private key.
\brief Encrypt a short message with a public key.
Abort a cipher operation.
Decrypt a message using a symmetric cipher.
Set the key for a multipart symmetric decryption operation.
Encrypt a message using a symmetric cipher.
Set the key for a multipart symmetric encryption operation.
Finish encrypting or decrypting a message in a cipher operation.
Generate an IV for a symmetric encryption operation.
Set the IV for a symmetric encryption or decryption operation.
Encrypt or decrypt a message fragment in an active cipher operation.
Close a key handle.
Make a copy of a key.
Get the cipher suite from given inputs.
Get the password from given inputs.
Get the length of the password in bytes from given inputs.
Get the peer id from given inputs.
Get the length of the peer id in bytes from given inputs.
Get the user id from given inputs.
Get the length of the user id in bytes from given inputs.
\brief Library initialization.
\brief Destroy a key.
\brief Export a key in binary format.
\brief Export a public key or the public part of a key pair in binary format.
\brief Generate a key or key pair.
\brief Generate a key or key pair using custom production parameters.
\brief Generate random bytes.
Retrieve the attributes of a key.
Abort a hash operation.
Clone a hash operation.
Calculate the hash (digest) of a message and compare it with a
reference value.
Calculate the hash (digest) of a message.
Finish the calculation of the hash of a message.
Set up a multipart hash operation.
Add a message fragment to a multipart hash operation.
Finish the calculation of the hash of a message and compare it with
an expected value.
\brief Import a key in binary format.
\brief Get the maximum number of ops allowed to be
executed by an interruptible function in a
single call. This will return the last
value set by
\c psa_interruptible_set_max_ops() or
#PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED if
that function has never been called.
\brief Set the maximum number of ops allowed to be
executed by an interruptible function in a
single call.
Abort a key derivation operation.
Retrieve the current capacity of a key derivation operation.
Provide an input for key derivation or key agreement.
Provide a numeric input for key derivation or key agreement.
Provide an input for key derivation in the form of a key.
Perform a key agreement and use the shared secret as input to a key
derivation.
Read some data from a key derivation operation.
Derive a key from an ongoing key derivation operation.
Derive a key from an ongoing key derivation operation with custom
production parameters.
Set the maximum capacity of a key derivation operation.
Set up a key derivation operation.
Compare output data from a key derivation operation to an expected value.
Compare output data from a key derivation operation to an expected value
stored in a key object.
Abort a MAC operation.
Calculate the MAC (message authentication code) of a message.
Finish the calculation of the MAC of a message.
Set up a multipart MAC calculation operation.
Add a message fragment to a multipart MAC operation.
Calculate the MAC of a message and compare it with a reference value.
Finish the calculation of the MAC of a message and compare it with
an expected value.
Set up a multipart MAC verification operation.
Open a handle to an existing persistent key.
Abort a PAKE operation.
Get implicitly confirmed shared secret from a PAKE.
Provide input for a step of a password-authenticated key exchange.
Get output for a step of a password-authenticated key exchange.
Set the password for a password-authenticated key exchange from key ID.
Set the peer ID for a password-authenticated key exchange.
Set the application role for a password-authenticated key exchange.
Set the user ID for a password-authenticated key exchange.
Set the session information for a password-authenticated key exchange.
Remove non-essential copies of key material from memory.
Perform a key agreement and return the raw shared secret.
Reset a key attribute structure to a freshly initialized state.
\brief Sign a hash or short message with a private key.
\brief Abort a sign hash operation.
\brief Continue and eventually complete the action of
signing a hash or short message with a private
key, in an interruptible manner.
\brief Get the number of ops that a hash signing
operation has taken so far. If the operation
has completed, then this will represent the
number of ops required for the entire
operation. After initialization or calling
\c psa_sign_hash_interruptible_abort() on
the operation, a value of 0 will be returned.
\brief Start signing a hash or short message with a
private key, in an interruptible manner.
\brief Sign a message with a private key. For hash-and-sign algorithms,
this includes the hashing step.
\brief Verify the signature of a hash or short message using a public key.
\brief Abort a verify hash operation.
\brief Continue and eventually complete the action of
reading and verifying a hash or short message
signed with a private key, in an interruptible
manner.
\brief Get the number of ops that a hash verification
operation has taken so far. If the operation
has completed, then this will represent the
number of ops required for the entire
operation. After initialization or calling \c
psa_verify_hash_interruptible_abort() on the
operation, a value of 0 will be returned.
\brief Start reading and verifying a hash or short
message, in an interruptible manner.
\brief Verify the signature of a message with a public key, using
a hash-and-sign verification algorithm.
@brief Get a void pointer to the current TCB of a particular core
Returns the ID assigned to the timer.
Returns the start of the stack associated with xTask.
@brief Add channel into a synchronous group (channels in the same group can start transaction simultaneously)
@brief A helper function to allocate a proper memory for RMT encoder
@brief Apply modulation feature for TX channel or demodulation feature for RX channel
@brief Update the configuration of the bytes encoder
@brief Configure RMT parameters
@brief Delete an RMT channel
@brief Delete RMT encoder
@brief Delete synchronization manager
@brief Disable the RMT channel
@brief Initialize RMT driver
@brief Uninstall RMT driver.
@brief Enable the RMT channel
@brief Enable or disable the feature that when loop count reaches the threshold, RMT will stop transmitting.
@brief Reset RMT encoder
@brief Fill memory data of channel with given RMT items.
@brief Get the current status of eight channels.
@brief Get RMT clock divider, channel clock is divided from source clock.
@brief Get speed of channel’s internal counter clock.
@brief Get RMT idle output level for transmitter
@brief Get RMT memory block number
@brief Get RMT memory low power mode.
@brief Get RMT memory owner.
@brief Get ringbuffer from RMT.
@brief Get RMT idle threshold value.
@brief Get RMT source clock
@brief Get RMT status
@brief Get RMT tx loop mode.
@brief Deregister previously registered RMT interrupt handler
@brief Register RMT interrupt handler, the handler is an ISR.
@brief Create RMT bytes encoder, which can encode byte stream into RMT symbols
@brief Create RMT copy encoder, which copies the given RMT symbols into RMT memory
@brief Create a RMT RX channel
@brief Create a synchronization manager for multiple TX channels, so that the managed channel can start transmitting at the same time
@brief Create a RMT TX channel
@brief Initiate a receive job for RMT RX channel
@brief Registers a callback that will be called when transmission ends.
@brief Remove channel out of a group
@brief Reset RMT RX memory
@brief Set callbacks for RMT RX channel
@brief Set RMT start receiving data.
@brief Set RMT stop receiving data.
@brief Set RMT clock divider, channel clock is divided from source clock.
@brief Set RMT RX error interrupt enable
@brief Configure the GPIO used by RMT channel
@brief Set RMT idle output level for transmitter
@brief Set RMT memory block number for RMT channel
@brief Set RMT memory in low power mode.
@brief Set RMT memory owner.
@note Setting memory is only valid for RX channel.
@brief Set RMT RX filter.
@brief Set RMT RX idle threshold value
@brief Set RMT RX interrupt enable
@brief Set RMT RX threshold event interrupt enable
@brief Set RMT source clock
@brief Configure RMT carrier for TX signal.
@brief Set RMT TX interrupt enable
@brief Set loop count threshold value for RMT TX channel
@brief Set RMT tx loop mode.
@brief Set RMT TX threshold event interrupt enable
@brief Reset synchronization manager
@brief Get the user context set by ‘rmt_translator_set_context’
@brief Init rmt translator and register user callback.
The callback will convert the raw data that needs to be sent to rmt format.
If a channel is initialized more than once, the user callback will be replaced by the later.
@brief Set user context for the translator of specific channel
@brief Transmit data by RMT TX channel
@brief Reset RMT TX memory
@brief Set event callbacks for RMT TX channel
@brief Set RMT start sending data from memory.
@brief Set RMT stop sending.
@brief Wait for all pending TX transactions done
@brief Wait RMT TX finished.
@brief RMT send waveform from rmt_item array.
@brief Translate uint8_t type of data into rmt format and send it out.
Requires rmt_translator_init to init the translator first.
@brief Determine if the specified GPIO is a valid RTC GPIO.
@brief Deregister the handler previously registered using rtc_isr_register
@param handler handler function to call (as passed to rtc_isr_register)
@param handler_arg argument of the handler (as passed to rtc_isr_register)
@return
- ESP_OK on success
- ESP_ERR_INVALID_STATE if a handler matching both handler and
handler_arg isn’t registered
@brief Disable the RTC interrupt that is allowed to be executed when cache is disabled.
cache disabled. Internal interrupt handle function will call this function in interrupt
handler function. Disable bits when esp_intr_noniram_disable
is called.
@brief Enable the RTC interrupt that is allowed to be executed when cache is disabled.
cache disabled. Internal interrupt handle function will call this function in interrupt
handler function. Enable bits when esp_intr_noniram_enable
is called.
@brief Register a handler for specific RTC_CNTL interrupts
Check if SD/MMC card supports discard
Check if SD/MMC card supports trim
Probe and initialize SD/MMC card using given host
@brief Print information about the card to a stream
@param stream stream obtained using fopen or fdopen
@param card card information structure initialized using sdmmc_card_init
Erase given number of sectors from the SD/MMC card
Erase complete SD/MMC card
Get status of SD/MMC card
Enable SDIO interrupt in the SDMMC host
Get the data of CIS region of an SDIO card.
Parse and print the CIS information of an SDIO card.
Read blocks of data from an SDIO card using IO_RW_EXTENDED (CMD53)
Read one byte from an SDIO card using IO_RW_DIRECT (CMD52)
Read multiple bytes from an SDIO card using IO_RW_EXTENDED (CMD53)
Block until an SDIO interrupt is received
Write blocks of data to an SDIO card using IO_RW_EXTENDED (CMD53)
Write one byte to an SDIO card using IO_RW_DIRECT (CMD52)
Write multiple bytes to an SDIO card using IO_RW_EXTENDED (CMD53)
Check if SD/MMC card supports sanitize
Sanitize the data that was unmapped by a Discard command
Read given number of sectors from the SD/MMC card
Write given number of sectors to SD/MMC card
@brief Release resources allocated using sdspi_host_init
@brief Send command to the card and get response
@brief Calculate working frequency for specific device
@brief Initialize SD SPI driver
@brief Attach and initialize an SD SPI device on the specific SPI bus
@brief Enable SDIO interrupt.
@brief Wait for SDIO interrupt until timeout.
@brief Remove an SD SPI device
@brief Set card clock frequency
@brief Configure Sigma-delta channel
@brief Set Sigma-delta channel duty.
@brief Set Sigma-delta signal output pin
@brief Set Sigma-delta channel’s clock pre-scale value.
The source clock is APP_CLK, 80MHz. The clock frequency of the sigma-delta channel is APP_CLK / pre_scale
@brief Get the sync interval of SNTP operation
@brief Get set sync mode
@brief Get status of time sync
@brief system time getter used in the sntp module
@note The lwip sntp uses u32_t types for sec and us arguments
@brief Restart SNTP
@brief Set the sync interval of SNTP operation
@brief Set the sync mode
@brief Set status of time sync
@brief system time setter used in the sntp module
@note The lwip sntp uses u32_t types for sec and us arguments
@brief Set a callback function for time synchronization notification
@brief This function updates the system time.
@brief Allocate a device on a SPI bus
@brief Free a SPI bus
@brief Get max length (in bytes) of one transaction
@brief Initialize a SPI bus
@brief Remove a device from the SPI bus
@brief Occupy the SPI bus for a device to do continuous transactions.
@brief Calculate working frequency for specific device
@brief Get the result of a SPI transaction queued earlier by spi_device_queue_trans
.
@brief Poll until the polling transaction ends.
@brief Immediately start a polling transaction.
@brief Send a polling transaction, wait for it to complete, and return the result
@brief Queue a SPI transaction for interrupt transaction execution. Get the result by spi_device_get_trans_result
.
@brief Release the SPI bus occupied by the device. All other devices can start sending transactions.
@brief Send a SPI transaction, wait for it to complete, and return the result
@brief Given a memory address where flash is mapped, return the corresponding physical flash offset.
@brief Map region of flash memory into data or instruction address space
@brief Display information about mapped regions
@brief get free pages number which can be mmap
@brief Map sequences of pages of flash memory into data or instruction address space
@brief Release region previously obtained using spi_flash_mmap
@brief Given a physical offset in flash, return the address where it is mapped in the memory space.
@brief Calculate the working frequency that is most close to desired frequency.
@brief Get the frequency limit of current configurations.
SPI master working at this limit is OK, while above the limit, full duplex mode and DMA will not work,
and dummy bits will be aplied in the half duplex mode.
@brief Calculate the timing settings of specified frequency and settings.
@brief Free a SPI bus claimed as a SPI slave interface
@brief Get the result of a SPI transaction queued earlier
@brief Initialize a SPI bus as a slave interface
@brief Queue a SPI transaction for execution
@brief Do a SPI transaction
@brief Wait for transmission of output
@brief Suspend or restart the transmission or reception of data
@brief Flush non-transmitted output data and non-read input data
@brief Gets the parameters of the terminal
@brief Get process group ID for session leader for controlling terminal
@brief Send a break for a specific duration
@brief Sets the parameters of the terminal
@brief Disable temperature sensor
@brief Enable the temperature sensor
@brief Read temperature sensor data that is converted to degrees Celsius.
@note Should not be called from interrupt.
@brief Install temperature sensor driver
@brief Uninstall the temperature sensor driver
@brief Deinitializes the timer.
@brief Disable timer interrupt
@brief Enable timer interrupt
@brief Get timer alarm value.
@brief Get timer configure value.
@brief Read the counter value of hardware timer, in unit of a given scale.
@brief Read the counter value of hardware timer.
@brief Clear timer interrupt status, just used in ISR
@brief Enable alarm interrupt, just used in ISR
@brief Get auto reload enable status, just used in ISR
@brief Get the current counter value, just used in ISR
@brief Get interrupt status, just used in ISR
@brief Disable timer group interrupt, by disable mask
@brief Enable timer group interrupt, by enable mask
@brief Set the alarm threshold for the timer, just used in ISR
@brief Enable/disable a counter, just used in ISR
@brief Initializes and configure the timer.
@brief Add ISR handle callback for the corresponding timer.
@brief Remove ISR handle callback for the corresponding timer.
@brief Register Timer interrupt handler, the handler is an ISR.
The handler will be attached to the same CPU core that this function is running on.
@brief Pause the counter of hardware timer.
@brief Enable or disable generation of timer alarm events.
@brief Set timer alarm value.
@brief Enable or disable counter reload function when alarm event occurs.
@brief Set counting mode for hardware timer.
@brief Set counter value to hardware timer.
@brief Set hardware divider of the source clock to the timer group.
By default, the source clock is APB clock running at 80 MHz.
For more information, please check Chapter Reset and Clock in Chip Technical Reference Manual.
@param group_num Timer group number, 0 for TIMERG0 or 1 for TIMERG1
@param timer_num Timer index, 0 for hw_timer[0] & 1 for hw_timer[1]
@param divider Timer clock divider value. The divider’s range is from from 2 to 65536.
@brief Start the counter of hardware timer.
@brief Clear the receive queue
@brief Clear the receive queue of a given TWAI driver handle
@brief Clear the transmit queue
@brief Clear the transmit queue of a given TWAI driver handle
@brief Install TWAI driver
@brief Install TWAI driver and return a handle
@brief Uninstall the TWAI driver
@brief Uninstall the TWAI driver with a given handle
@brief Get current status information of the TWAI driver
@brief Get current status information of a given TWAI driver handle
@brief Start the bus recovery process
@brief Start the bus recovery process with a given handle
@brief Read TWAI driver alerts
@brief Read TWAI driver alerts with a given handle
@brief Receive a TWAI message
@brief Receive a TWAI message via a given handle
@brief Reconfigure which alerts are enabled
@brief Reconfigure which alerts are enabled, with a given handle
@brief Start the TWAI driver
@brief Start the TWAI driver with a given handle
@brief Stop the TWAI driver
@brief Stop the TWAI driver with a given handle
@brief Transmit a TWAI message
@brief Transmit a TWAI message via a given handle
@brief Clear UART interrupt status
@brief Clear UART interrupt enable bits
@brief UART disable pattern detect function.
Designed for applications like ‘AT commands’.
When the hardware detects a series of one same character, the interrupt will be triggered.
@brief Disable UART RX interrupt (RX_FULL & RX_TIMEOUT INTERRUPT)
@brief Disable UART TX interrupt (TX_FULL & TX_TIMEOUT INTERRUPT)
@brief Uninstall UART driver.
@brief Install UART driver and set the UART to the default configuration.
@brief Set UART interrupt enable
@brief UART enable pattern detect function.
Designed for applications like ‘AT commands’.
When the hardware detect a series of one same character, the interrupt will be triggered.
@brief Enable UART RX interrupt (RX_FULL & RX_TIMEOUT INTERRUPT)
@brief Enable UART TX interrupt (TX_FULL & TX_TIMEOUT INTERRUPT)
@brief Alias of uart_flush_input.
UART ring buffer flush. This will discard all data in the UART RX buffer.
@note Instead of waiting the data sent out, this function will clear UART rx buffer.
In order to send all the data in tx FIFO, we can use uart_wait_tx_done function.
@param uart_num UART port number, the max port number is (UART_NUM_MAX -1).
@brief Clear input buffer, discard all the data is in the ring-buffer.
@note In order to send all the data in tx FIFO, we can use uart_wait_tx_done function.
@param uart_num UART port number, the max port number is (UART_NUM_MAX -1).
@brief Get the UART baud rate configuration.
@brief UART get RX ring buffer cached data length
@brief Returns collision detection flag for RS485 mode
Function returns the collision detection flag into variable pointed by collision_flag.
*collision_flag = true, if collision detected else it is equal to false.
This function should be executed when actual transmission is completed (after uart_write_bytes()).
@brief Get the UART hardware flow control configuration.
@brief Get the UART parity mode configuration.
@brief Get the frequency of a clock source for the HP UART port
@brief Get mutex guarding select() notifications
@brief Get the UART stop bit configuration.
@brief UART get TX ring buffer free space size
@brief Get the number of RX pin signal edges for light sleep wakeup.
@brief Get the UART data bit configuration.
@brief Configure UART interrupts.
@brief Checks whether the driver is installed or not
@brief Set UART configuration parameters.
@brief Return the nearest detected pattern position in buffer.
The positions of the detected pattern are saved in a queue,
This function do nothing to the queue.
@note If the RX buffer is full and flow control is not enabled,
the detected pattern may not be found in the rx buffer due to overflow.
@brief Return the nearest detected pattern position in buffer.
The positions of the detected pattern are saved in a queue,
this function will dequeue the first pattern position and move the pointer to next pattern position.
@note If the RX buffer is full and flow control is not enabled,
the detected pattern may not be found in the rx buffer due to overflow.
@brief Allocate a new memory with the given length to save record the detected pattern position in rx buffer.
@brief UART read bytes from UART buffer
@brief Configure behavior of UART RX timeout interrupt.
@brief Set UART baud rate.
@brief Manually set the UART DTR pin level.
@brief Set hardware flow control.
@brief Set UART line inverse mode
@brief Configure TX signal loop back to RX module, just for the test usage.
@brief UART set communication mode
@brief Set UART parity mode.
@brief Assign signals of a UART peripheral to GPIO pins
@brief Manually set the UART RTS pin level.
@note UART must be configured with hardware flow control disabled.
@brief Set uart threshold value for RX fifo full
@note If application is using higher baudrate and it is observed that bytes
in hardware RX fifo are overwritten then this threshold can be reduced
@brief UART set threshold timeout for TOUT feature
@brief Set notification callback function for select() events
@param uart_num UART port number
@param uart_select_notif_callback callback function
@brief Set UART stop bits.
@brief Set software flow control.
@brief Set uart threshold values for TX fifo empty
@brief Set UART idle interval after tx FIFO is empty
@brief Set the number of RX pin signal edges for light sleep wakeup
@brief Set UART data bits.
@brief Send data to the UART port from a given buffer and length.
@brief Wait until UART TX FIFO is empty.
@brief Wait until UART tx memory empty and the last char send ok (polling mode).
@brief Send data to the UART port from a given buffer and length,
@brief Send data to the UART port from a given buffer and length,
Waits for a direct to task notification on a particular index in the calling
task’s notification array in a manner similar to taking a counting semaphore.
See https://www.FreeRTOS.org/RTOS-task-notifications.html for details.
configGENERATE_RUN_TIME_STATS, configUSE_STATS_FORMATTING_FUNCTIONS and
INCLUDE_xTaskGetIdleTaskHandle must all be defined as 1 for these functions
to be available. The application must also then provide definitions for
portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE()
to configure a peripheral timer/counter and return the timers current count
value respectively. The counter should be at least 10 times the frequency of
the tick count.
@brief Install USB-SERIAL-JTAG driver and set the USB-SERIAL-JTAG to the default configuration.
@brief Uninstall USB-SERIAL-JTAG driver.
@brief Check if the USB Serial/JTAG port is connected to the host
@brief USB_SERIAL_JTAG read bytes from USB_SERIAL_JTAG buffer
@brief Send data to the USB-UART port from a given buffer and length,
Return the number of messages stored in a queue.
A version of uxQueueMessagesWaiting() that can be called from an ISR. Return the number of messages stored in a queue.
Return the number of free spaces available in a queue. This is equal to the
number of items that can be sent to the queue before the queue becomes full
if no items are removed.
@return The number of tasks that the real time kernel is currently managing.
This includes all ready, blocked and suspended tasks. A task that
has been deleted but not yet freed by the idle task will also be
included in the count.
@brief Fill an array of TaskSnapshot_t structures for every task in the system
INCLUDE_uxTaskGetStackHighWaterMark must be set to 1 in FreeRTOSConfig.h for
this function to be available.
INCLUDE_uxTaskGetStackHighWaterMark2 must be set to 1 in FreeRTOSConfig.h for
this function to be available.
configUSE_TRACE_FACILITY must be defined as 1 in FreeRTOSConfig.h for
uxTaskGetSystemState() to be available.
INCLUDE_uxTaskPriorityGet must be defined as 1 for this function to be available.
See the configuration section for more information.
A version of uxTaskPriorityGet() that can be used from an ISR.
Queries a timer to determine if it is an auto-reload timer, in which case the timer
automatically resets itself each time it expires, or a one-shot timer, in
which case the timer will only expire once unless it is manually restarted.
This function is used to provide a statically allocated block of memory to FreeRTOS to hold the Idle Task TCB. This function is required when
configSUPPORT_STATIC_ALLOCATION is set. For more information see this URI: https://www.FreeRTOS.org/a00110.html#configSUPPORT_STATIC_ALLOCATION
This function is used to provide a statically allocated block of memory to FreeRTOS to hold the Timer Task TCB. This function is required when
configSUPPORT_STATIC_ALLOCATION is set. For more information see this URI: https://www.FreeRTOS.org/a00110.html#configSUPPORT_STATIC_ALLOCATION
@brief Hook function called on entry to tickless idle
The application stack overflow hook is called when a stack overflow is detected for a task.
Delete an event group that was previously created by a call to
xEventGroupCreate(). Tasks that are blocked on the event group will be
unblocked and obtain 0 as the event group’s value.
@brief Deletes an event group previously created using
xEventGroupCreateWithCaps()
@cond !DOC_EXCLUDE_HEADER_SECTION
@brief Clear current interrupt mask and set given mask
@brief Re-enable interrupts in a nested manner (meant to be called from ISRs)
@brief Enter a critical section
@brief Exit a critical section
@brief Set interrupt mask and return current interrupt enable register
@brief Set a watchpoint to watch the last 32 bytes of the stack
@brief TCB cleanup hook
@brief Perform a context switch from a task
@brief Perform a context switch from an ISR
@brief Yields the other core
Delete a queue - freeing all the memory allocated for storing of items
placed on the queue.
@brief Deletes a queue previously created using xQueueCreateWithCaps()
@cond !DOC_EXCLUDE_HEADER_SECTION
@brief Delete a ring buffer
@brief Deletes a ring buffer previously created using xRingbufferCreateWithCaps()
@brief Get information about ring buffer status
@brief Return a previously-retrieved item to the ring buffer
@brief Return a previously-retrieved item to the ring buffer from an ISR
@brief Deletes a semaphore previously created using one of the
xSemaphoreCreate…WithCaps() functions
Deletes a stream buffer that was previously created using a call to
xStreamBufferCreate() or xStreamBufferCreateStatic(). If the stream
buffer was created using dynamic memory (that is, by xStreamBufferCreate()),
then the allocated memory is freed.
Memory regions are assigned to a restricted task when the task is created by
a call to xTaskCreateRestricted(). These regions can be redefined using
vTaskAllocateMPURegions().
Delay a task for a given number of ticks. The actual time that the
task remains blocked depends on the tick rate. The constant
portTICK_PERIOD_MS can be used to calculate real time from the tick
rate - with the resolution of one tick period.
INCLUDE_vTaskDelete must be defined as 1 for this function to be available.
See the configuration section for more information.
@brief Deletes a task previously created using xTaskCreateWithCaps() or
xTaskCreatePinnedToCoreWithCaps()
NOTE: At the time of writing only the x86 real mode port, which runs on a PC
in place of DOS, implements this function.
A version of xTaskNotifyGiveIndexed() that can be called from an interrupt
service routine (ISR).
configUSE_TRACE_FACILITY must be defined as 1 for this function to be
available. See the configuration section for more information.
configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS
must both be defined as 1 for this function to be available. The application
must also then provide definitions for
portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE()
to configure a peripheral timer/counter and return the timers current count
value respectively. The counter should be at least 10 times the frequency of
the tick count.
@brief Fill a TaskSnapshot_t structure for specified task.
configUSE_TRACE_FACILITY and configUSE_STATS_FORMATTING_FUNCTIONS must
both be defined as 1 for this function to be available. See the
configuration section of the FreeRTOS.org website for more information.
INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available.
See the configuration section for more information.
INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.
See the configuration section for more information.
Each task contains an array of pointers that is dimensioned by the
configNUM_THREAD_LOCAL_STORAGE_POINTERS setting in FreeRTOSConfig.h. The
kernel does not use the pointers itself, so the application writer can use
the pointers for any purpose they wish. The following two functions are
used to set and query a pointer respectively.
Set local storage pointer and deletion callback.
Capture the current time for future use with xTaskCheckForTimeOut().
Starts the real time kernel tick processing. After calling the kernel
has control over which tasks are executed and when.
INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.
See the configuration section for more information.
Suspends the scheduler without disabling interrupts. Context switches will
not occur while the scheduler is suspended.
Updates a timer to be either an auto-reload timer, in which case the timer
automatically resets itself each time it expires, or a one-shot timer, in
which case the timer will only expire once unless it is manually restarted.
Sets the ID assigned to the timer.
@brief Disable Wi-Fi and BT common module
@brief Enable Wi-Fi and BT common module
@brief Callocate memory for WiFi driver
@brief Allocate a chunk of memory for WiFi driver
@brief Disable Wi-Fi module
@brief Enable Wi-Fi module
@brief Handler for receiving and responding to requests from master
@brief Runs Wi-Fi as Station with the supplied configuration
@brief Stop provisioning (if running) and release
resource used by the manager
@brief Disable auto stopping of provisioning service upon completion
@brief Create an additional endpoint and allocate internal resources for it
@brief Register a handler for the previously created endpoint
@brief Unregister the handler for an endpoint
@brief Get reason code in case of Wi-Fi station
disconnection during provisioning
@brief Get state of Wi-Fi Station during provisioning
@brief Initialize provisioning manager instance
@brief Checks if device is provisioned
@brief Reset Wi-Fi provisioning config
@brief Reset internal state machine and clear provisioned credentials.
@brief Reset internal state machine and clear provisioned credentials.
@brief Set application version and capabilities in the JSON data returned by
proto-ver endpoint
@brief Start provisioning service
@brief Stop provisioning service
@brief Wait for provisioning service to finish
@brief Set manufacturer specific data in scan response
@brief Set the 128 bit GATT service UUID used for provisioning
@brief Provide HTTPD Server handle externally.
@brief Reallocate a chunk of memory for WiFi driver
@brief Erase part of the WL storage
@brief Mount WL for defined partition
@brief Read data from the WL storage
@brief Get sector size of the WL instance
@brief Get the actual flash size in use for the WL storage partition
@brief Unmount WL for defined partition
@brief Write data to the WL storage
Clear bits within an event group. This function cannot be called from an
interrupt.
@brief Creates an event group with specific memory capabilities
A version of xEventGroupGetBits() that can be called from an ISR.
Set bits within an event group.
This function cannot be called from an interrupt. xEventGroupSetBitsFromISR()
is a version that can be called from an interrupt.
Atomically set bits within an event group, then wait for a combination of
bits to be set within the same event group. This functionality is typically
used to synchronise multiple tasks, where each task has to wait for the other
tasks to reach a synchronisation point before proceeding.
[Potentially] block to wait for one or more bits to be set within a
previously created event group.
@brief Checks if a given piece of memory can be used to store a FreeRTOS list
@brief Checks if a given piece of memory can be used to store a task’s TCB
@brief Get the tick rate per second
@brief Checks if the current core is in an ISR context
@brief Check if in ISR context from High priority ISRs
@brief Disable interrupts in a nested manner (meant to be called from ISRs)
@brief Checks if a given piece of memory can be used to store a task’s stack
Adds a queue or semaphore to a queue set that was previously created by a
call to xQueueCreateSet().
@cond !DOC_EXCLUDE_HEADER_SECTION
Queue sets provide a mechanism to allow a task to block (pend) on a read
operation from multiple queues or semaphores simultaneously.
@brief Creates a queue with specific memory capabilities
It is preferred that the macros xQueueSend(), xQueueSendToFront() and
xQueueSendToBack() are used in place of calling this function directly.
It is preferred that the macros xQueueSendFromISR(),
xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place
of calling this function directly. xQueueGiveFromISR() is an
equivalent for use by semaphores that don’t actually copy any data.
Queries a queue to determine if the queue is empty. This function should only be used in an ISR.
Queries a queue to determine if the queue is full. This function should only be used in an ISR.
Receive an item from a queue without removing the item from the queue.
The item is received by copy so a buffer of adequate size must be
provided. The number of bytes copied into the buffer was defined when
the queue was created.
A version of xQueuePeek() that can be called from an interrupt service
routine (ISR).
Receive an item from a queue. The item is received by copy so a buffer of
adequate size must be provided. The number of bytes copied into the buffer
was defined when the queue was created.
Receive an item from a queue. It is safe to use this function from within an
interrupt service routine.
Removes a queue or semaphore from a queue set. A queue or semaphore can only
be removed from a set if the queue or semaphore is empty.
xQueueSelectFromSet() selects from the members of a queue set a queue or
semaphore that either contains data (in the case of a queue) or is available
to take (in the case of a semaphore). xQueueSelectFromSet() effectively
allows a task to block (pend) on a read operation on all the queues and
semaphores in a queue set simultaneously.
A version of xQueueSelectFromSet() that can be used from an ISR.
@brief Add the ring buffer to a queue set. Notified when data has been written to the ring buffer
@brief Create a ring buffer
@brief Create a ring buffer of type RINGBUF_TYPE_NOSPLIT for a fixed item_size
@brief Create a ring buffer but manually provide the required memory
@brief Creates a ring buffer with specific memory capabilities
@brief Get current free size available for an item/data in the buffer
@brief Get maximum size of an item that can be placed in the ring buffer
@brief Retrieve the pointers to a statically created ring buffer
@brief Debugging function to print the internal pointers in the ring buffer
@brief Retrieve an item from the ring buffer
@brief Retrieve an item from the ring buffer in an ISR
@brief Retrieve a split item from an allow-split ring buffer
@brief Retrieve a split item from an allow-split ring buffer in an ISR
@brief Retrieve bytes from a byte buffer, specifying the maximum amount of bytes to retrieve
@brief Retrieve bytes from a byte buffer, specifying the maximum amount of
bytes to retrieve. Call this from an ISR.
@brief Remove the ring buffer from a queue set
@brief Insert an item into the ring buffer
@brief Acquire memory from the ring buffer to be written to by an external
source and to be sent later.
@brief Actually send an item into the ring buffer allocated before by
xRingbufferSendAcquire
.
@brief Insert an item into the ring buffer in an ISR
@cond
Queries a stream buffer to see how much data it contains, which is equal to
the number of bytes that can be read from the stream buffer before the stream
buffer would be empty.
@cond !DOC_EXCLUDE_HEADER_SECTION
@cond
Queries a stream buffer to see if it is empty. A stream buffer is empty if
it does not contain any data.
Queries a stream buffer to see if it is full. A stream buffer is full if it
does not have any free space, and therefore cannot accept any more data.
Receives bytes from a stream buffer.
For advanced users only.
An interrupt safe version of the API function that receives bytes from a
stream buffer.
Resets a stream buffer to its initial, empty, state. Any data that was in
the stream buffer is discarded. A stream buffer can only be reset if there
are no tasks blocked waiting to either send to or receive from the stream
buffer.
Sends bytes to a stream buffer. The bytes are copied into the stream buffer.
For advanced users only.
Interrupt safe version of the API function that sends a stream of bytes to
the stream buffer.
A stream buffer’s trigger level is the number of bytes that must be in the
stream buffer before a task that is blocked on the stream buffer to
wait for data is moved out of the blocked state. For example, if a task is
blocked on a read of an empty stream buffer that has a trigger level of 1
then the task will be unblocked when a single byte is written to the buffer
or the task’s block time expires. As another example, if a task is blocked
on a read of an empty stream buffer that has a trigger level of 10 then the
task will not be unblocked until the stream buffer contains at least 10 bytes
or the task’s block time expires. If a reading task’s block time expires
before the trigger level is reached then the task will still receive however
many bytes are actually available. Setting a trigger level of 0 will result
in a trigger level of 1 being used. It is not valid to specify a trigger
level that is greater than the buffer size.
Queries a stream buffer to see how much free space it contains, which is
equal to the amount of data that can be sent to the stream buffer before it
is full.
INCLUDE_xTaskAbortDelay must be defined as 1 in FreeRTOSConfig.h for this
function to be available.
Calls the hook function associated with xTask. Passing xTask as NULL has
the effect of calling the Running tasks (the calling task) hook function.
This function corrects the tick count value after the application code has held
interrupts disabled for an extended period resulting in tick interrupts having
been missed.
Determines if pxTicksToWait ticks has passed since a time was captured
using a call to vTaskSetTimeOutState(). The captured time includes the tick
count and the number of times the tick count has overflowed.
@brief Create a new task that is pinned to a particular core
@brief Creates a pinned task where its stack has specific memory capabilities
@brief Create a new static task that is pinned to a particular core
INCLUDE_xTaskDelayUntil must be defined as 1 for this function to be available.
See the configuration section for more information.
See https://www.FreeRTOS.org/RTOS-task-notifications.html for details.
See https://www.FreeRTOS.org/RTOS-task-notifications.html for details.
See https://www.FreeRTOS.org/RTOS-task-notifications.html for details.
Waits for a direct to task notification to be pending at a given index within
an array of direct to task notifications.
@brief Get the current core ID of a particular task
@brief Get the handle of the task currently running on a certain core
NOTE: This function takes a relatively long time to complete and should be
used sparingly.
xTaskGetIdleTaskHandle() is only available if
INCLUDE_xTaskGetIdleTaskHandle is set to 1 in FreeRTOSConfig.h.
@brief Get the handle of idle task for the given core.
@brief Get the next task using the task iterator.
@return The count of ticks since vTaskStartScheduler was called.
@return The count of ticks since vTaskStartScheduler was called.
@cond !DOC_EXCLUDE_HEADER_SECTION
Resumes scheduler activity after it was suspended by a call to
vTaskSuspendAll().
INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be
available. See the configuration section for more information.
@cond !DOC_EXCLUDE_HEADER_SECTION
Returns the time in ticks at which the timer will expire. If this is less
than the current tick count then the expiry time has overflowed from the
current time.
Returns the period of a timer.
Queries a timer to determine if it is an auto-reload timer, in which case the timer
automatically resets itself each time it expires, or a one-shot timer, in
which case the timer will only expire once unless it is manually restarted.
Simply returns the handle of the timer service/daemon task. It it not valid
to call xTimerGetTimerDaemonTaskHandle() before the scheduler has been started.
Queries a timer to see if it is active or dormant.
Used to defer the execution of a function to the RTOS daemon task (the timer
service task, hence this function is implemented in timers.c and is prefixed
with ‘Timer’).
Used from application interrupt service routines to defer the execution of a
function to the RTOS daemon task (the timer service task, hence this function
is implemented in timers.c and is prefixed with ‘Timer’).