懶,不寫了linux
咱們在kernel/driver目錄下建立一個hello目錄函數
而後建立一個Kconfig文件:spa
config HELLO tristate "Hello world for Firefly" help Hello for Firefly
而後建立一個Makefile文件:code
obj-$(CONFIG_HELLO) += hello.o
接着在上一級目錄裏,就是driver目錄Kconfig加入:blog
source "drivers/hello/Kconfig"
而後從新編譯內核,製做鏡像,燒錄。ip
觀察啓動輸出是否有打印信息get
GPIO經常使用系統調用函數,位於include/linux/gpio.h:input
1. 申請GPIO static inline int gpio_request(unsigned gpio, const char *label) 2. 設置GPIO電平 static inline int gpio_set_value(unsigned int gpio, int value) 3. 獲取GPIO電平 static inline int gpio_get_value(unsgined int gpio) 4. 設置GPIO爲輸出,並設置電平 static inline int gpio_direction_output(unsigned gpio, int value) 5. 設置GPIO爲輸入 static inline int gpio_direction_input(unsigned gpio)
ROC-RK3328-CC 的 GPIO 驅動是在如下 pinctrl 文件中實現的:io
kernel/drivers/pinctrl/pinctrl-rockchip.c