Bare metal GPIO driver for ESP32 | Toggling an LED

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ก.ค. 2023
  • 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

  • @zaca211
    @zaca211 20 วันที่ผ่านมา

    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.

  • @turboimport95
    @turboimport95 4 หลายเดือนก่อน +3

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

  • @alexclarosfernandez8467
    @alexclarosfernandez8467 4 หลายเดือนก่อน

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

  • @tjwatts100
    @tjwatts100 5 หลายเดือนก่อน

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

  • @snailcat69
    @snailcat69 8 หลายเดือนก่อน

    awesome work, appreciate that man

  • @aslambasha539
    @aslambasha539 5 หลายเดือนก่อน +2

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

  • @skanderbelhaj2278
    @skanderbelhaj2278 2 หลายเดือนก่อน +1

    man writing code like its native language

  • @fadieid5638
    @fadieid5638 7 หลายเดือนก่อน +2

    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 4 หลายเดือนก่อน +1

      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.

  • @jakewasowski1353
    @jakewasowski1353 15 วันที่ผ่านมา

    Thanks bro

  • @PatrioticGestalt
    @PatrioticGestalt 10 หลายเดือนก่อน +1

    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  9 หลายเดือนก่อน +2

      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.

  • @matsvandamme1
    @matsvandamme1 7 หลายเดือนก่อน

    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.

  • @grenadier4702
    @grenadier4702 13 วันที่ผ่านมา

    The next step is write your own linker script