Kconfig 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. #
  2. # Please run the following command for opening a page with more information about this configuration file:
  3. # idf.py docs -sp api-reference/kconfig.html
  4. #
  5. mainmenu "Espressif IoT Development Framework Configuration"
  6. orsource "./components/soc/$IDF_TARGET/include/soc/Kconfig.soc_caps.in"
  7. config IDF_CMAKE
  8. bool
  9. default "y"
  10. config IDF_ENV_FPGA
  11. bool
  12. option env="IDF_ENV_FPGA"
  13. help
  14. - This option is for internal use only.
  15. - Enabling this option will help enable all FPGA support so as to
  16. run ESP-IDF on an FPGA. This can help reproduce some issues that
  17. only happens on FPGA condition, or when you have to burn some
  18. efuses multiple times.
  19. config IDF_ENV_BRINGUP
  20. bool
  21. default "y" if IDF_TARGET_ESP32P4
  22. help
  23. - This option is ONLY used when doing new chip bringup.
  24. - This option will only enable necessary hw / sw settings for running
  25. a hello_world application.
  26. config IDF_CI_BUILD
  27. bool
  28. default y if "$(IDF_CI_BUILD)" = "y" || "$(IDF_CI_BUILD)" = 1
  29. config IDF_TOOLCHAIN
  30. # This option records the IDF target when sdkconfig is generated the first time.
  31. # It is not updated if environment variable $IDF_TOOLCHAIN changes later, and
  32. # the build system is responsible for detecting the mismatch between
  33. # CONFIG_IDF_TOOLCHAIN and $IDF_TOOLCHAIN.
  34. string
  35. default "$IDF_TOOLCHAIN"
  36. config IDF_TOOLCHAIN_CLANG
  37. bool
  38. default "y" if IDF_TOOLCHAIN="clang"
  39. config IDF_TARGET_ARCH_RISCV
  40. bool
  41. default "n"
  42. config IDF_TARGET_ARCH_XTENSA
  43. bool
  44. default "n"
  45. config IDF_TARGET_ARCH
  46. string
  47. default "riscv" if IDF_TARGET_ARCH_RISCV
  48. default "xtensa" if IDF_TARGET_ARCH_XTENSA
  49. config IDF_TARGET
  50. # This option records the IDF target when sdkconfig is generated the first time.
  51. # It is not updated if environment variable $IDF_TARGET changes later, and
  52. # the build system is responsible for detecting the mismatch between
  53. # CONFIG_IDF_TARGET and $IDF_TARGET.
  54. string
  55. default "$IDF_TARGET"
  56. config IDF_INIT_VERSION
  57. # This option records the IDF version when sdkconfig is generated the first time.
  58. # It is not updated if environment variable $IDF_VERSION changes later
  59. string
  60. default "$IDF_INIT_VERSION"
  61. config IDF_TARGET_LINUX
  62. bool
  63. default "y" if IDF_TARGET="linux"
  64. config IDF_TARGET_ESP32
  65. bool
  66. default "y" if IDF_TARGET="esp32"
  67. select IDF_TARGET_ARCH_XTENSA
  68. config IDF_TARGET_ESP32S2
  69. bool
  70. default "y" if IDF_TARGET="esp32s2"
  71. select FREERTOS_UNICORE
  72. select IDF_TARGET_ARCH_XTENSA
  73. config IDF_TARGET_ESP32S3
  74. bool
  75. default "y" if IDF_TARGET="esp32s3"
  76. select IDF_TARGET_ARCH_XTENSA
  77. config IDF_TARGET_ESP32C3
  78. bool
  79. default "y" if IDF_TARGET="esp32c3"
  80. select FREERTOS_UNICORE
  81. select IDF_TARGET_ARCH_RISCV
  82. config IDF_TARGET_ESP32C2
  83. bool
  84. default "y" if IDF_TARGET="esp32c2"
  85. select FREERTOS_UNICORE
  86. select IDF_TARGET_ARCH_RISCV
  87. config IDF_TARGET_ESP32C6
  88. bool
  89. default "y" if IDF_TARGET="esp32c6"
  90. select FREERTOS_UNICORE
  91. select IDF_TARGET_ARCH_RISCV
  92. config IDF_TARGET_ESP32P4
  93. bool
  94. default "y" if IDF_TARGET="esp32p4"
  95. select IDF_TARGET_ARCH_RISCV
  96. config IDF_TARGET_ESP32H2
  97. bool
  98. default "y" if IDF_TARGET="esp32h2"
  99. select FREERTOS_UNICORE
  100. select IDF_TARGET_ARCH_RISCV
  101. config IDF_TARGET_LINUX
  102. bool
  103. default "y" if IDF_TARGET="linux"
  104. config IDF_FIRMWARE_CHIP_ID
  105. hex
  106. default 0x0000 if IDF_TARGET_ESP32
  107. default 0x0002 if IDF_TARGET_ESP32S2
  108. default 0x0005 if IDF_TARGET_ESP32C3
  109. default 0x0009 if IDF_TARGET_ESP32S3
  110. default 0x000C if IDF_TARGET_ESP32C2
  111. default 0x000D if IDF_TARGET_ESP32C6
  112. default 0x0010 if IDF_TARGET_ESP32H2
  113. default 0x0012 if IDF_TARGET_ESP32P4
  114. default 0xFFFF
  115. menu "Build type"
  116. choice APP_BUILD_TYPE
  117. prompt "Application build type"
  118. default APP_BUILD_TYPE_APP_2NDBOOT
  119. help
  120. Select the way the application is built.
  121. By default, the application is built as a binary file in a format compatible with
  122. the ESP-IDF bootloader. In addition to this application, 2nd stage bootloader is
  123. also built. Application and bootloader binaries can be written into flash and
  124. loaded/executed from there.
  125. Another option, useful for only very small and limited applications, is to only link
  126. the .elf file of the application, such that it can be loaded directly into RAM over
  127. JTAG or UART. Note that since IRAM and DRAM sizes are very limited, it is not possible
  128. to build any complex application this way. However for some kinds of testing and debugging,
  129. this option may provide faster iterations, since the application does not need to be
  130. written into flash.
  131. Note: when APP_BUILD_TYPE_RAM is selected and loaded with JTAG, ESP-IDF does not contain
  132. all the startup code required to initialize the CPUs and ROM memory (data/bss).
  133. Therefore it is necessary to execute a bit of ROM code prior to executing the application.
  134. A gdbinit file may look as follows (for ESP32):
  135. # Connect to a running instance of OpenOCD
  136. target remote :3333
  137. # Reset and halt the target
  138. mon reset halt
  139. # Run to a specific point in ROM code,
  140. # where most of initialization is complete.
  141. thb *0x40007d54
  142. c
  143. # Load the application into RAM
  144. load
  145. # Run till app_main
  146. tb app_main
  147. c
  148. Execute this gdbinit file as follows:
  149. xtensa-esp32-elf-gdb build/app-name.elf -x gdbinit
  150. Example gdbinit files for other targets can be found in tools/test_apps/system/gdb_loadable_elf/
  151. When loading the BIN with UART, the ROM will jump to ram and run the app after finishing the ROM
  152. startup code, so there's no additional startup initialization required. You can use the
  153. `load_ram` in esptool.py to load the generated .bin file into ram and execute.
  154. Example:
  155. esptool.py --chip {chip} -p {port} -b {baud} --no-stub load_ram {app.bin}
  156. Recommended sdkconfig.defaults for building loadable ELF files is as follows.
  157. CONFIG_APP_BUILD_TYPE_RAM is required, other options help reduce application
  158. memory footprint.
  159. CONFIG_APP_BUILD_TYPE_RAM=y
  160. CONFIG_VFS_SUPPORT_TERMIOS=
  161. CONFIG_NEWLIB_NANO_FORMAT=y
  162. CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
  163. CONFIG_ESP_DEBUG_STUBS_ENABLE=
  164. CONFIG_ESP_ERR_TO_NAME_LOOKUP=
  165. config APP_BUILD_TYPE_APP_2NDBOOT
  166. bool
  167. prompt "Default (binary application + 2nd stage bootloader)"
  168. depends on !IDF_TARGET_LINUX
  169. select APP_BUILD_GENERATE_BINARIES
  170. select APP_BUILD_BOOTLOADER
  171. select APP_BUILD_USE_FLASH_SECTIONS
  172. config APP_BUILD_TYPE_RAM
  173. bool
  174. prompt "Build app runs entirely in RAM (EXPERIMENTAL)"
  175. select APP_BUILD_GENERATE_BINARIES
  176. endchoice # APP_BUILD_TYPE
  177. # Hidden options, set according to the choice above
  178. config APP_BUILD_GENERATE_BINARIES
  179. bool # Whether to generate .bin files or not
  180. config APP_BUILD_BOOTLOADER
  181. bool # Whether to build the bootloader
  182. config APP_BUILD_TYPE_PURE_RAM_APP
  183. bool
  184. prompt "Build app without SPI_FLASH/PSRAM support (saves ram)"
  185. depends on APP_BUILD_TYPE_RAM
  186. help
  187. If this option is enabled, external memory and related peripherals, such as Cache, MMU,
  188. Flash and PSRAM, won't be initialized. Corresponding drivers won't be introduced either.
  189. Components that depend on the spi_flash component will also be unavailable, such as
  190. app_update, etc. When this option is enabled, about 26KB of RAM space can be saved.
  191. config APP_BUILD_USE_FLASH_SECTIONS
  192. bool # Whether to place code/data into memory-mapped flash sections
  193. config APP_REPRODUCIBLE_BUILD
  194. bool "Enable reproducible build"
  195. default n
  196. select COMPILER_HIDE_PATHS_MACROS
  197. help
  198. If enabled, all date, time, and path information would be eliminated. A .gdbinit file would be create
  199. automatically. (or will be append if you have one already)
  200. config APP_NO_BLOBS
  201. bool "No Binary Blobs"
  202. default n
  203. help
  204. If enabled, this disables the linking of binary libraries in the application build. Note
  205. that after enabling this Wi-Fi/Bluetooth will not work.
  206. config APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
  207. bool "App compatible with bootloaders before ESP-IDF v2.1"
  208. select APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
  209. depends on IDF_TARGET_ESP32
  210. default n
  211. help
  212. Bootloaders before ESP-IDF v2.1 did less initialisation of the
  213. system clock. This setting needs to be enabled to build an app
  214. which can be booted by these older bootloaders.
  215. If this setting is enabled, the app can be booted by any bootloader
  216. from IDF v1.0 up to the current version.
  217. If this setting is disabled, the app can only be booted by bootloaders
  218. from IDF v2.1 or newer.
  219. Enabling this setting adds approximately 1KB to the app's IRAM usage.
  220. config APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
  221. bool "App compatible with bootloader and partition table before ESP-IDF v3.1"
  222. depends on IDF_TARGET_ESP32
  223. default n
  224. help
  225. Partition tables before ESP-IDF V3.1 do not contain an MD5 checksum
  226. field, and the bootloader before ESP-IDF v3.1 cannot read a partition
  227. table that contains an MD5 checksum field.
  228. Enable this option only if your app needs to boot on a bootloader and/or
  229. partition table that was generated from a version *before* ESP-IDF v3.1.
  230. If this option and Flash Encryption are enabled at the same time, and any
  231. data partitions in the partition table are marked Encrypted, then the
  232. partition encrypted flag should be manually verified in the app before accessing
  233. the partition (see CVE-2021-27926).
  234. config APP_INIT_CLK
  235. bool
  236. depends on IDF_TARGET_ESP32
  237. default y if APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
  238. default y if APP_BUILD_TYPE_RAM
  239. endmenu # Build type
  240. source "$COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE"
  241. menu "Compiler options"
  242. choice COMPILER_OPTIMIZATION
  243. prompt "Optimization Level"
  244. default COMPILER_OPTIMIZATION_DEBUG
  245. help
  246. This option sets compiler optimization level (gcc -O argument) for the app.
  247. - The "Debug" setting will add the -0g flag to CFLAGS.
  248. - The "Size" setting will add the -0s flag to CFLAGS.
  249. - The "Performance" setting will add the -O2 flag to CFLAGS.
  250. - The "None" setting will add the -O0 flag to CFLAGS.
  251. The "Size" setting cause the compiled code to be smaller and faster, but
  252. may lead to difficulties of correlating code addresses to source file
  253. lines when debugging.
  254. The "Performance" setting causes the compiled code to be larger and faster,
  255. but will be easier to correlated code addresses to source file lines.
  256. "None" with -O0 produces compiled code without optimization.
  257. Note that custom optimization levels may be unsupported.
  258. Compiler optimization for the IDF bootloader is set separately,
  259. see the BOOTLOADER_COMPILER_OPTIMIZATION setting.
  260. config COMPILER_OPTIMIZATION_DEBUG
  261. bool "Debug (-Og)"
  262. config COMPILER_OPTIMIZATION_SIZE
  263. bool "Optimize for size (-Os)"
  264. config COMPILER_OPTIMIZATION_PERF
  265. bool "Optimize for performance (-O2)"
  266. config COMPILER_OPTIMIZATION_NONE
  267. bool "Debug without optimization (-O0)"
  268. endchoice
  269. choice COMPILER_OPTIMIZATION_ASSERTION_LEVEL
  270. prompt "Assertion level"
  271. default COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
  272. help
  273. Assertions can be:
  274. - Enabled. Failure will print verbose assertion details. This is the default.
  275. - Set to "silent" to save code size (failed assertions will abort() but user
  276. needs to use the aborting address to find the line number with the failed assertion.)
  277. - Disabled entirely (not recommended for most configurations.) -DNDEBUG is added
  278. to CPPFLAGS in this case.
  279. config COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
  280. prompt "Enabled"
  281. bool
  282. help
  283. Enable assertions. Assertion content and line number will be printed on failure.
  284. config COMPILER_OPTIMIZATION_ASSERTIONS_SILENT
  285. prompt "Silent (saves code size)"
  286. bool
  287. help
  288. Enable silent assertions. Failed assertions will abort(), user needs to
  289. use the aborting address to find the line number with the failed assertion.
  290. config COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE
  291. prompt "Disabled (sets -DNDEBUG)"
  292. bool
  293. help
  294. If assertions are disabled, -DNDEBUG is added to CPPFLAGS.
  295. endchoice # assertions
  296. choice COMPILER_FLOAT_LIB_FROM
  297. prompt "Compiler float lib source"
  298. default COMPILER_FLOAT_LIB_FROM_RVFPLIB if ESP_ROM_HAS_RVFPLIB
  299. default COMPILER_FLOAT_LIB_FROM_GCCLIB
  300. help
  301. In the soft-fp part of libgcc, riscv version is written in C,
  302. and handles all edge cases in IEEE754, which makes it larger
  303. and performance is slow.
  304. RVfplib is an optimized RISC-V library for FP arithmetic on 32-bit
  305. integer processors, for single and double-precision FP.
  306. RVfplib is "fast", but it has a few exceptions from IEEE 754 compliance.
  307. config COMPILER_FLOAT_LIB_FROM_GCCLIB
  308. bool "libgcc"
  309. config COMPILER_FLOAT_LIB_FROM_RVFPLIB
  310. depends on ESP_ROM_HAS_RVFPLIB
  311. bool "librvfp"
  312. endchoice # COMPILER_FLOAT_LIB_FROM
  313. config COMPILER_OPTIMIZATION_ASSERTION_LEVEL
  314. int
  315. default 0 if COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE
  316. default 1 if COMPILER_OPTIMIZATION_ASSERTIONS_SILENT
  317. default 2 if COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
  318. config COMPILER_OPTIMIZATION_CHECKS_SILENT
  319. bool "Disable messages in ESP_RETURN_ON_* and ESP_EXIT_ON_* macros"
  320. default n
  321. help
  322. If enabled, the error messages will be discarded in following check macros:
  323. - ESP_RETURN_ON_ERROR
  324. - ESP_EXIT_ON_ERROR
  325. - ESP_RETURN_ON_FALSE
  326. - ESP_EXIT_ON_FALSE
  327. menuconfig COMPILER_HIDE_PATHS_MACROS
  328. bool "Replace ESP-IDF and project paths in binaries"
  329. default y
  330. help
  331. When expanding the __FILE__ and __BASE_FILE__ macros, replace paths inside ESP-IDF
  332. with paths relative to the placeholder string "IDF", and convert paths inside the
  333. project directory to relative paths.
  334. This allows building the project with assertions or other code that embeds file paths,
  335. without the binary containing the exact path to the IDF or project directories.
  336. This option passes -fmacro-prefix-map options to the GCC command line. To replace additional
  337. paths in your binaries, modify the project CMakeLists.txt file to pass custom -fmacro-prefix-map or
  338. -ffile-prefix-map arguments.
  339. menuconfig COMPILER_CXX_EXCEPTIONS
  340. bool "Enable C++ exceptions"
  341. default n
  342. help
  343. Enabling this option compiles all IDF C++ files with exception support enabled.
  344. Disabling this option disables C++ exception support in all compiled files, and any libstdc++ code
  345. which throws an exception will abort instead.
  346. Enabling this option currently adds an additional ~500 bytes of heap overhead
  347. when an exception is thrown in user code for the first time.
  348. config COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE
  349. int "Emergency Pool Size"
  350. default 0
  351. depends on COMPILER_CXX_EXCEPTIONS
  352. help
  353. Size (in bytes) of the emergency memory pool for C++ exceptions. This pool will be used to allocate
  354. memory for thrown exceptions when there is not enough memory on the heap.
  355. config COMPILER_CXX_RTTI
  356. bool "Enable C++ run-time type info (RTTI)"
  357. default n
  358. help
  359. Enabling this option compiles all C++ files with RTTI support enabled.
  360. This increases binary size (typically by tens of kB) but allows using
  361. dynamic_cast conversion and typeid operator.
  362. choice COMPILER_STACK_CHECK_MODE
  363. prompt "Stack smashing protection mode"
  364. default COMPILER_STACK_CHECK_MODE_NONE
  365. help
  366. Stack smashing protection mode. Emit extra code to check for buffer overflows, such as stack
  367. smashing attacks. This is done by adding a guard variable to functions with vulnerable objects.
  368. The guards are initialized when a function is entered and then checked when the function exits.
  369. If a guard check fails, program is halted. Protection has the following modes:
  370. - In NORMAL mode (GCC flag: -fstack-protector) only functions that call alloca, and functions with
  371. buffers larger than 8 bytes are protected.
  372. - STRONG mode (GCC flag: -fstack-protector-strong) is like NORMAL, but includes additional functions
  373. to be protected -- those that have local array definitions, or have references to local frame
  374. addresses.
  375. - In OVERALL mode (GCC flag: -fstack-protector-all) all functions are protected.
  376. Modes have the following impact on code performance and coverage:
  377. - performance: NORMAL > STRONG > OVERALL
  378. - coverage: NORMAL < STRONG < OVERALL
  379. The performance impact includes increasing the amount of stack memory required for each task.
  380. config COMPILER_STACK_CHECK_MODE_NONE
  381. bool "None"
  382. config COMPILER_STACK_CHECK_MODE_NORM
  383. bool "Normal"
  384. config COMPILER_STACK_CHECK_MODE_STRONG
  385. bool "Strong"
  386. config COMPILER_STACK_CHECK_MODE_ALL
  387. bool "Overall"
  388. endchoice
  389. config COMPILER_STACK_CHECK
  390. bool
  391. default !COMPILER_STACK_CHECK_MODE_NONE
  392. help
  393. Stack smashing protection.
  394. config COMPILER_WARN_WRITE_STRINGS
  395. bool "Enable -Wwrite-strings warning flag"
  396. default "n"
  397. help
  398. Adds -Wwrite-strings flag for the C/C++ compilers.
  399. For C, this gives string constants the type ``const char[]`` so that
  400. copying the address of one into a non-const ``char *`` pointer
  401. produces a warning. This warning helps to find at compile time code
  402. that tries to write into a string constant.
  403. For C++, this warns about the deprecated conversion from string
  404. literals to ``char *``.
  405. config COMPILER_SAVE_RESTORE_LIBCALLS
  406. bool "Enable -msave-restore flag to reduce code size"
  407. depends on IDF_TARGET_ARCH_RISCV
  408. help
  409. Adds -msave-restore to C/C++ compilation flags.
  410. When this flag is enabled, compiler will call library functions to
  411. save/restore registers in function prologues/epilogues. This results
  412. in lower overall code size, at the expense of slightly reduced performance.
  413. This option can be enabled for RISC-V targets only.
  414. config COMPILER_DISABLE_GCC12_WARNINGS
  415. bool "Disable new warnings introduced in GCC 12"
  416. default "n"
  417. help
  418. Enable this option if use GCC 12 or newer, and want to disable warnings which don't appear with
  419. GCC 11.
  420. config COMPILER_DUMP_RTL_FILES
  421. bool "Dump RTL files during compilation"
  422. help
  423. If enabled, RTL files will be produced during compilation. These files
  424. can be used by other tools, for example to calculate call graphs.
  425. choice COMPILER_RT_LIB
  426. prompt "Compiler runtime library"
  427. default COMPILER_RT_LIB_CLANGRT if IDF_TOOLCHAIN_CLANG
  428. default COMPILER_RT_LIB_HOST if IDF_TARGET_LINUX
  429. default COMPILER_RT_LIB_GCCLIB
  430. help
  431. Select runtime library to be used by compiler.
  432. - GCC toolchain supports libgcc only.
  433. - Clang allows to choose between libgcc or libclang_rt.
  434. - For host builds ("linux" target), uses the default library.
  435. config COMPILER_RT_LIB_GCCLIB
  436. depends on !IDF_TARGET_LINUX
  437. bool "libgcc"
  438. config COMPILER_RT_LIB_CLANGRT
  439. depends on IDF_TOOLCHAIN_CLANG && !IDF_TARGET_LINUX
  440. bool "libclang_rt"
  441. config COMPILER_RT_LIB_HOST
  442. depends on IDF_TARGET_LINUX
  443. bool "Host"
  444. endchoice
  445. config COMPILER_RT_LIB_NAME
  446. string
  447. default "clang_rt.builtins" if COMPILER_RT_LIB_CLANGRT
  448. default "gcc" if COMPILER_RT_LIB_GCCLIB
  449. default "" if COMPILER_RT_LIB_HOST
  450. endmenu # Compiler Options
  451. menu "Component config"
  452. source "$COMPONENT_KCONFIGS_SOURCE_FILE"
  453. endmenu
  454. config IDF_EXPERIMENTAL_FEATURES
  455. bool "Make experimental features visible"
  456. default "n"
  457. help
  458. By enabling this option, ESP-IDF experimental feature options will be visible.
  459. Note you should still enable a certain experimental feature option to use it, and you
  460. should read the corresponding risk warning and known issue list carefully.
  461. Current experimental feature list:
  462. - CONFIG_ESPTOOLPY_FLASHFREQ_120M
  463. - CONFIG_SPIRAM_SPEED_120M
  464. - CONFIG_SPI_FLASH_32BIT_ADDR_ENABLE
  465. - CONFIG_FREERTOS_USE_KERNEL_10_5_1