Angus Gratton 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
..
adc_hal.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
adc_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
brownout_hal.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h %!s(int64=5) %!d(string=hai) anos
cpu_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
cpu_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
dac_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
dac_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
dma_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
esp_flash_err.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
gdma_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
gpio_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
gpio_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
hal_defs.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
i2c_hal.h 6eee601cf6 i2c: Add supports on esp32s3 %!s(int64=5) %!d(string=hai) anos
i2c_types.h 6eee601cf6 i2c: Add supports on esp32s3 %!s(int64=5) %!d(string=hai) anos
i2s_hal.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h %!s(int64=5) %!d(string=hai) anos
i2s_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
interrupt_controller_hal.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
interrupt_controller_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
ledc_hal.h b2f390df01 hal: update link to HAL readme.md %!s(int64=5) %!d(string=hai) anos
ledc_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
mcpwm_hal.h b2f390df01 hal: update link to HAL readme.md %!s(int64=5) %!d(string=hai) anos
mcpwm_types.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
mpu_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
mpu_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
pcnt_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
pcnt_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
readme.md 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
rmt_hal.h ff976867b3 rmt: split TX and RX in LL driver %!s(int64=5) %!d(string=hai) anos
rmt_types.h ff976867b3 rmt: split TX and RX in LL driver %!s(int64=5) %!d(string=hai) anos
rtc_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
rtc_io_hal.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
rtc_io_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
sdio_slave_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
sdio_slave_ll.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
sdio_slave_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
sha_hal.h 488f46acf5 SHA/RSA: moved all caps to soc_caps.h %!s(int64=5) %!d(string=hai) anos
sha_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
sigmadelta_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
sigmadelta_types.h 17808b3ff8 sigma_delta: add periph signal list and support esp32-s3 %!s(int64=5) %!d(string=hai) anos
soc_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
spi_flash_hal.h 3bacf35310 esp_flash: support high capacity flash chips (32-bit address) %!s(int64=5) %!d(string=hai) anos
spi_flash_types.h 3bacf35310 esp_flash: support high capacity flash chips (32-bit address) %!s(int64=5) %!d(string=hai) anos
spi_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
spi_slave_hal.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h %!s(int64=5) %!d(string=hai) anos
spi_slave_hd_hal.h 1e1beb69aa spi: fix build fail issue when target is esp32s3 %!s(int64=5) %!d(string=hai) anos
spi_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
systimer_hal.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
systimer_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
timer_hal.h 1966f00f0b soc: updates caps usage %!s(int64=5) %!d(string=hai) anos
timer_types.h e4c8ec6174 timergroup: move interrupt index into peripheral description file %!s(int64=5) %!d(string=hai) anos
touch_sensor_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) %!s(int64=5) %!d(string=hai) anos
touch_sensor_types.h 7c08be5771 hal: Add initial ESP32-C3 support %!s(int64=5) %!d(string=hai) anos
twai_hal.h b2f390df01 hal: update link to HAL readme.md %!s(int64=5) %!d(string=hai) anos
twai_types.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h %!s(int64=5) %!d(string=hai) anos
uart_hal.h 05a4a8d864 uart: seperate sclk and baudrate setting %!s(int64=5) %!d(string=hai) anos
uart_types.h fb8b905539 uart: add uart support on esp32s3 %!s(int64=5) %!d(string=hai) anos
usb_hal.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos
wdt_hal.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h %!s(int64=5) %!d(string=hai) anos
wdt_types.h 5425ef4ee4 hal: extract hal component from soc component %!s(int64=5) %!d(string=hai) anos

readme.md

HAL Layer Readme

The HAL layer is designed to be used by the drivers. We don't guarantee the stability and back-compatibility among versions. The HAL layer may update very frequently with the driver. Please don't use them in the applications or treat them as stable APIs.

The HAL layer consists of two layers: HAL (upper) and Lowlevel(bottom). The HAL layer defines the steps and data required by the peripheral. The lowlevel is a translation layer converting general conceptions to register configurations.

Lowlevel

This layer should be all static inline. The first argument of LL functions is usually a pointer to the beginning address of the peripheral register. Each chip should have its own LL layer. The functions in this layer should be atomic and independent from each other so that the upper layer can change/perform one of the options/operation without touching the others.

HAL

This layer should depend on the operating system as little as possible. It's a wrapping of LL functions, so that the upper layer can combine basic steps into different working ways (polling, non-polling, interrupt, etc.). Without using queues/locks/delay/loop/etc., this layer can be easily port to other os or simulation systems.

To get better performance and better porting ability, contexts are used to hold sustainable data and pass the parameters.

To develop your own driver, it is suggested to copy the HAL layer to your own code and keep them until manual update.