1bcd90d45d
system_* APIs cleanup This changeset is mostly about cleaning up `system_*` APIs and moving them from libcore. It has dragged a few more changes along, however. - `system_deep_sleep` deprecated, new name is `esp_deep_sleep` - `system_efuse_read_mac` deprecated, new name is `esp_efuse_read_mac` - `system_read/write_rtc_mem` removed (reason: we use linker to place code/data into RTC memory now) - `system_get_sdk_version` deprecated. Returns "master" for now. Support for compile-time and runtime version detection will be done in a separate MR. - `system_get_time` and variations have been deprecated. `gettimeofday` should be used instead. - `system_restart` deprecated, new name is `esp_restart`. Rewritten code to work correctly from any of the cores. - `system_restore` deprecated, `esp_wifi_restore` should be used instead. - `system_get_rst_info` removed (it wasn't in a header file) - RTC library has been updated to latest version - Logging output from `libfoo.a` goes through `foo_printf` function now, where `foo ` is any of the library names. For libraries other than rtc and phy, this is a temporary measure, until we finish switching to esp_log library and clean up all uses of printf/ets_printf. - ESP-IDF build will fail if any of the libraries have printf/ets_printf reference. - Added `esp_random` function which gets values from HW RNG. I have added code which makes sure the value is not polled too often (allows at least 16 APB cycles). Also added a header file for HW RNG (just one register). - Moved random number generation functions used by wpa library into wpa_supplicant component. See merge request !234 |
||
---|---|---|
.. | ||
01_hello_world | ||
02_blink | ||
03_http_request | ||
04_https_request | ||
05_ble_adv | ||
06_sntp | ||
07_nvs_rw_value | ||
08_nvs_rw_blob | ||
09_openssl_client | ||
10_openssl_server | ||
11_rmt_nec_tx_rx | ||
README.md |
Examples
This directory contains a growing number of simple example projects for esp-idf. These are intended to show basic esp-idf functionality, and to provide you can use for your own projects.
Using Examples
Building examples is the same as building any other project:
-
Follow the setup instructions in the top-level esp-idf README.
-
Set
IDF_PATH
environment variable to point to the path to the esp-idf top-level directory. -
Change into the directory of the example you'd like to build.
-
make menuconfig
to configure the example. Most examples require a simple WiFi SSID & password via this configuration. -
make
to build the example. -
Follow the printed instructions to flash, or run
make flash
.
Copying Examples
Each example is a standalone project. The examples do not have to be inside the esp-idf directory. You can copy an example directory to anywhere on your computer in order to make a copy that you can modify and work with.
The IDF_PATH
environment variable is the only thing that connects the example to the rest of the esp-idf
system.
If you're looking for a more bare-bones project to start from, try esp-idf-template.
Contributing Examples
If you have a new example you think we'd like, please consider sending it to us as a Pull Request.
Please read the esp-idf CONTRIBUTING.rst file which lays out general contribution rules.
In addition, here are some tips for creating good examples:
- A good example is documented and the basic options can be configured.
- A good example does not contain a lot of code. If there is a lot of generic code in the example, consider refactoring that code into a standalone component and then use the component's API in your example.
- Examples must be licensed under the Apache License 2.0 or (preferably for examples) if possible you can declare the example to be Public Domain / Creative Commons Zero.