Omar Chebib 752026a174 Merge branch 'refactor/remove_g0_dep_on_g1_riscv' into 'master' 3 лет назад
..
adc_hal.h 49747bb486 adc: create common adc hal layer 3 лет назад
adc_hal_common.h 49747bb486 adc: create common adc hal layer 3 лет назад
adc_types.h c8617fe965 docs: fix all doxygen warnings 3 лет назад
adc_types_private.h 49747bb486 adc: create common adc hal layer 3 лет назад
aes_hal.h 51169b0e0c AES/SHA: use GDMA driver instead of LL 5 лет назад
aes_types.h 457ce080ae AES: refactor and add HAL layer 5 лет назад
brownout_hal.h 6a2d3509dc spi_flash: Making XMC flash works more stable when brownout detected 3 лет назад
cache_hal.h c1cbd7bbf6 cache/mmu: implememnt cache and mmu hal APIs in bootloader 3 лет назад
cache_types.h c1cbd7bbf6 cache/mmu: implememnt cache and mmu hal APIs in bootloader 3 лет назад
dac_hal.h 9afdf54748 hal: added HAL_ASSERT 4 лет назад
dac_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
dma_types.h 83d16aa00c gdma: support IRAM interrupt 4 лет назад
ds_hal.h f80d6f8c21 Digital Signature support for S3 4 лет назад
ecc_hal.h bc1d35a14e esp32c2/hal: Added ECC HAL layer 3 лет назад
ecc_types.h bc1d35a14e esp32c2/hal: Added ECC HAL layer 3 лет назад
efuse_hal.h 9605f3eb1a soc: Adds efuse hal 3 лет назад
emac_hal.h 4051b80b4d esp_netif: remove dependency of L2 TAP Interface from netif_lwip 3 лет назад
esp_flash_err.h 5425ef4ee4 hal: extract hal component from soc component 5 лет назад
eth_types.h 8da2e4088c esp_eth: Update esp32's EMAC API to decouple driver and vendor config 3 лет назад
gdma_hal.h 83d16aa00c gdma: support IRAM interrupt 4 лет назад
gpio_hal.h c8c137f2b7 esp32h2: support GPIO peripheral, IO_MUX, GPIO matrix. 3 лет назад
gpio_types.h c8c137f2b7 esp32h2: support GPIO peripheral, IO_MUX, GPIO matrix. 3 лет назад
i2c_hal.h 7da023ceae i2c: support esp32c2 3 лет назад
i2c_types.h 8138f8bb02 driver: remove deprecated code 3 лет назад
i2s_hal.h 28b8fc6a7e i2s: update documents for driver-NG 3 лет назад
i2s_types.h 28b8fc6a7e i2s: update documents for driver-NG 3 лет назад
lcd_hal.h 843279d287 rgb_lcd: support fractional clock divisor 3 лет назад
lcd_types.h 60bb5c913d clk_tree: prework of introducing clk subsystem control 3 лет назад
ledc_hal.h 534346f4bb ledc: Provide support for esp32c2 and esp32h2 3 лет назад
ledc_types.h 534346f4bb ledc: Provide support for esp32c2 and esp32h2 3 лет назад
mcpwm_hal.h f7ff7ac4d0 mcpwm: clean up hal driver and add doc 3 лет назад
mcpwm_types.h f7ff7ac4d0 mcpwm: clean up hal driver and add doc 3 лет назад
memprot_types.h dd938eb952 System/Security: Memprot API unified (ESP32C3) 4 лет назад
mmu_hal.h 6589daabb9 MMU: Add configurable mmu page size support on ESP32C2 3 лет назад
mmu_types.h 6589daabb9 MMU: Add configurable mmu page size support on ESP32C2 3 лет назад
mpu_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
mpu_types.h 58c3f6a421 hal: explicitly include soc_caps.h 5 лет назад
pcnt_hal.h ec8defaa96 pulse_cnt: new driver for PCNT peripheral 3 лет назад
pcnt_types.h ec8defaa96 pulse_cnt: new driver for PCNT peripheral 3 лет назад
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 2fb43820c2 driver_ng: implement new rmt driver 3 лет назад
rtc_hal.h dd414b9305 esp_hw_‎support/sleep: ‎fix cannot lightsleep again after a wakeup from ULP 3 лет назад
rtc_io_hal.h 5bcd9b2db8 G0: RISC-V targets have now an independent G0 layer 3 лет назад
rtc_io_types.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
sdio_slave_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
sdio_slave_ll.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
sdio_slave_types.h 869bed1bb5 soc: don't expose unstable soc header files in public api 4 лет назад
sha_hal.h 51169b0e0c AES/SHA: use GDMA driver instead of LL 5 лет назад
sha_types.h cf049e15ed esp8684: rename target to esp32c2 4 лет назад
sigmadelta_hal.h 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 лет назад
sigmadelta_types.h 869bed1bb5 soc: don't expose unstable soc header files in public api 4 лет назад
spi_flash_encrypt_hal.h 0d81edb174 spi_flash: refactoring flash encryption into new api 4 лет назад
spi_flash_hal.h 4418a855ba spi_flash: refactor the spi_flash clock configuration, and add support for esp32c2 3 лет назад
spi_flash_types.h 4418a855ba spi_flash: refactor the spi_flash clock configuration, and add support for esp32c2 3 лет назад
spi_hal.h 6a74cb695d spi: support spi on 8684 4 лет назад
spi_slave_hal.h 9b9ea71ff9 spi: remove HSPI macro on esp32c3 and esp32s3 4 лет назад
spi_slave_hd_hal.h 346dea206e spi_slv_hd: add hal_trans_finish comments for clarifying risk 4 лет назад
spi_types.h 6a74cb695d spi: support spi on 8684 4 лет назад
systimer_hal.h ec898b771e systimer: strip hal driver 4 лет назад
systimer_types.h c45784b8c4 hal: Fix systimer counter value bit field 3 лет назад
temperature_sensor_types.h 60bb5c913d clk_tree: prework of introducing clk subsystem control 3 лет назад
timer_hal.h e2275b1f63 gptimer: clean up hal and ll for driver-ng 4 лет назад
timer_types.h f32a89826c clk_tree: added default clock source for peripheral 3 лет назад
touch_sensor_hal.h a5b09cf015 rtc_clk: Clean up some clock related enum and macro in soc/rtc.h, replace with new ones in 3 лет назад
touch_sensor_types.h 869bed1bb5 soc: don't expose unstable soc header files in public api 4 лет назад
twai_hal.h 09dc46552b twai: Fix twai_ll_parse_frame_buffer() typo 3 лет назад
twai_types.h d604bf05af TWAI: Fix incorrect configuration initializers for low speed bit rates 4 лет назад
uart_hal.h 24a60c12c6 uart: Provide support for esp32c2 and esp32h2 3 лет назад
uart_types.h 8138f8bb02 driver: remove deprecated code 3 лет назад
uhci_types.h c053ef0541 examples: added support of ESP32-S3 chip in controller_hci_uart example 4 лет назад
usb_hal.h 5425ef4ee4 hal: extract hal component from soc component 5 лет назад
usb_phy_hal.h 1fcd639224 usb: Add usb_phy driver to support operations on USB PHY 4 лет назад
usb_phy_types.h 1fcd639224 usb: Add usb_phy driver to support operations on USB PHY 4 лет назад
usb_types_private.h accbaee57c Add USB Host Library 4 лет назад
usbh_hal.h 1aad12468a usb: Hub Driver Update and Refactor 4 лет назад
usbh_ll.h 854127a57c usb: USB Host stack uses USB PHY driver 4 лет назад
wdt_hal.h 647dea9395 soc: combine xxx_caps.h into one soc_caps.h 5 лет назад
wdt_types.h 5425ef4ee4 hal: extract hal component from soc component 5 лет назад
xt_wdt_hal.h 4869b3cd4a WDT: Add support for XTAL32K Watchdog timer 4 лет назад

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.