THE THRILLING CONCLUSION?! | Controlling GPIO in the Raspberry Pi Kernel | GPIO Driver Project

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024

Комментарии • 58

  • @LowLevel-TV
    @LowLevel-TV  3 года назад +31

    LOW LEVEL GANG! Thanks for watching. What's the hardest part about embedded development?

    • @brianbradley1855
      @brianbradley1855 3 года назад +14

      Making sense of the data sheet.

    • @LowLevel-TV
      @LowLevel-TV  3 года назад +5

      Trueeee. Actual hieroglyphics sometimes.

    • @rashidz97100
      @rashidz97100 3 года назад +1

      Finding low level guides/information and channels like yours. Really helps getting started on small projects, thank you so much!

    • @uladzislauzhauniarovich432
      @uladzislauzhauniarovich432 3 года назад

      start writing code :D

    • @erdum
      @erdum 3 года назад

      Make startup file in assembly and finding where to start??

  • @tomatus270389
    @tomatus270389 2 года назад +44

    I'd like to see the /dev version, along with an IOCTL interface. That'll be cool

  • @jorgelima5695
    @jorgelima5695 2 года назад +37

    Why does a driver for an actual device uses the proc interface instead a device file under /dev? Parsing a command string, even a simple one, in the kernel is not such a good idea unless there is no better option. Why not having devices /dev/led01 to /dev/led21 accepting only char 0 or 1? I thing it would be a nicer interface.

  • @AJMansfield1
    @AJMansfield1 2 года назад +14

    I'd love to see a follow-up to this that explains how to use IRQs in a kernel driver, as low-latency interrupt handling seems to be one of the main reasons that someone would want to write a kernel driver rather than just use the pre-existing GPIO driver.

  • @Ma1ne2
    @Ma1ne2 2 года назад +14

    Absolutely awesome series! I had a lot of fun following these 3 videos! I was trying to follow along with a raspberry pi model b+, but I am guessing the base address for the gpio registers is different, because my code is working, but the led is not lighting up. Can anyone guide me in the right direction of where I can find the base address for gpios on the model 1 b+? I am not yet the best at reading those heavy hardware manuals 😬

    • @williamsquires3070
      @williamsquires3070 2 года назад

      Have you tried probing the other GPIO pins to see if one of them was turning on?

  • @Escarii66
    @Escarii66 2 года назад +1

    Ahh this was so helpful, thanks! Wish I'd found this channel ages ago :)

  • @getyourphils3334
    @getyourphils3334 3 года назад +4

    Thanks for the video, great job as always.

  • @barisgoral443
    @barisgoral443 2 года назад +2

    Nice job! More Driver example please!!!

  • @dantesangiovanni3898
    @dantesangiovanni3898 2 года назад

    Excellent ! 😍 Go on with these tutorials !

  • @SoulGuitarPro
    @SoulGuitarPro 2 года назад +7

    Great series! We need more quality content like this!

  • @azzamwildanmaulana5843
    @azzamwildanmaulana5843 Год назад +2

    Nice vid, how do i read data from GPIO ?

  • @abqlewis
    @abqlewis 2 года назад

    This is a great series! It's saving me a ton of reading. Could you write more drivers for different types of devices as examples? In other words, "Please keep going!" Also, FYI - your Code link above (only on this episode) has an incomplete sub-dir name so it pops up a 404.

  • @joaomarcoscosta8508
    @joaomarcoscosta8508 3 года назад +1

    Thanks a lot for this tutorial!

  • @zaspanyflegmatyk2446
    @zaspanyflegmatyk2446 2 года назад

    Amazing! Pls do more!

  • @ИгнатАртурович
    @ИгнатАртурович 2 года назад

    Sir, you are my savior!
    This tutorial worked like a charm! (apart from like second vid, but I also did some modifications)

  • @alurma
    @alurma 2 года назад +3

    Thank you. Didn't expect this stuff to be that easy!

  • @jackyli6716
    @jackyli6716 2 года назад

    It is so amazing!nice job!

  • @Aplysia
    @Aplysia Год назад +1

    Great video! Would be nice to have some links to docs etc. where I can start learning to do such things myself

  • @JohnKha
    @JohnKha Год назад +1

    Just watched this series, it was super useful and makes driver writing feel a lot less daunting. Any chance you will make a video on how this changes with Rust kernel drivers?

  • @rashidz97100
    @rashidz97100 3 года назад +4

    Love these series!!

  • @qzorn4440
    @qzorn4440 Год назад

    A most excellent Raspberry Pi GPIO Driver video. I am having problems in getting the Orange Pi-5 Debian-Bullseye-OS PWM GPIO pins working in Thonny-Python. I would like two OPi.GPIO PWM pins for servo Pan and Tilt motors. Also, I cannot find a GPIO OPi5 example. Do you have any suggestions for a simple PWM example? Thank you.

  • @mathewvandover6844
    @mathewvandover6844 Месяц назад

    whats the address update for the BCM2712 on the RPI 5?

  • @sombriks
    @sombriks 7 месяцев назад

    any good guide on gpio-sim? tis kernel driver is supposed to simulate a gpio interface but i lack the proper knowledge on how to proper use it so my node wrapper could be properly tested

  • @jakester1390
    @jakester1390 11 месяцев назад

    improper not inproper printk("Inproper data format submitted
    "); line 66

  • @bharadwajn.k9185
    @bharadwajn.k9185 3 года назад +1

    Can you do a avr c series. How we can do all the arduino stuff with pure c.

  • @lukelopez822
    @lukelopez822 5 месяцев назад

    Will this work on a Raspberry Pi 4B?

  • @gameramve
    @gameramve 8 месяцев назад

    Hi LLL,
    I'm working on Rpi Zero W that have BCM2835.I wanted to know how we get the KERNEL_MODE value? which datasheet should i refer to?

  • @Steven_ze_engineer
    @Steven_ze_engineer Год назад

    Great job on these lessons. I have been searching for years for good embedded Linux explanations. You sir, are truly a gift to the embedded Linux community

  • @smartkorean1
    @smartkorean1 Год назад

    Great content! Nice intro to embedded Linux. Could you please do more of these driver videos??

  • @fulgorete
    @fulgorete 2 года назад

    Just one question: why you have to configure the gpio as an input and not directly has an output? Best regards

  • @DouglasWalrath
    @DouglasWalrath 2 года назад

    why would you use x forwarding to open lxterminal over ssh? you already have shell access via ssh, it seems very unnecessary, like searching for google on google

  • @Dygear
    @Dygear 3 года назад +2

    Thanks!

    • @LowLevel-TV
      @LowLevel-TV  3 года назад +2

      Maaaaaaaaaaaaaaaaaark thank you good sir. As usual, I appreciate your support

  • @suyash7120
    @suyash7120 3 года назад +1

    Awesome tutorial, I was waiting for this final video😁

  • @ashithnair3321
    @ashithnair3321 3 года назад

    Can you make an stm32 series

  • @myetis1990
    @myetis1990 Год назад

    thanks for the great content. I cant wait to see the interrupt handling for the gpio

  • @modernage5365
    @modernage5365 3 года назад

    Hi, is the base address of BCM2837 for gpio correct?Because in the data sheet is given as 0x7e200000

  • @shuweixu3133
    @shuweixu3133 3 года назад

    Thank you for this tutorial!

  • @lamarts1000
    @lamarts1000 2 года назад

    Great series! Awesome job! Thanks for doing this. Interesting...I have a RPI - 3 Model B+, cat /proc/cpuinfo - has BCM2835 listed, but I used BCM2837 and it still works. BCM2835 did not work.

  • @marekdorobczynski1727
    @marekdorobczynski1727 2 года назад

    awesome useful video

  • @n0kodoko143
    @n0kodoko143 2 года назад

    3/3 👍 dopeness

  • @luigifcruz
    @luigifcruz 2 года назад

    Thanks!

  • @nova0302
    @nova0302 2 года назад

    Hello! LLL.
    I really appreciate and enjoy you tutorials.
    I have rpi4 (BCM2711) and trying to follow your tutorial.
    When i apply your code as is, It doesn't work.
    Is it because of the base address of BCM2711?
    What i found is that the gpio address of 2711 is 0x7E20000
    I changed BCM2837(0x3F200000) to BCM2771(0x7E20000
    ).
    For me neither of them work.
    Can you point out any clue?
    Thanks!

    • @sanketlokhande3884
      @sanketlokhande3884 2 года назад +1

      Try 0xFE200000

    • @nova0302
      @nova0302 2 года назад +1

      @@sanketlokhande3884 Thanks bro.!!. It works fine!!

  • @shortnr
    @shortnr 2 года назад

    Pro tip (jk.. I'm a noob): when using make, add the -j# flag, where # is say... 150% of your core count.
    It creates # number of jobs that can substantially reduce your build time.
    Its probably not terribly effective on smaller projects, but it helped a lot when I was using ROS 😀

  • @pbezunartea
    @pbezunartea 2 года назад

    Great series!

  • @hueydo3522
    @hueydo3522 10 месяцев назад

    What happened to this series? This is so cool to learn! I know lot of people would be interested in this but it would considered a blessing if you continue this series. I hope you see my comment