esp-idf/components/soc
Angus Gratton ff8d05466e Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem' into 'master'
deep sleep: Calculate RTC CRC without using any stack or other RTC heap memory

Closes IDF-2242

See merge request espressif/esp-idf!10741
2020-10-13 06:17:50 +08:00
..
include SHA: add HAL layer and refactor driver 2020-10-09 08:24:08 +00:00
soc Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem' into 'master' 2020-10-13 06:17:50 +08:00
src Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem' into 'master' 2020-10-13 06:17:50 +08:00
test soc: move mpu_hal test to hal component 2020-09-23 02:53:03 +00:00
CMakeLists.txt soc: remove unecessary compile line include dir orderding control 2020-09-23 02:53:03 +00:00
component.mk hal: extract hal component from soc component 2020-09-01 13:25:32 +08:00
linker.lf hal: extract hal component from soc component 2020-09-01 13:25:32 +08:00
README.md docs: update readme aftering extracting hal document from soc document 2020-09-23 11:47:23 +08:00

soc

The soc component provides provides hardware description and hardware support functionality for targets supported by ESP-IDF. This is reflected in the component's subdirectories:

  • soc/include - abstraction
  • soc/soc - description
  • soc/src - implementation

soc/include

soc/include contains header files which provide a hardware-agnostic interface to the SoC. The interface consists of function declarations and abstracted types that other, higher level components can make use of in order to have code portable to all targets ESP-IDF supports.

The soc subdirectory contains other useful interface for SoC-level operations or concepts, such as the memory layout, spinlocks, etc.

soc/soc

The soc/soc subdirectory contains description of the underlying hardware:

- `xxx_reg.h`   - defines registers related to the hardware
- `xxx_struct.h` - hardware description in C `struct`
- `xxx_channel.h` - definitions for hardware with multiple channels
- `xxx_caps.h`  - features/capabilities of the hardware
- `xxx_pins.h`  - pin definitions
- `xxx_periph.h/*.c`  - includes all headers related to a peripheral; declaration and definition of IO mapping for that hardware

Since the hardware description is target-specific, there are subdirectories for each target containing copies of the files above. Furthermore, the files in this directory should be standalone, i.e. should not include files from outside directories.

soc/src

Provides the interface about the memory, I2C, and Real_Time Clock functions.