原创 Linux內核驅動學習(十)Input子系統詳解

文章目錄前言框架如何實現`input device` 設備驅動?頭文件註冊input_dev設備上報按鍵值dev->open()和dev->close()其他事件類型,處理輸出事件查看input device信息附錄 前言 這次主

原创 Linux dts 設備樹詳解(二) 動手編寫設備樹dts

文章目錄前言硬件結構設備樹dts文件 前言 在簡單瞭解概念之後,我們可以開始嘗試寫一個簡單的設備樹,從而加深對設備樹整體架構以及部分語法的理解,因爲整體知識面比價龐雜,無法面面俱到,本文旨在筆者學習之初對於設備樹常用部分的總結與歸

原创 Linux內核驅動學習(九)GPIO外部輸入的處理

文章目錄前言設備樹兩個結構體gpio_platform_datagpio_demo_device兩種方式輪詢外部中斷總結附錄 前言 前面是如何操作GPIO進行輸出,這裏我重新實現了一個gpio的驅動,可以獲取外部信號的輸入。gpio-

原创 Linux內核驅動學習(八)GPIO驅動模擬輸出PWM

文章目錄前言原理圖IO模擬輸出PWM設備樹驅動端調試信息實驗結果附錄 前言 上一篇的學習中介紹瞭如何在用戶空間直接操作GPIO,並寫了一個腳本可以產生PWM。本篇的學習會將寫一個驅動操作GPIO,同樣的也可以發生PWM,因此這裏還需要

原创 Linux內核驅動學習(七)GPIO之用戶空間調用接口

文章目錄簡介原理圖節點設置爲輸出設置爲輸入映射關係debugfspwm demo 簡介 前面通過libgpio的方式介紹了內核空間對GPIO進行操作的接口,其做了較好的封裝,同時Linux系統的sysfs機制已經在系統路徑下/sys/

原创 Ubuntu 配置/etc/fstab參數實現開機自動掛載硬盤

文章目錄前言fstab參數含義實現步驟1 查看硬盤信息,並找到需要進行掛載的硬盤2 sudo mkfs.ext4 /dev/sdc3 sudo mkdir /home/diska4 查看UUID5 配置/etc/fstab 前言 不

原创 Linux內核驅動操作GPIO(一)概覽

文章目錄前言功能如何使用設備樹API總結 前言 GPIO(General Purpose Input/Output)通用輸入/輸出接口,是十分靈活軟件可編程的接口,功能強大,十分常用,SOC也非常依賴GPIO,在實際應用中幾乎都能看到

原创 Android 8.1 關機充電動畫(三)Android模式

system:Android 8.1 platform:RK3326/PX30 uboot kernel system/core/healthd Android 8.1 關機充電動畫(一)模式選擇 Android 8.1 關機充電動

原创 Android 8.1 關機充電動畫(二)Uboot模式

system:Android 8.1 platform:RK3326/PX30 uboot kernel Android 8.1 關機充電動畫(一)模式選擇 Android 8.1 關機充電動畫(二)Uboot模式 Android

原创 Android 8.1 關機充電動畫(一)模式選擇

system:Android 8.1 platform:RK3326/PX30 uboot kernel 文章目錄前言配置代碼分析總結附錄 前言 關機充電的動畫可以在u-boot或者Android的charger模式工作,這是兩個相

原创 ubuntu 攔截並監聽 power button 的關機消息

system:ubuntu 18.04 platform:rockchip 3399 board:NanoPi M4 前言 物理上的電源按鍵短按之後,系統直接硬關機了,導致應用程序無法保護現場,就直接宕機了,查閱了大量資料,發現通過使

原创 Android 電池管理系統架構總結 Android power and battery management architecture summaries

文章目錄1 整體架構2 設計構架2.1 driver2.1.1 Charger.ko2.1.2 Battery.ko2.2 power supply2.2.1 基礎架構2.2.2 代碼分析2.3 healthd2.3.1 基礎架構2.

原创 Linux 內核代碼風格

文章目錄從編碼風格錯誤開始快速修改編碼風格的工具scripts/checkpatch.plscripts/LindentastyleLinux 內核代碼風格1) 縮進2) 把長的行和字符串打散3) 大括號和空格的放置3.1) 空格4)

原创 Linux 內核線程KThread學習總結

文章目錄簡介例程運行結果參考 簡介 使用內核線程需要包含頭文件#include <linux/kthread.h>,下面整理了一下常用的api接口,如下表格所示; 函數 功能 struct task_struct * k

原创 Linux work_struct 學習總結

前言 編寫Linux驅動的時候對於work_struct的使用還是很普遍的,很早之前就在閱讀驅動源碼的時候就看到了它的蹤影,根據其命名大概知道了它的具體作用,但是仍然不知所以,同時,伴隨出現的還有delayed_work以及workq