morris ed36b91517 Merge branch 'feature/mcpwm_trigger_driver' into 'master' 2 лет назад
..
adc_hal.h 73791ff4e0 adc: fix adc continuous driver conv_frame_size not bigger than 4092 issue 2 лет назад
adc_hal_common.h 5b523a3313 esp_adc: new esp_adc component and adc drivers 3 лет назад
adc_oneshot_hal.h 5653018cd1 esp_adc: support selecting clock source for oneshot driver 3 лет назад
adc_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
adc_types_private.h 87848110c1 adc: new feature adc digital monitor supported 2 лет назад
aes_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
aes_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
apm_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
apm_types.h 8d0f6dab0f apm: added support for APM on esp32c6 3 лет назад
assist_debug_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
brownout_hal.h 56a2d0b8a2 BOD: Bringup for ESP32C6 3 лет назад
cache_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
cache_types.h c1cbd7bbf6 cache/mmu: implememnt cache and mmu hal APIs in bootloader 3 лет назад
clk_tree_hal.h 2c9aa4559c clk_tree: Add a general API to get the frequency of different clocks 3 лет назад
dac_types.h 8ef9fd4623 dac: optimize the dma stratege 3 лет назад
dma_types.h 3b7da7eae5 feat(gdma): gdma descriptor alignment 2 лет назад
ds_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
ds_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
ecc_hal.h a485b1cb67 esp32h2: Add support for ECC hardware accelerator 2 лет назад
ecc_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
ecdsa_hal.h d634970ed1 ecdsa: Support multiple ECDSA keys 2 лет назад
ecdsa_types.h d345c684ba esp32h2: Add support for ECDSA peripheral 2 лет назад
efuse_hal.h ffb40a89d9 adc_cali: supported channel compensation of adc calibration on esp32c6 2 лет назад
emac_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
esp_flash_err.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
eth_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
etm_hal.h fb26d0e11f etm: added etm channel allocator 3 лет назад
gdma_hal.h 274e1c0089 fix(gdma): fixed compilation failure of gdma 2 лет назад
gdma_hal_ahb.h 274e1c0089 fix(gdma): fixed compilation failure of gdma 2 лет назад
gdma_hal_axi.h 274e1c0089 fix(gdma): fixed compilation failure of gdma 2 лет назад
gdma_types.h 9eb145aa21 feat(esp_gdma): adapt the gdma driver to ahb-dma and axi-dma 2 лет назад
glitch_filter_types.h ca1b182b25 glitch_filter: support derive clock source form IO MUX 3 лет назад
gpio_hal.h 51777a6862 gpio: Fix io hold functionality on esp32c6 and esp32h2 3 лет назад
gpio_types.h d623ce0d53 refactor(gpio): per-target gpio number definition 2 лет назад
hmac_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
hmac_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
i2c_hal.h 803fc3fbe0 I2C: Add i2c support for ESP32C6 3 лет назад
i2c_types.h 65bfa590da feat(soc): soc updates 2 лет назад
i2s_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
i2s_types.h fa9b022f68 i2s: support 4 line pdm rx on esp32s3 3 лет назад
ieee802154_common_ll.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
lcd_hal.h 454d658309 rgb_lcd: workaround pclk polarity bug by setting mo>=2 3 лет назад
lcd_types.h fc1aa2848b rgb_lcd: support yuv converter 3 лет назад
ledc_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
ledc_types.h ad55230b0a ledc: Add support for esp32h2; Refactor ledc driver clock source selection related code 3 лет назад
lp_timer_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
lp_timer_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
mcpwm_hal.h f7ff7ac4d0 mcpwm: clean up hal driver and add doc 3 лет назад
mcpwm_types.h 5ab755915b feature(MCPWM): Add MCPWM trigger driver and test 2 лет назад
memprot_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
mmu_hal.h bae6680207 mmu: hal function to init, and hal function to unmap all 2 лет назад
mmu_types.h ea05ae6af2 feat(esp32p4): added hal support 2 лет назад
modem_clock_hal.h 21781b1ab1 modem clock: provide a protected wifipwr clock enable/disable interface to fix the bug of selecting xtal as the low power clock source for ble 2 лет назад
modem_clock_types.h 63af1e9631 modem clock(driver): implemented the modem clock driver for esp32c6 3 лет назад
mpi_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
mpi_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
mpu_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
mpu_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
parlio_hal.h f534247a00 driver: add parallel IO TX driver 3 лет назад
parlio_types.h f534247a00 driver: add parallel IO TX driver 3 лет назад
pau_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
pau_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
pcnt_hal.h ec8defaa96 pulse_cnt: new driver for PCNT peripheral 4 лет назад
pcnt_types.h ec8defaa96 pulse_cnt: new driver for PCNT peripheral 4 лет назад
pmu_types.h a329b15e7e Power Management: support pu xtal in light sleep for esp32h2 2 лет назад
readme.md 5425ef4ee4 hal: extract hal component from soc component 5 лет назад
rmt_hal.h 2fb43820c2 driver_ng: implement new rmt driver 3 лет назад
rmt_types.h d82981c437 rmt: use gpio_num_t to define gpio number 2 лет назад
rtc_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
rtc_io_hal.h 4985caa38f refactor(driver/rtcio): Re-wrap RTCIO APIs with more accurate soc_caps 2 лет назад
rtc_io_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
sdio_slave_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
sdio_slave_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
sdm_hal.h 4154eaec93 sdm: clean up soc/hal/ll code 3 лет назад
sdm_types.h 4154eaec93 sdm: clean up soc/hal/ll code 3 лет назад
sha_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
sha_types.h ea05ae6af2 feat(esp32p4): added hal support 2 лет назад
spi_flash_encrypt_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
spi_flash_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
spi_flash_types.h ed96dadd06 spi_flash: 2nd stage for supporting flash suspend. (1). Support more esp chips (2). Improve real-time performance (3). Making timing more stable (4) Add documents 2 лет назад
spi_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
spi_slave_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
spi_slave_hd_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
spi_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
systimer_hal.h 63f852adc8 hal: Adds hal/ll func for SYSTIMER to select clock source: XTAL or RC_FAST_CLK 3 лет назад
systimer_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
temperature_sensor_types.h 4154eaec93 sdm: clean up soc/hal/ll code 3 лет назад
timer_hal.h a1030307f1 gptimer: bringup driver on esp32c6 3 лет назад
timer_types.h 00b6ec28b2 gptimer: support etm event and task 3 лет назад
touch_sensor_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
touch_sensor_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
twai_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
twai_types.h a18d7e24d6 Fix initialization macros for twai_timing_config_t not setting .clk_src and .brp 2 лет назад
uart_hal.h 921713fff4 uart: Support LP_UART port with UART driver on esp32c6 2 лет назад
uart_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
uhci_types.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
usb_dwc_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
usb_dwc_ll.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
usb_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
usb_phy_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
usb_phy_types.h 1fcd639224 usb: Add usb_phy driver to support operations on USB PHY 4 лет назад
usb_types_private.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад
wdt_hal.h 9c37441b17 wdt: refactor wdt codes to use unified type 3 лет назад
wdt_types.h 5e9e8c396f wdt: add support for WDTs on C6 3 лет назад
xt_wdt_hal.h 333553caf2 fix(hal): check the public header files and fix violations 2 лет назад

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.