Về bài họcHọc thử miễn phíĐăng ký họcViết gpio_led.c thành module gpio_led.ko, điều khiển LED bằng cách ghi thẳng vào thanh ghi GPIO qua ioremap():
insmod: LED sáng, ghi log LED on, phys=0x... virt=... level=<mức>.rmmod: LED tắt, ghi log LED off, level=<mức>.Các bước:
ioremap(), địa chỉ thanh ghi là địa chỉ ảo cộng offset.readl() và writel(); gỡ ánh xạ bằng iounmap() khi rmmod.Module cần MODULE_LICENSE("GPL") và pr_fmt để log có tiền tố gpio_led:. Board ảo tự build, không cần Makefile.
insmod gpio_led.ko pin 17
GPIO17=1
rmmod gpio_led pin 17
GPIO17=0
Mỗi test là một đoạn lệnh shell chạy trong máy ảo Raspberry Pi 4: insmod, rmmod, dmesg.
Có sẵn lệnh pin 17 (in GPIO17=<mức>) và devmem <địa chỉ> 32.
Stdout của đoạn lệnh.
gpio_request, gpiod_*) và không dùng request_mem_region().