Merge branch 'feature/esp8684_doc_build' into 'master'

docs: update docs to be able to build with esp8684

Closes IDF-4313

See merge request espressif/esp-idf!15849
This commit is contained in:
Marius Vikhammer 2021-12-20 03:32:28 +00:00
commit c2d00810a6
39 changed files with 719 additions and 50 deletions

View File

@ -56,7 +56,7 @@ variables:
# Docker images
BOT_DOCKER_IMAGE_TAG: ":latest"
ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v4"
ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v5"
ESP_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-env:v4.4-1"
AFL_FUZZER_TEST_IMAGE: "$CI_DOCKER_REGISTRY/afl-fuzzer-test:v4.4-1-1"
CLANG_STATIC_ANALYSIS_IMAGE: "${CI_DOCKER_REGISTRY}/clang-static-analysis:v4.4-1-2"

View File

@ -69,7 +69,7 @@ check_docs_lang_sync:
parallel:
matrix:
- DOCLANG: ["en", "zh_CN"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp8684"]
check_docs_gh_links:
image: $ESP_IDF_DOC_ENV_IMAGE
@ -209,6 +209,7 @@ deploy_docs_production:
DOCS_DEPLOY_SERVER_USER: "$DOCS_PROD_SERVER_USER"
DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH"
DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf"
DEPLOY_STABLE: 1
check_doc_links:
extends:

View File

@ -1,6 +1,6 @@
menu "Wi-Fi"
visible if !IDF_TARGET_ESP32H2 && !IDF_TARGET_ESP8684 # TODO: remove 8684 after supported. IDF-3905
visible if !IDF_TARGET_ESP32H2
config ESP32_WIFI_ENABLED
bool

View File

@ -43,6 +43,10 @@ config SOC_PCNT_SUPPORTED
bool
default y
config SOC_WIFI_SUPPORTED
bool
default y
config SOC_SDIO_SLAVE_SUPPORTED
bool
default y

View File

@ -70,6 +70,7 @@
#define SOC_BT_SUPPORTED 1
#define SOC_CLASSIC_BT_SUPPORTED 1
#define SOC_PCNT_SUPPORTED 1
#define SOC_WIFI_SUPPORTED 1
#define SOC_SDIO_SLAVE_SUPPORTED 1
#define SOC_TWAI_SUPPORTED 1
#define SOC_EMAC_SUPPORTED 1

View File

@ -55,6 +55,10 @@ config SOC_XT_WDT_SUPPORTED
bool
default y
config SOC_WIFI_SUPPORTED
bool
default y
config SOC_SUPPORTS_SECURE_DL_MODE
bool
default y

View File

@ -38,6 +38,7 @@
#define SOC_TEMP_SENSOR_SUPPORTED 1
#define SOC_FLASH_ENCRYPTION_XTS_AES 1
#define SOC_XT_WDT_SUPPORTED 1
#define SOC_WIFI_SUPPORTED 1
#define SOC_SUPPORTS_SECURE_DL_MODE 1
#define SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS 3
#define SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS 1

View File

@ -43,6 +43,10 @@ config SOC_PCNT_SUPPORTED
bool
default y
config SOC_WIFI_SUPPORTED
bool
default y
config SOC_ULP_SUPPORTED
bool
default y

View File

@ -49,6 +49,7 @@
#define SOC_RISCV_COPROC_SUPPORTED 1
#define SOC_USB_OTG_SUPPORTED 1
#define SOC_PCNT_SUPPORTED 1
#define SOC_WIFI_SUPPORTED 1
#define SOC_ULP_SUPPORTED 1
#define SOC_CCOMP_TIMER_SUPPORTED 1
#define SOC_DIG_SIGN_SUPPORTED 1

View File

@ -143,6 +143,10 @@ config SOC_PCNT_SUPPORTED
bool
default y
config SOC_WIFI_SUPPORTED
bool
default y
config SOC_TWAI_SUPPORTED
bool
default y

View File

@ -27,6 +27,7 @@
/*-------------------------- COMMON CAPS ---------------------------------------*/
#define SOC_ADC_SUPPORTED 1
#define SOC_PCNT_SUPPORTED 1
#define SOC_WIFI_SUPPORTED 1
#define SOC_TWAI_SUPPORTED 1
#define SOC_GDMA_SUPPORTED 1
#define SOC_LCDCAM_SUPPORTED 1

View File

@ -17,15 +17,11 @@ config SOC_GDMA_SUPPORTED
config SOC_BT_SUPPORTED
bool
default y
default n
config SOC_DIG_SIGN_SUPPORTED
config SOC_WIFI_SUPPORTED
bool
default y
config SOC_HMAC_SUPPORTED
bool
default y
default n
config SOC_ASYNC_MEMCPY_SUPPORTED
bool
@ -59,6 +55,10 @@ config SOC_ICACHE_ACCESS_RODATA_SUPPORTED
bool
default y
config SOC_FLASH_ENCRYPTION_XTS_AES
bool
default y
config SOC_AES_SUPPORT_DMA
bool
default y

View File

@ -13,9 +13,8 @@
#define SOC_CPU_CORES_NUM 1
#define SOC_ADC_SUPPORTED 1
#define SOC_GDMA_SUPPORTED 1
#define SOC_BT_SUPPORTED 1
#define SOC_DIG_SIGN_SUPPORTED 1
#define SOC_HMAC_SUPPORTED 1
#define SOC_BT_SUPPORTED 0 // Enable during bringup, IDF-4357
#define SOC_WIFI_SUPPORTED 0 // Enable during bringup, IDF-3905
#define SOC_ASYNC_MEMCPY_SUPPORTED 1
/*-------------------------- COMMON CAPS ---------------------------------------*/
@ -26,6 +25,7 @@
#define SOC_RTC_SLOW_MEM_SUPPORTED 0
#define SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY 0
#define SOC_ICACHE_ACCESS_RODATA_SUPPORTED 1
#define SOC_FLASH_ENCRYPTION_XTS_AES 1
/*-------------------------- AES CAPS -----------------------------------------*/
#define SOC_AES_SUPPORT_DMA (1)

View File

@ -12,6 +12,7 @@
from __future__ import print_function, unicode_literals
import os.path
import re
from esp_docs.conf_docs import * # noqa: F403,F401
@ -44,6 +45,10 @@ CLASSIC_BT_DOCS = ['api-reference/bluetooth/classic_bt.rst',
'api-reference/bluetooth/esp_spp.rst',
'api-reference/bluetooth/esp_gap_bt.rst']
WIFI_DOCS = ['api-guides/wifi.rst',
'api-guides/wifi-security.rst',
'api-guides/wireshark-user-guide.rst']
SDMMC_DOCS = ['api-reference/peripherals/sdmmc_host.rst',
'api-reference/peripherals/sd_pullup_requirements.rst']
@ -56,6 +61,8 @@ DEDIC_GPIO_DOCS = ['api-reference/peripherals/dedic_gpio.rst']
PCNT_DOCS = ['api-reference/peripherals/pcnt.rst']
RMT_DOCS = ['api-reference/peripherals/rmt.rst']
DAC_DOCS = ['api-reference/peripherals/dac.rst']
TEMP_SENSOR_DOCS = ['api-reference/peripherals/temp_sensor.rst']
@ -90,7 +97,8 @@ ESP32_DOCS = ['api-guides/ulp_instruction_set.rst',
'security/secure-boot-v1.rst',
'api-reference/peripherals/secure_element.rst',
'api-reference/peripherals/dac.rst',
'hw-reference/esp32/**'] + FTDI_JTAG_DOCS
'hw-reference/esp32/**',
'api-guides/RF_calibration.rst'] + FTDI_JTAG_DOCS
ESP32S2_DOCS = ['hw-reference/esp32s2/**',
'api-guides/ulps2_instruction_set.rst',
@ -99,17 +107,21 @@ ESP32S2_DOCS = ['hw-reference/esp32s2/**',
'api-reference/peripherals/spi_slave_hd.rst',
'api-reference/peripherals/temp_sensor.rst',
'api-reference/system/async_memcpy.rst',
'api-reference/peripherals/touch_element.rst'] + FTDI_JTAG_DOCS
'api-reference/peripherals/touch_element.rst',
'api-guides/RF_calibration.rst'] + FTDI_JTAG_DOCS
ESP32S3_DOCS = ['hw-reference/esp32s3/**',
'api-reference/system/ipc.rst',
'api-guides/flash_psram_config.rst']
'api-guides/flash_psram_config.rst',
'api-guides/RF_calibration.rst']
# No JTAG docs for this one as it gets gated on SOC_USB_SERIAL_JTAG_SUPPORTED down below.
ESP32C3_DOCS = ['hw-reference/esp32c3/**']
ESP32C3_DOCS = ['hw-reference/esp32c3/**',
'api-guides/RF_calibration.rst']
# format: {tag needed to include: documents to included}, tags are parsed from sdkconfig and peripheral_caps.h headers
conditional_include_dict = {'SOC_BT_SUPPORTED':BT_DOCS,
'SOC_WIFI_SUPPORTED':WIFI_DOCS,
'SOC_CLASSIC_BT_SUPPORTED':CLASSIC_BT_DOCS,
'SOC_SDMMC_HOST_SUPPORTED':SDMMC_DOCS,
'SOC_SDIO_SLAVE_SUPPORTED':SDIO_SLAVE_DOCS,
@ -119,6 +131,7 @@ conditional_include_dict = {'SOC_BT_SUPPORTED':BT_DOCS,
'SOC_DEDICATED_GPIO_SUPPORTED':DEDIC_GPIO_DOCS,
'SOC_SPIRAM_SUPPORTED':SPIRAM_DOCS,
'SOC_PCNT_SUPPORTED':PCNT_DOCS,
'SOC_RMT_SUPPORTED':RMT_DOCS,
'SOC_DAC_SUPPORTED':DAC_DOCS,
'SOC_TOUCH_SENSOR_NUM':TOUCH_SENSOR_DOCS,
'SOC_ULP_SUPPORTED':ULP_DOCS,
@ -173,3 +186,20 @@ with open('../page_redirects.txt') as f:
if len(line.split(' ')) != 2:
raise RuntimeError('Invalid line in page_redirects.txt: %s' % line)
html_redirect_pages = [tuple(line.split(' ')) for line in lines]
# Callback function for user setup that needs be done after `config-init`-event
# config.idf_target is not available at the initial config stage
def conf_setup(app, config):
config.add_warnings_content = 'This document is not updated for {} yet, so some of the content may not be correct.'.format(config.idf_target.upper())
add_warnings_file = '{}/../docs_not_updated/{}.txt'.format(app.confdir, config.idf_target)
try:
with open(add_warnings_file) as warning_file:
config.add_warnings_pages = warning_file.read().splitlines()
except FileNotFoundError:
# Not for all target
pass
user_setup_callback = conf_setup

View File

@ -0,0 +1,234 @@
languages
contribute/contributor-agreement
contribute/documenting-code
contribute/creating-examples
contribute/style-guide
contribute/copyright-guide
contribute/install-pre-commit-hook
contribute/index
api-guides/core_dump_internals
api-guides/event-handling
api-guides/performance/speed
api-guides/performance/size
api-guides/performance/ram-usage
api-guides/performance/index
api-guides/jtag-debugging/debugging-examples
api-guides/jtag-debugging/configure-ft2232h-jtag
api-guides/jtag-debugging/tips-and-quirks
api-guides/jtag-debugging/using-debugger
api-guides/jtag-debugging/building-openocd-macos
api-guides/jtag-debugging/building-openocd-linux
api-guides/jtag-debugging/configure-other-jtag
api-guides/jtag-debugging/building-openocd-windows
api-guides/jtag-debugging/index
api-guides/jtag-debugging/configure-builtin-jtag
api-guides/partition-tables
api-guides/ulps2_instruction_set
api-guides/app_trace
api-guides/ulp_macros
api-guides/thread-local-storage
api-guides/ulp
api-guides/error-handling
api-guides/tools/idf-tools
api-guides/tools/idf-component-manager
api-guides/tools/idf-windows-installer
api-guides/tools/idf-monitor
api-guides/tools/idf-docker-image
api-guides/tools/index
api-guides/startup
api-guides/hlinterrupts
api-guides/RF_calibration
api-guides/unit-tests
api-guides/deep-sleep-stub
api-guides/ulp_instruction_set
api-guides/blufi
api-guides/lwip
api-guides/flash_psram_config
api-guides/usb-serial-jtag-console
api-guides/linker-script-generation
api-guides/wifi
api-guides/usb-otg-console
api-guides/wireshark-user-guide
api-guides/bootloader
api-guides/esp-wifi-mesh
api-guides/ulp-legacy
api-guides/build-system
api-guides/freertos-smp
api-guides/core_dump
api-guides/inc/external-ram-esp32-notes
api-guides/dfu
api-guides/linux-host-testing
api-guides/esp-ble-mesh/ble-mesh-index
api-guides/esp-ble-mesh/ble-mesh-feature-list
api-guides/esp-ble-mesh/ble-mesh-terminology
api-guides/esp-ble-mesh/ble-mesh-architecture
api-guides/esp-ble-mesh/ble-mesh-faq
api-guides/external-ram
api-guides/ulp-risc-v
api-guides/hardware-abstraction
api-guides/wifi-security
api-guides/index
api-guides/openthread
api-guides/unit-tests-legacy
api-guides/fatal-errors
api-guides/memory-types
api-guides/build-system-legacy
api-guides/general-notes
third-party-tools/platformio
COPYRIGHT
libraries-and-frameworks/libs-frameworks
libraries-and-frameworks/index
libraries-and-frameworks/cloud-frameworks
versions
gnu-make-legacy
api-reference/api-conventions
api-reference/template
api-reference/provisioning/protocomm
api-reference/provisioning/provisioning
api-reference/provisioning/index
api-reference/provisioning/wifi_provisioning
api-reference/storage/vfs
api-reference/storage/spiffs
api-reference/storage/wear-levelling
api-reference/storage/fatfs
api-reference/storage/nvs_partition_gen
api-reference/storage/spi_flash_concurrency
api-reference/storage/spi_flash
api-reference/storage/spi_flash_override_driver
api-reference/storage/nvs_flash
api-reference/storage/sdmmc
api-reference/storage/mass_mfg
api-reference/storage/index
api-reference/peripherals/adc
api-reference/peripherals/usb_host
api-reference/peripherals/sigmadelta
api-reference/peripherals/timer
api-reference/peripherals/twai
api-reference/peripherals/hmac
api-reference/peripherals/usb_device
api-reference/peripherals/gpio
api-reference/peripherals/sdspi_host
api-reference/peripherals/dac
api-reference/peripherals/spi_slave
api-reference/peripherals/i2s
api-reference/peripherals/pcnt
api-reference/peripherals/touch_element
api-reference/peripherals/lcd
api-reference/peripherals/mcpwm
api-reference/peripherals/secure_element
api-reference/peripherals/ledc
api-reference/peripherals/temp_sensor
api-reference/peripherals/spi_features
api-reference/peripherals/sdio_slave
api-reference/peripherals/touch_pad
api-reference/peripherals/spi_slave_hd
api-reference/peripherals/ds
api-reference/peripherals/i2c
api-reference/peripherals/dedic_gpio
api-reference/peripherals/sd_pullup_requirements
api-reference/peripherals/spi_master
api-reference/peripherals/index
api-reference/peripherals/sdmmc_host
api-reference/peripherals/uart
api-reference/peripherals/rmt
api-reference/kconfig
api-reference/network/esp_openthread
api-reference/network/esp_eth
api-reference/network/esp_netif_driver
api-reference/network/tcpip_adapter_migration
api-reference/network/esp_dpp
api-reference/network/esp_now
api-reference/network/esp-wifi-mesh
api-reference/network/esp_smartconfig
api-reference/network/esp_wifi
api-reference/network/index
api-reference/network/esp_netif
api-reference/system/sleep_modes
api-reference/system/ota
api-reference/system/app_trace
api-reference/system/perfmon
api-reference/system/esp_function_with_shared_stack
api-reference/system/efuse
api-reference/system/async_memcpy
api-reference/system/random
api-reference/system/esp_timer
api-reference/system/esp_event
api-reference/system/freertos
api-reference/system/system_time
api-reference/system/log
api-reference/system/internal-unstable
api-reference/system/app_image_format
api-reference/system/freertos_additions
api-reference/system/himem
api-reference/system/power_management
api-reference/system/mem_alloc
api-reference/system/esp_event_legacy
api-reference/system/wdts
api-reference/system/inc/power_management_esp32s2_and_later
api-reference/system/heap_debug
api-reference/system/ipc
api-reference/system/esp_https_ota
api-reference/system/esp_err
api-reference/system/console
api-reference/system/intr_alloc
api-reference/system/index
api-reference/system/system
api-reference/system/pthread
api-reference/bluetooth/esp_spp
api-reference/bluetooth/esp_avrc
api-reference/bluetooth/controller_vhci
api-reference/bluetooth/esp_bt_defs
api-reference/bluetooth/esp_hf_ag
api-reference/bluetooth/esp_bt_main
api-reference/bluetooth/esp_bt_device
api-reference/bluetooth/esp_gatts
api-reference/bluetooth/esp_gattc
api-reference/bluetooth/bt_common
api-reference/bluetooth/nimble/index
api-reference/bluetooth/esp_hf_client
api-reference/bluetooth/esp_a2dp
api-reference/bluetooth/esp_blufi
api-reference/bluetooth/bt_le
api-reference/bluetooth/esp_hf_defs
api-reference/bluetooth/esp_gap_bt
api-reference/bluetooth/esp_gatt_defs
api-reference/bluetooth/esp-ble-mesh
api-reference/bluetooth/index
api-reference/bluetooth/esp_gap_ble
api-reference/bluetooth/classic_bt
api-reference/error-codes
api-reference/index
api-reference/protocols/icmp_echo
api-reference/protocols/esp_serial_slave_link
api-reference/protocols/mqtt
api-reference/protocols/esp_http_server
api-reference/protocols/esp_sdio_slave_protocol
api-reference/protocols/esp_local_ctrl
api-reference/protocols/esp_crt_bundle
api-reference/protocols/esp_websocket_client
api-reference/protocols/esp_http_client
api-reference/protocols/esp_https_server
api-reference/protocols/openssl_apis
api-reference/protocols/esp_spi_slave_protocol
api-reference/protocols/modbus
api-reference/protocols/esp_tls
api-reference/protocols/mdns
api-reference/protocols/index
api-reference/protocols/asio
security/flash-encryption
security/secure-boot-v2
about
resources
get-started/establish-serial-connection
get-started/macos-setup-scratch
get-started/vscode-setup
get-started/linux-setup-scratch
get-started/eclipse-setup
get-started/windows-setup
get-started/toolchain-setup-scratch
get-started/windows-setup-scratch
get-started/linux-setup
get-started/index
get-started/windows-setup-update
get-started/macos-setup
index

View File

@ -0,0 +1,2 @@
INPUT += \
$(PROJECT_PATH)/components/driver/esp32c3/include/driver/temp_sensor.h

View File

@ -211,3 +211,11 @@ Generic command syntax: ``espcoredump.py [options] command [args]``
--print-mem, -m Print memory dump. Only valid when info_corefile.
**<prog>** Path to program ELF file.
Related Documents
^^^^^^^^^^^^^^^^^
.. toctree::
:maxdepth: 1
core_dump_internals

View File

@ -1,5 +1,3 @@
:orphan:
Anatomy of core dump image
--------------------------

View File

@ -31,7 +31,7 @@ API Guides
OpenThread <openthread>
Partition Tables <partition-tables>
Performance <performance/index>
RF Calibration <RF_calibration>
:not esp8684: RF Calibration <RF_calibration>
:esp32: Secure Boot <../security/secure-boot-v1>
Secure Boot V2 <../security/secure-boot-v2>
Thread Local Storage <thread-local-storage>
@ -42,5 +42,5 @@ API Guides
Unit Testing (Linux Host) <linux-host-testing>
:SOC_USB_OTG_SUPPORTED: USB OTG Console <usb-otg-console>
:SOC_USB_SERIAL_JTAG_SUPPORTED: USB Serial/JTAG Controller Console <usb-serial-jtag-console>
Wi-Fi Driver <wifi>
Wi-Fi Security <wifi-security>
:SOC_WIFI_SUPPORTED: Wi-Fi Driver <wifi>
:SOC_WIFI_SUPPORTED: Wi-Fi Security <wifi-security>

View File

@ -0,0 +1,142 @@
.. This file gets included from other .rst files in this folder.
.. It contains target-specific snippets.
.. Comments and '---' lines act as delimiters.
..
.. This is necessary mainly because RST doesn't support substitutions
.. (defined in RST, not in Python) inside code blocks. If that is ever implemented,
.. These code blocks can be moved back to the main .rst files, with target-specific
.. file names being replaced by substitutions.
.. run-openocd
::
openocd -f board/esp8684-BOARD_NAME.cfg
.. |run-openocd-device-name| replace:: ESP8684
---
.. run-openocd-output
::
CHIP SPECIFIC LOG OUTPUT
.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp8684-BOARD_NAME.cfg``
---
.. run-openocd-upload
::
openocd -f board/esp8684-BOARD_NAME.cfg -c "program_esp filename.bin 0x10000 verify exit"
---
.. run-openocd-src-linux
.. code-block:: bash
src/openocd -f board/esp8684-BOARD_NAME.cfg
---
.. run-openocd-src-win
.. code-block:: batch
src\openocd -f board/esp8684-BOARD_NAME.cfg
---
.. idf-py-openocd-default-cfg
.. |idf-py-def-cfg| replace:: ``-f board/esp8684-BOARD_NAME.cfg``
---
.. run-openocd-appimage-offset
::
openocd -f board/esp8684-BOARD_NAME.cfg -c "init; halt; esp appimage_offset 0x210000"
---
.. openocd-cfg-files
.. list-table:: OpenOCD configuration files for ESP8684
:widths: 25 75
:header-rows: 1
* - Name
- Description
* - Content
- Content
---
.. openocd-target-specific-config-vars
---
---
.. jtag-pins
.. list-table:: ESP8684 pins and JTAG signals
:widths: 25 75
:header-rows: 1
* - ESP8684 Pin
- JTAG Signal
* - MTDO / GPIOX
- TDO
* - MTDI / GPIOX
- TDI
* - MTCK / GPIOX
- TCK
* - MTMS / GPIOX
- TMS
.. |jtag-sel-gpio| replace:: GPIOX
.. |jtag-gpio-list| replace:: GPIOX
---
.. run-openocd-d3
::
openocd -l openocd_log.txt -d3 -f board/esp8684-BOARD_NAME.cfg
---
.. run-openocd-d3-tee
::
openocd -d3 -f board/esp8684-BOARD_NAME.cfg 2>&1 | tee openocd.log
---
.. run-gdb-remotelog
::
riscv32-esp-elf-gdb -ex "set remotelogfile gdb_log.txt" <all other options>
---
.. devkit-defs
.. |devkit-name| replace:: ESP8684
.. |devkit-name-with-link| replace:: LINK TO DEVKIT
---
.. devkit-hw-config
---

View File

@ -395,7 +395,7 @@ Calling ``send()`` or ``sendto()`` repeatedly on a UDP socket may eventually fai
Increasing the number of TX buffers in the :ref:`Wi-Fi <CONFIG_ESP32_WIFI_TX_BUFFER>` or :ref:`Ethernet <CONFIG_ETH_DMA_TX_BUFFER_NUM>` project configuration (as applicable) may also help.
.. only:: not esp32
.. only:: not esp32 and SOC_WIFI_SUPPORTED
Increasing the number of TX buffers in the :ref:`Wi-Fi <CONFIG_ESP32_WIFI_TX_BUFFER>` project configuration may also help.
@ -421,7 +421,9 @@ The :example_file:`wifi/iperf/sdkconfig.defaults` file for the iperf example con
- If there is enough free IRAM, select :ref:`CONFIG_LWIP_IRAM_OPTIMIZATION` to improve TX/RX throughput
If using a Wi-Fi network interface, please also refer to :ref:`wifi-buffer-usage`.
.. only:: SOC_WIFI_SUPPORTED
If using a Wi-Fi network interface, please also refer to :ref:`wifi-buffer-usage`.
Minimum latency
^^^^^^^^^^^^^^^
@ -441,7 +443,10 @@ Most lwIP RAM usage is on-demand, as RAM is allocated from the heap as needed. T
- Reducing :ref:`CONFIG_LWIP_TCPIP_RECVMBOX_SIZE`, :ref:`CONFIG_LWIP_TCP_RECVMBOX_SIZE` and :ref:`CONFIG_LWIP_UDP_RECVMBOX_SIZE` reduce memory usage at the expense of throughput, depending on usage.
- Disable :ref:`CONFIG_LWIP_IPV6` can save about 39 KB for firmware size and 2KB RAM when system power up and 7KB RAM when TCPIP stack running. If there is no requirement for supporting IPV6 then it can be disabled to save flash and RAM footprint.
If using Wi-Fi, please also refer to :ref:`wifi-buffer-usage`.
.. only:: SOC_WIFI_SUPPORTED
If using Wi-Fi, please also refer to :ref:`wifi-buffer-usage`.
Peak Buffer Usage
+++++++++++++++++

View File

@ -125,7 +125,7 @@ The same region of RTC fast memory can be accessed as both instruction and data
In single core mode, remaining RTC fast memory is added to the heap unless the option :ref:`CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP` is disabled. This memory can be used interchangeably with :ref:`DRAM`, but is slightly slower to access and not DMA capable.
.. only:: not esp32
.. only:: not esp32 and not esp8684
Remaining RTC fast memory is added to the heap unless the option :ref:`CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP` is disabled. This memory can be used interchangeably with :ref:`DRAM`, but is slightly slower to access.

View File

@ -88,6 +88,7 @@ The ESP-IDF bootloader ignores any partition types other than ``app`` (0x00) and
SubType
~~~~~~~
{IDF_TARGET_ESP_PHY_REF:default = ":ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`", esp8684 = "(not updated yet)"}
The 8-bit subtype field is specific to a given partition type. ESP-IDF currently only specifies the meaning of the subtype field for ``app`` and ``data`` partition types.
@ -109,7 +110,7 @@ See enum :cpp:type:`esp_partition_subtype_t` for the full list of subtypes defin
- ``phy`` (1) is for storing PHY initialisation data. This allows PHY to be configured per-device, instead of in firmware.
- In the default configuration, the phy partition is not used and PHY initialisation data is compiled into the app itself. As such, this partition can be removed from the partition table to save space.
- To load PHY data from this partition, open the project configuration menu (``idf.py menuconfig``) and enable :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION` option. You will also need to flash your devices with phy init data as the esp-idf build system does not do this automatically.
- To load PHY data from this partition, open the project configuration menu (``idf.py menuconfig``) and enable {IDF_TARGET_ESP_PHY_REF} option. You will also need to flash your devices with phy init data as the esp-idf build system does not do this automatically.
- ``nvs`` (2) is for the :doc:`Non-Volatile Storage (NVS) API <../api-reference/storage/nvs_flash>`.
- NVS is used to store per-device PHY calibration data (different to initialisation data).

View File

@ -100,7 +100,7 @@ There are some ESP-IDF configuration options that can reduce heap usage at runti
.. list::
- lwIP documentation has a section to configure :ref:`lwip-ram-usage`.
- :ref:`wifi-buffer-usage` describes options to either reduce numbers of "static" buffers or reduce the maximum number of "dynamic" buffers in use, in order to minimize memory usage at possible cost of performance. Note that "static" Wi-Fi buffers are still allocated from heap when Wi-Fi is initialized and will be freed if Wi-Fi is deinitialized.
:SOC_WIFI_SUPPORTED: - :ref:`wifi-buffer-usage` describes options to either reduce numbers of "static" buffers or reduce the maximum number of "dynamic" buffers in use, in order to minimize memory usage at possible cost of performance. Note that "static" Wi-Fi buffers are still allocated from heap when Wi-Fi is initialized and will be freed if Wi-Fi is deinitialized.
:esp32: - The Ethernet driver allocates DMA buffers for the internal Ethernet MAC when it is initialized - configuration options are :ref:`CONFIG_ETH_DMA_BUFFER_SIZE`, :ref:`CONFIG_ETH_DMA_RX_BUFFER_NUM`, :ref:`CONFIG_ETH_DMA_TX_BUFFER_NUM`.
- mbedTLS TLS session memory usage can be minimized by enabling the ESP-IDF feature :ref:`CONFIG_MBEDTLS_DYNAMIC_BUFFER`.
:esp32: - In single core mode only, it's possible to use IRAM as byte accessible memory (added to the regular heap) by enabling :ref:`CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY`. Note that this option carries a performance penalty and the risk of security issues caused by executable data. If this option is enabled then it's possible to set other options to prefer certain buffers be allocated from this memory: :ref:`mbedTLS <CONFIG_MBEDTLS_MEM_ALLOC_MODE>`, :ref:`NimBLE <CONFIG_BT_NIMBLE_MEM_ALLOC_MODE>`.
@ -130,7 +130,7 @@ The following options will reduce IRAM usage of some ESP-IDF features:
- Enable :ref:`CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH`. Provided these functions are not (incorrectly) used from ISRs, this option is safe to enable in all configurations.
- Enable :ref:`CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH`. Enabling this option will place snapshot-related functions, such as ``vTaskGetSnapshot`` or ``uxTaskGetSnapshotAll``, in flash.
- Disable Wi-Fi options :ref:`CONFIG_ESP32_WIFI_IRAM_OPT` and/or :ref:`CONFIG_ESP32_WIFI_RX_IRAM_OPT`. Disabling these options will free available IRAM at the cost of Wi-Fi performance.
:SOC_WIFI_SUPPORTED: - Disable Wi-Fi options :ref:`CONFIG_ESP32_WIFI_IRAM_OPT` and/or :ref:`CONFIG_ESP32_WIFI_RX_IRAM_OPT`. Disabling these options will free available IRAM at the cost of Wi-Fi performance.
:esp32c3 or esp32s3: - :ref:`CONFIG_SPI_FLASH_ROM_IMPL` enabling this option will free some IRAM but will mean that esp_flash bugfixes and new flash chip support is not available.
:esp32: - :ref:`CONFIG_SPI_FLASH_ROM_DRIVER_PATCH` disabling this option will free some IRAM but is only available in some flash configurations (see the configuration item help text).
- Disabling :ref:`CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR` prevents posting ``esp_event`` events from :ref:`iram-safe-interrupt-handlers` but will save some IRAM.

View File

@ -163,8 +163,8 @@ Common priorities are:
- FreeRTOS Timer Task to handle FreeRTOS timer callbacks is created when the scheduler initializes and has minimum task priority (1, :ref:`configurable <CONFIG_FREERTOS_TIMER_TASK_PRIORITY>`).
- :doc:`/api-guides/event-handling` system task to manage the default system event loop and execute callbacks has high priority (20, ``ESP_TASK_EVENT_PRIO``). This configuration is only used if the application calls :cpp:func:`esp_event_loop_create_default`, it's possible to call :cpp:func:`esp_event_loop_create` with a custom task configuration instead.
- :doc:`/api-guides/lwip` TCP/IP task has high priority (18, ``ESP_TASK_TCPIP_PRIO``).
- :doc:`Wi-Fi Driver </api-guides/wifi>` task has high priority (23).
- Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2).
:SOC_WIFI_SUPPORTED: - :doc:`Wi-Fi Driver </api-guides/wifi>` task has high priority (23).
:SOC_WIFI_SUPPORTED: - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2).
:SOC_BT_SUPPORTED: - :doc:`Bluetooth Controller </api-reference/bluetooth/index>` task has high priority (23, ``ESP_TASK_BT_CONTROLLER_PRIO``). The Bluetooth Controller needs to respond to requests with low latency, so it should always be close to the highest priority task in the system.
:SOC_BT_SUPPORTED: - :doc:`NimBLE Bluetooth Host </api-reference/bluetooth/nimble/index>` host task has high priority (21).
- The Ethernet driver creates a task for the MAC to receive Ethernet frames. If using the default config ``ETH_MAC_DEFAULT_CONFIG`` then the priority is medium-high (15). This setting can be changed by passing a custom :cpp:class:`eth_mac_config_t` struct when initializing the Ethernet MAC.
@ -180,8 +180,8 @@ Common priorities are:
- FreeRTOS Timer Task to handle FreeRTOS timer callbacks is created when the scheduler initializes and has minimum task priority (1, :ref:`configurable <CONFIG_FREERTOS_TIMER_TASK_PRIORITY>`). This task is pinned to Core 0.
- :doc:`/api-guides/event-handling` system task to manage the default system event loop and execute callbacks has high priority (20, ``ESP_TASK_EVENT_PRIO``) and pinned to Core 0. This configuration is only used if the application calls :cpp:func:`esp_event_loop_create_default`, it's possible to call :cpp:func:`esp_event_loop_create` with a custom task configuration instead.
- :doc:`/api-guides/lwip` TCP/IP task has high priority (18, ``ESP_TASK_TCPIP_PRIO``) and is not pinned to any core (:ref:`configurable<CONFIG_LWIP_TCPIP_TASK_AFFINITY>`).
- :doc:`Wi-Fi Driver </api-guides/wifi>` task has high priority (23) and is pinned to Core 0 by default (:ref:`configurable<CONFIG_ESP32_WIFI_TASK_CORE_ID>`).
- Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2) and are not pinned to any core.
:SOC_WIFI_SUPPORTED: - :doc:`Wi-Fi Driver </api-guides/wifi>` task has high priority (23) and is pinned to Core 0 by default (:ref:`configurable<CONFIG_ESP32_WIFI_TASK_CORE_ID>`).
:SOC_WIFI_SUPPORTED: - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2) and are not pinned to any core.
:SOC_BT_SUPPORTED: - :doc:`Bluetooth Controller </api-reference/bluetooth/index>` task has high priority (23, ``ESP_TASK_BT_CONTROLLER_PRIO``) and is pinned to Core 0 by default (:ref:`configurable <{IDF_TARGET_CONTROLLER_CORE_CONFIG}>`). The Bluetooth Controller needs to respond to requests with low latency, so it should always be close to the highest priority task assigned to a single CPU.
:SOC_BT_SUPPORTED: - :doc:`NimBLE Bluetooth Host </api-reference/bluetooth/nimble/index>` host task has high priority (21) and is pinned to Core 0 by default (:ref:`configurable <CONFIG_BT_NIMBLE_PINNED_TO_CORE_CHOICE>`).
:esp32: - :doc:`Bluedroid Bluetooth Host </api-reference/bluetooth/index>` creates multiple tasks when used:
@ -234,6 +234,8 @@ To obtain the best performance for a particular interrupt handler:
Improving Network Speed
-----------------------
* For Wi-Fi, see :ref:`How-to-improve-Wi-Fi-performance` and :ref:`wifi-buffer-usage`
* For lwIP TCP/IP (Wi-Fi and Ethernet), see :ref:`lwip-performance`
* The :example:`wifi/iperf` example contains a configuration that is heavily optimized for Wi-Fi TCP/IP throughput. Append the contents of the files :example_file:`wifi/iperf/sdkconfig.defaults`, :example_file:`wifi/iperf/sdkconfig.defaults.{IDF_TARGET_PATH_NAME}` and :example_file:`wifi/iperf/sdkconfig.ci.99` to your project ``sdkconfig`` file in order to add all of these options. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use this information to determine exactly which options are best suited for your app.
.. list::
:SOC_WIFI_SUPPORTED: * For Wi-Fi, see :ref:`How-to-improve-Wi-Fi-performance` and :ref:`wifi-buffer-usage`
* For lwIP TCP/IP (Wi-Fi and Ethernet), see :ref:`lwip-performance`
:SOC_WIFI_SUPPORTED: * The :example:`wifi/iperf` example contains a configuration that is heavily optimized for Wi-Fi TCP/IP throughput. Append the contents of the files :example_file:`wifi/iperf/sdkconfig.defaults`, :example_file:`wifi/iperf/sdkconfig.defaults.{IDF_TARGET_PATH_NAME}` and :example_file:`wifi/iperf/sdkconfig.ci.99` to your project ``sdkconfig`` file in order to add all of these options. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use this information to determine exactly which options are best suited for your app.

View File

@ -19,7 +19,7 @@ Peripherals API
ledc
:SOC_MCPWM_SUPPORTED: mcpwm
:SOC_PCNT_SUPPORTED: pcnt
rmt
:SOC_RMT_SUPPORTED: rmt
:esp32 or esp32s3: sd_pullup_requirements
:SOC_SDMMC_HOST_SUPPORTED: sdmmc_host
sdspi_host

View File

@ -0,0 +1,10 @@
.. code-block:: none
TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223
To get a dump for all eFuse registers.
.. code-block:: none
TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223

View File

@ -6,7 +6,7 @@
.. toctree::
:maxdepth: 3
Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}>
:not esp8684: Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}>
:esp32: ESP32 Datasheet (PDF) <https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf>
:esp32s2: ESP32-S2 Datasheet (PDF) <https://espressif.com/sites/default/files/documentation/esp32-s2_datasheet_en.pdf>
:esp32c3: ESP32-C3 Datasheet (PDF) <https://espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf>

View File

@ -0,0 +1,18 @@
.. first_boot_enc
.. code-block:: none
Update with ESP8684 specific info IDF-4208
------
.. already_en_enc
.. code-block:: none
Update with ESP8684 specific info IDF-4208
------

View File

@ -1 +1 @@
esp-docs==0.1.1
esp-docs==0.2.0

View File

@ -31,7 +31,7 @@ API 指南
Memory Types <memory-types>
分区表 <partition-tables>
Performance <performance/index>
射频校准 <RF_calibration>
:not esp8684: 射频校准 <RF_calibration>
:esp32: 安全启动 <../security/secure-boot-v1>
安全启动 V2 <../security/secure-boot-v2>
线程本地存储 <thread-local-storage>
@ -42,5 +42,5 @@ API 指南
单元测试 (Linux Host) <linux-host-testing>
:SOC_USB_OTG_SUPPORTED: USB 控制台 <usb-otg-console>
:SOC_USB_SERIAL_JTAG_SUPPORTED: USB Serial/JTAG Controller Console <usb-serial-jtag-console>
Wi-Fi 驱动 <wifi>
Wi-Fi Security <wifi-security>
:SOC_WIFI_SUPPORTED: Wi-Fi 驱动 <wifi>
:SOC_WIFI_SUPPORTED: Wi-Fi Security <wifi-security>

View File

@ -0,0 +1,142 @@
.. This file gets included from other .rst files in this folder.
.. It contains target-specific snippets.
.. Comments and '---' lines act as delimiters.
..
.. This is necessary mainly because RST doesn't support substitutions
.. (defined in RST, not in Python) inside code blocks. If that is ever implemented,
.. These code blocks can be moved back to the main .rst files, with target-specific
.. file names being replaced by substitutions.
.. run-openocd
::
openocd -f board/esp8684-BOARD_NAME.cfg
.. |run-openocd-device-name| replace:: ESP8684
---
.. run-openocd-output
::
CHIP SPECIFIC LOG OUTPUT
.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp8684-BOARD_NAME.cfg``
---
.. run-openocd-upload
::
openocd -f board/esp8684-BOARD_NAME.cfg -c "program_esp filename.bin 0x10000 verify exit"
---
.. run-openocd-src-linux
.. code-block:: bash
src/openocd -f board/esp8684-BOARD_NAME.cfg
---
.. run-openocd-src-win
.. code-block:: batch
src\openocd -f board/esp8684-BOARD_NAME.cfg
---
.. idf-py-openocd-default-cfg
.. |idf-py-def-cfg| replace:: ``-f board/esp8684-BOARD_NAME.cfg``
---
.. run-openocd-appimage-offset
::
openocd -f board/esp8684-BOARD_NAME.cfg -c "init; halt; esp appimage_offset 0x210000"
---
.. openocd-cfg-files
.. list-table:: OpenOCD configuration files for ESP8684
:widths: 25 75
:header-rows: 1
* - Name
- Description
* - Content
- Content
---
.. openocd-target-specific-config-vars
---
---
.. jtag-pins
.. list-table:: ESP8684 pins and JTAG signals
:widths: 25 75
:header-rows: 1
* - ESP8684 Pin
- JTAG Signal
* - MTDO / GPIOX
- TDO
* - MTDI / GPIOX
- TDI
* - MTCK / GPIOX
- TCK
* - MTMS / GPIOX
- TMS
.. |jtag-sel-gpio| replace:: GPIOX
.. |jtag-gpio-list| replace:: GPIOX
---
.. run-openocd-d3
::
openocd -l openocd_log.txt -d3 -f board/esp8684-BOARD_NAME.cfg
---
.. run-openocd-d3-tee
::
openocd -d3 -f board/esp8684-BOARD_NAME.cfg 2>&1 | tee openocd.log
---
.. run-gdb-remotelog
::
riscv32-esp-elf-gdb -ex "set remotelogfile gdb_log.txt" <all other options>
---
.. devkit-defs
.. |devkit-name| replace:: ESP8684
.. |devkit-name-with-link| replace:: LINK TO DEVKIT
---
.. devkit-hw-config
---

View File

@ -88,6 +88,7 @@ Type 字段可以指定为 app (0x00) 或者 data (0x01),也可以直接使用
SubType 字段
~~~~~~~~~~~~
{IDF_TARGET_ESP_PHY_REF:default = ":ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`", esp8684 = "(not updated yet)"}
SubType 字段长度为 8 bit内容与具体分区 Type 有关。目前esp-idf 仅仅规定了 “app” 和 “data” 两种分区类型的子类型含义。
@ -109,7 +110,7 @@ SubType 字段长度为 8 bit内容与具体分区 Type 有关。目前esp
- ``phy`` (1) 分区用于存放 PHY 初始化数据,从而保证可以为每个设备单独配置 PHY而非必须采用固件中的统一 PHY 初始化数据。
- 默认配置下phy 分区并不启用,而是直接将 phy 初始化数据编译至应用程序中,从而节省分区表空间(直接将此分区删掉)。
- 如果需要从此分区加载 phy 初始化数据,请打开项目配置菜单(``idf.py menuconfig``),并且使能 :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION` 选项。此时,您还需要手动将 phy 初始化数据烧至设备 flashesp-idf 编译系统并不会自动完成该操作)。
- 如果需要从此分区加载 phy 初始化数据,请打开项目配置菜单(``idf.py menuconfig``),并且使能 {IDF_TARGET_ESP_PHY_REF} 选项。此时,您还需要手动将 phy 初始化数据烧至设备 flashesp-idf 编译系统并不会自动完成该操作)。
- ``nvs`` (2) 是专门给 :doc:`非易失性存储 (NVS) API <../api-reference/storage/nvs_flash>` 使用的分区。
- 用于存储每台设备的 PHY 校准数据(注意,并不是 PHY 初始化数据)。

View File

@ -19,7 +19,7 @@
ledc
:SOC_MCPWM_SUPPORTED: mcpwm
:SOC_PCNT_SUPPORTED: pcnt
rmt
:SOC_RMT_SUPPORTED: rmt
:esp32 or esp32s3: sd_pullup_requirements
:SOC_SDMMC_HOST_SUPPORTED: sdmmc_host
sdspi_host

View File

@ -0,0 +1,10 @@
.. code-block:: none
TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223
To get a dump for all eFuse registers.
.. code-block:: none
TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223

View File

@ -6,7 +6,7 @@
.. toctree::
:maxdepth: 3
{IDF_TARGET_NAME} 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}>
:not esp8684: {IDF_TARGET_NAME} 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}>
:esp32: ESP32 技术规格书 (PDF) <https://espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf>
:esp32s2: ESP32-S2 技术规格书 (PDF) <https://espressif.com/sites/default/files/documentation/esp32-s2_datasheet_cn.pdf>
:esp32c3: ESP32-C3 技术规格书 (PDF) <https://espressif.com/sites/default/files/documentation/esp32-c3_datasheet_cn.pdf>

View File

@ -0,0 +1,18 @@
.. first_boot_enc
.. code-block:: none
Update with ESP8684 specific info IDF-4208
------
.. already_en_enc
.. code-block:: none
Update with ESP8684 specific info IDF-4208
------

View File

@ -0,0 +1,5 @@
# Not calibrating RTC_SLOW_CLK saves a small amount of time during boot.
#
# Setting option to zero is only recommended if not using sleep modes, or
# if you don't need accurate sleep times.
CONFIG_ESP8684_RTC_CLK_CAL_CYCLES=0

View File

@ -0,0 +1,22 @@
#
# ESP8684
#
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=20
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=40
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=32
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_RX_BA_WIN=32
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=40960
CONFIG_LWIP_TCP_WND_DEFAULT=40960
CONFIG_LWIP_TCP_RECVMBOX_SIZE=64
CONFIG_LWIP_UDP_RECVMBOX_SIZE=64
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64
CONFIG_ESP8684_DEFAULT_CPU_FREQ_160=y
CONFIG_ESP8684_DEFAULT_CPU_FREQ_MHZ=160
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y