原创 設備樹學習之(五)watchdog

開發板:tiny4412SDK + S702 + 4GB Flash 要移植的內核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自帶的 U-Boot 2010.12

原创 第四章 進程的調度

1. 什麼是調度 現在的操作系統都是多任務的,爲了能讓更多的任務能同時在系統上更好的運行,需要一個管理程序來管理計算機上同時運行的各個任務(也就是進程)。 這個管理程序就是調度程序,它的功能說起來很簡單: 決定哪些進程運行,哪些

原创 設備樹學習之(八)eeprom

開發板:tiny4412SDK + S702 + 4GB Flash 要移植的內核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自帶的 U-Boot 2010.12

原创 設備樹學習之(二)點燈

開發板:tiny4412SDK + S702 + 4GB Flash 要移植的內核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自帶的 U-Boot 2010.12

原创 設備樹學習之(一)GPIO中斷

開發板:tiny4412SDK + S702 + 4GB Flash 要移植的內核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自帶的 U-Boot 2010.12

原创 設備樹學習文章分享

  分享一下學習設備樹過程中看過的文章,寫的都非常好,是難得的設備樹學習資料。另外,有個內核開發者講的設備樹也非常好,視頻有1小時20多分鐘,只不過他語速太快了,接受不了,但是ppt還是不錯的,可以谷歌一下Device Tree

原创 第三章 進程管理

1、進程和線程   進程就是出於執行期的程序,但進程並不僅僅侷限於一段可執行代碼。通常還要包括其它資源,像打開的文件,掛起的信號,內核內部數據,處理器狀態,一個或多個具有內存映射的內存空間地址及一個或多個執行線程,當然還包括用來存

原创 Android Binder 修煉之道(三)Binder 系統C++實現 BpXXX代理類分析

    在 Binder 系統中,分爲 Client ServiceManager Server 三部分,C++是面向對象的語言,因此,這三者對應三個類的實例。ServiceManager 由 Android系統實現,我們只需要實現我

原创 Android Binder 修煉之道(二)Client Server 實例

前面一節,分析了 Binder 系統中的骨架,瞭解了 Client ServiceManager Server 三者之間的關係,重點針對 ServiceManager 分析了服務的註冊過程以及查詢過程。本節,將重點放在實現一

原创 Android backlight

  frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java public final class Powe

原创 Android lights system

Android 中的燈光子系統採用的是硬件訪問服務框架,JNI 層的文件是 com_android_server_lights_LightsService.cpp (frameworks\base\services\core\jn

原创 固定 event 節點

    相信與Linux驅動打交道的人都會遇到這樣一個問題,由於插入Input設備的時機不同,導致內核每次創建 event 節點未必一樣,給應用程序的參數設置帶來困難,比如qt設置環境變量。如何做到無論啥時候插拔設備 event 節點都

原创 Android 修改 init.rc

Android 根目錄下可以看到 init.rc ,但是卻無力修改,改了也白瞎,重啓就恢復了,ramdisk.... init.rc 是 rootfs 中的文件,Android 將 rootfs(initramfs) link 到 

原创 Android Binder 修煉之道(四)Binder 系統C++ 發送數據過程以及Server註冊服務處理數據的過程

本節分析發送數據過程以及Server註冊服務處理數據的過程 1#define LOG_TAG "CalculateService"2//#define LOG_NDEBUG 034#include <fcntl.h>5#includ

原创 第十章 內核同步方法

原子操作 原子正數操作 定義一個 atomic_t 類型的數據方法很平常,你還可以在定義它時給它設定初值: atomic_t v; //定義v atomic_t u = ATOMIC_INIT(0)