原创 tasklet使用方法

tasklet的概念我這裏就不多講了,因爲網上的文章很多,我這裏只介紹怎麼在我們的驅動程序中使用tasklet提供的接口函數。一般,從定義到最後註銷,一共有4步,下面我們分別介紹這4個接口函數。 靜態定義tasklet static v

原创 對nand flash設備進行升級

前言 這段時間在給板子開發一個升級的功能,板子的Flash使用的是nand flash,使用mtd去管理分區。在正式開始講升級部分之前,我們先了解一下nand flash和mtd的基本知識,最後我還會說一下怎麼升級ubi格式的rootfs

原创 Linux系統的suspend流程分析

第1和第2節的參考鏈接: http://www.wowotech.net/pm_subsystem/suspend_and_resume.html 第3節開始的參考鏈接: https://www.cnblogs.com/arnoldlu/

原创 手把手教你移植bluez 5.47藍牙協議棧

目錄 背景 編譯bluez 1、glib的編譯 1.1、編譯zlib 1.2、編譯libffi 1.3、編譯glib 2、DBUS編譯 2.1、編譯expat 2.2、編譯DBUS 3、readline的編譯 3.1、編譯ncurses

原创 mt8167s溫溼度傳感器框架分析——kernel層

前言 前面我們已經講解了sensor框架中的framework到vendor層,這篇文章我們將會講解kernel層的內容。不過不同的芯片平臺,kernel層中的sensor框架是不同的,這裏針對的是mt8167s平臺。不過這裏提醒

原创 一個suspend的問題分析

前言 最近遇到一個待機問題,系統一直無法正常suspend,跟了一下代碼,發現在PSCI的最後階段返回了一個錯誤碼。這篇文章我們是延續上一篇《Linux系統的suspend流程分析》,繼續揭開psci的神祕面紗。 正文 從《Linux系統

原创 Linux系統出現bus error錯誤

在使用memtester工具對DDR進行壓力測試時,出現了一下的報錯: # memtester 200M 1 memtester version 4.3.0 (32-bit) Copyright (C) 2001-2012 Charle

原创 mt8167s溫溼度傳感器框架分析——framework到vendor層

mt8167s溫溼度傳感器框架分析——framework到vendor層 關鍵字:mt8167s、Android 9.0、AHT10 前言 ​ 本來如果只是給傳感器寫個驅動並提供能讀取溫溼度數據的節點,是一件比較輕鬆的事情,

原创 安卓9.0馬達框架分析

安卓9.0馬達框架分析 關鍵詞:mt8167s;Android 9.0 前言 ​ 最近需要將之前的一些驅動接口轉爲安卓標準接口,方便上層應用或者第三方應用去適配。這篇文章先從簡單的馬達框架入手進行講解。 正文 ​ 整個馬達

原创 FATAL: modpost: Section mismatches detected錯誤解決

如題,寫完驅動後編譯內核的時候碰到了這個錯誤,頭一次看到這個編譯錯誤,略懵逼,先給出完整的錯誤: WARNING: modpost: Found 2 section mismatch(es). To see full details b

原创 I2C設備驅動書寫框架

前言 在正式介紹I2C驅動框架之前,我們先了解一些基礎知識。內核有兩種i2c驅動程序的編寫方式。分別稱這兩種方式爲“Adapter方式(LEGACY)”和“Probe方式(new style)”。但是legacy的方式已經過時了,較新的內

原创 【rockchip PX30平臺】uboot中讀取I2C設備的寄存器值

前言 最近項目中有塊rockchip的板子需要同時適配兩塊LCD,但是沒看到RK平臺本身有這個功能,所以我們想到通過TP本身提供的sensor id去判斷,然後做相應的初始化動作。 所以我們需要先看一下在uboot中怎麼去獲取TP的sen

原创 gpio編號到描述符的轉換

前言 最近在調試一個新板子的LED驅動,LED燈用到了特定的GPIO引腳,而驅動中有一項工作就是需要佔用某個GPIO資源並設置爲輸出引腳,調用的接口類似如下: #define GPIOAO_3 (3)  /* GPIOAO_3這個引腳的

原创 git學習

雖然工作中一直有用gitmin,但都是用的很簡單的那幾個命令,下面鏈接的教程挺好的,先mark一下,需要的時候翻翻看: https://git-scm.com/book/zh/v2

原创 Linux系統中的dvfs功能

前言 最近硬件的同事需要我們提供的版本能動態調頻,何爲動態調頻呢?對於CPU來講,功耗和性能是一對不可調和的矛盾,通過調整CPU的電壓和頻率,可以在功耗和性能之間找一個平衡點。由於調整是在系統運行的過程中,因此這種功能也稱作動態電壓/頻率