原创 dts文件解讀

/ { compatible = "acme,coyotes-revenge"; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&intc>; cpus { #a

原创 kmalloc參數flags

#include <linux/slab.h> void *kmalloc(size_t size, int flags);給 kmalloc 的第一個參數是要分配的塊的大小. 第 2 個參數, 分配標誌, 非常有趣, 因爲它以幾個方式控

原创 原子操作

整型原子操作atomic_t v = ATOMIC_INIT(0);//定義原子變量v並初始化爲0 void atomic_set(atomic_t *v, int i);//設置原子變量的值爲i atomic_read((atomic_

原创 [轉載]Linux設備驅動程序架構分析之I2C架構(基於3.10.1內核)

I2C體系架構的硬件實體包括兩部分:硬件I2C Adapter:硬件I2C Adapter表示一個硬件I2C適配器,也就是I2C控制器。一般是SOC中的一個接口,也可以用GPIO模擬。硬件I2C Adapter主要用來在I2C接口上產生I

原创 linux下I2C驅動架構全面分析

I2C 概述  I2C是philips提出的外設總線.  I2C只有兩條線,一條串行數據線:SDA,一條是時鐘線SCL ,使用SCL,SDA這兩根信號線就實現了設備之間的數據交互,它方便了工程師的佈線。  因此,I2C總線被非常廣泛地應用

原创 AXI總線簡介

原文鏈接 http://www.cnblogs.com/lkiller/p/4773235.html原文內容:0.緒論AXI是高級擴展接口,在AMBA3.0中提出,AMBA4.0將其修改升級爲AXI4.0。AMBA4.0 包括AXI4.0

原创 linux內核併發控制-互斥體、自旋鎖、中斷屏蔽

    在linux內核中,主要的競態發生於如下幾種情況:1.對稱多處理器(SMP)的核間併發cpu0的進程/中斷與cpu1的進程\中斷之間的並行。2.單cpu內進程與搶佔它的進程進程與搶佔它的進程訪問共享資源類似於SMP的多個cpu3.

原创 字符設備驅動

1.字符設備結構體 12 struct cdev { 13 >---struct kobject kobj; 14 >---struct module *owner;//THIS_MODULE 15 >---const struct

原创 android開發之多線程編程Thread和Runnable使用

Android有兩種方式實現多線程,一種是繼承Thread類,覆寫run()方法。一種是實現Runnable接口,再用該實現創建Thread。第一種方式:Java中一個類只能繼承一個父類,該方式的侷限性所在。package com.vix

原创 android消息分發機制之Java層Handler,Looper,Message及MessageQueue

先看android提供的一個關於Handler、Looper使用的最簡單範例:class LooperThread extends Thread {//線程類,在這個線程中會啓用消息分發機制 public Handler mH

原创 android.mk轉換爲android.bp

1.0 類似例子 android.mk大家都很熟悉了,就是android下編譯模塊的配置文件,可以理解爲android makefile。從android N之後,我們發現好多模塊下面沒有了android.mk文件,多了一個android

原创 vndk: (native:vendor) should not link to libcamera_client (native:platform)

1.0 相似例子 2-21 17:47:30.305 4365 4365 E CamX : [ERROR][UTILS ] camxosutilslinux.cpp:874 LibMap() dlopen: dlopen failed:

原创 [c++11]多線程編程(六)——條件變量(Condition Variable)

轉自:https://www.jianshu.com/p/c1dfa1d40f53 互斥鎖std::mutex是一種最常見的線程間同步的手段,但是在有些情況下不太高效。 假設想實現一個簡單的消費者生產者模型,一個線程往隊列中放入數據,一個

原创 [c++11]多線程編程(四)——死鎖(Dead Lock)

[c++11]多線程編程(四)——死鎖(Dead Lock) 轉自:https://www.jianshu.com/p/c01e992a3d9d 死鎖 如果你將某個mutex上鎖了,卻一直不釋放,另一個線程訪問該鎖保護的資源的時候,就會發

原创 [c++11]多線程編程(三)——競爭條件與互斥鎖

[c++11]多線程編程(三)——競爭條件與互斥鎖 轉自:https://www.jianshu.com/p/4a2578dd9b5d 競爭條件 併發代碼中最常見的錯誤之一就是競爭條件(race condition)。而其中最常見的就是數