Bare metal GPIO driver for ESP32 | Toggling an LED

Ғылым және технология

In this video, I write my own GPIO driver for the ESP32 microcontroller, instead of using the provided ESP-IDF headers. All memory addresses are pulled directly from the Technical Reference Manual.
[Technical Reference Manual]
www.espressif.com/sites/defau...
[Source Code]
github.com/JoshMarangoni/bare...

Пікірлер: 15

  • @turboimport95
    @turboimport955 ай бұрын

    Man this was dope, explanation was great. Most people just blow right over stuff like this like its nothing.

  • @zaca211
    @zaca211Ай бұрын

    Holy crap that was simple. I just switched over the Espressif framework from Arduino and I've been messing around with their GPIO driver for a couple of hours now. Considering all I needed to do was toggle the internal LED, this saves so much hassle.

  • @alexclarosfernandez8467
    @alexclarosfernandez84675 ай бұрын

    Your videos are great!!! Thanx a lot for your time and effort!!!

  • @tjwatts100
    @tjwatts1006 ай бұрын

    Very useful: thanks. Great for ULP programming where there's no other option.

  • @aslambasha539
    @aslambasha5396 ай бұрын

    Can anyone give insight on how to read GPIO pin such as button and control LED foe ESP32.

  • @jakewasowski1353
    @jakewasowski1353Ай бұрын

    Thanks bro

  • @matsvandamme1
    @matsvandamme18 ай бұрын

    Nice video. Please note that GPIO_OUT_W1TS_REG and GPIO_OUT_W1TC_REG are exposed in soc/gpio_reg.h so a simple #include is sufficient, no need to define these registers inside your code. Please also note that GPIO pin numbers are exposed in hal/gpio_types.h. Same comment, no need to define GPIO5 macro again.

  • @jeanfernandeseng
    @jeanfernandeseng4 күн бұрын

    When this code is executed on ESP32, Is there some FreeRTOS tasks at under kernel ? I am trying to check a gpio from external source and send to serial, and the FreeRTOS under IDF sometimes run task like IPC and move the context of execution. I watched the video and I dont understand why you move to linux. Does it possible under windows create a Real Bare Bone code ? Thanks in Advance.

  • @skanderbelhaj2278
    @skanderbelhaj22784 ай бұрын

    man writing code like its native language

  • @easyelectronics4364

    @easyelectronics4364

    3 ай бұрын

    😂😂😂

  • @fadieid5638
    @fadieid56388 ай бұрын

    Great stuff, arw you willing to continue the series? I am looking for a bate metal approach to the ESP32 instead of the typical arduino core use. What topics are you looking to cover?

  • @Mankindux

    @Mankindux

    5 ай бұрын

    this is not bare metal as the dev uses esp-idf which incorporates bootloader, start linker script and so on. a bare metal approach would be to write a main, assembly file and use clang directly.

  • @PatrioticGestalt
    @PatrioticGestalt11 ай бұрын

    I tried reading the same document to see how you came about your awesome simplicity. What made you decide to avoid setting the GPIO_FUNCx_OUT_SEL register?

  • @EV_engineer

    @EV_engineer

    10 ай бұрын

    For simply toggling an LED, GPIO_OUT_W1TS_REG and GPIO_OUT_W1TC_REG are generally easier to set up and offer greater flexibility. But if you have a specific hardware event that you want to use to trigger the LED, and you want to minimize CPU overhead, then GPIO_FUNCx_OUT_SEL might be more appropriate.

  • @grenadier4702
    @grenadier4702Ай бұрын

    The next step is write your own linker script

Келесі