Marius Vikhammer 949fb8e63a SHA: add HAL layer and refactor driver 5 år sedan
..
adc_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
adc_types.h 658b56a690 doc/adc: modifications in the adc documentation and adc headers 5 år sedan
brownout_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
cpu_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
cpu_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
dac_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
dac_types.h 61f89b97c6 bringup esp32-s3 on FPGA 5 år sedan
dma_types.h a3cc43485f async memcpy: support async memcopy on esp32s2/s3 5 år sedan
esp_flash_err.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
gdma_hal.h a3cc43485f async memcpy: support async memcopy on esp32s2/s3 5 år sedan
gpio_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
gpio_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
hal_defs.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
i2c_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
i2c_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
i2s_hal.h c7264f04c6 Merge branch 'bugfix/fix_incorrect_i2s_pdm_clk_issue' into 'master' 5 år sedan
i2s_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
interrupt_controller_hal.h 2e826b7a8f intr_alloc: split interrupt allocator into common-code and platform-code 5 år sedan
interrupt_controller_types.h 2e826b7a8f intr_alloc: split interrupt allocator into common-code and platform-code 5 år sedan
ledc_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
ledc_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
mcpwm_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
mcpwm_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
mpu_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
mpu_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
pcnt_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
pcnt_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
readme.md 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
rmt_hal.h 75a372a9f0 unit_test: support reference clock, test delay function 5 år sedan
rmt_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
rtc_hal.h 2bcf99527c soc: move out rtc_hal to hal component 5 år sedan
rtc_io_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
rtc_io_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
sdio_slave_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
sdio_slave_ll.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
sdio_slave_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
sha_types.h 949fb8e63a SHA: add HAL layer and refactor driver 5 år sedan
sigmadelta_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
sigmadelta_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
soc_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
spi_flash_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
spi_flash_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
spi_hal.h 27a6f2666a spi_master: refactor hal context structures 5 år sedan
spi_slave_hal.h 59e350b195 spi: seperate the pointer for the TX and RX DMA 5 år sedan
spi_slave_hd_hal.h 1e1beb69aa spi: fix build fail issue when target is esp32s3 5 år sedan
spi_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
systimer_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
systimer_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
timer_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
timer_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
touch_sensor_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
touch_sensor_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
twai_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
twai_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
uart_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
uart_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
usb_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan
wdt_hal.h b2f390df01 hal: update link to HAL readme.md 5 år sedan
wdt_types.h 5425ef4ee4 hal: extract hal component from soc component 5 år sedan

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.