自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xgbing

Deep in embedded

  • 博客(375)
  • 资源 (55)
  • 收藏
  • 关注

原创 android /system/vold源码分析(6)

接着分析CommandListener,FrameworkListener是它的直接父类。FrameworkListener类的代码:class FrameworkListener : public SocketListener {public: static const int CMD_ARGS_MAX = 26; /* 1 out of errorRate will be

2016-06-10 23:11:05 1342

原创 android /system/vold源码分析(5)

CommandListener继承关系:SocketListener ---> FrameworkListener ---> CommandListener对比NetlinkHandle的继承关系:SocketListener ---> NetlinkListener ---> NetlinkHandlernm->start()执行流程(1)nm->start() 即 NetlinkManager

2016-06-10 22:43:39 1785

原创 android /system/vold源码分析(4)

继续看后面的代码: /* Process the pending list, since it is owned by the thread, * there is no need to lock it */ while (!pendingList->empty()) { /* Pop the first item from

2016-06-10 22:35:41 1279

原创 android /system/vold源码分析(3)

NetlinkHandlerclass NetlinkHandler: public NetlinkListener {public: NetlinkHandler(int listenerSocket); virtual ~NetlinkHandler(); int start(void); int stop(void);protected: v

2016-06-10 14:29:55 1297

原创 android /system/vold源码分析(2)

NetlinkManager.cpp/hint NetlinkManager::start() { struct sockaddr_nl nladdr; int sz = 64 * 1024; int on = 1; memset(&nladdr, 0, sizeof(nladdr)); nladdr.nl_family = AF_NETLINK;

2016-06-10 11:41:30 1390

原创 android /system/vold源码分析(1)

void是类似linux中udev功能的程序,它管理着可热插拔设备的热插拔工作。main函数完成的VolumeManager, CommandListerer, NetlinkManager的初始化工作,并执行:vm->start()nm->start()cl->startListener()int main() {//下面定义了VOLD中三个重要的类 VolumeManager *vm

2016-06-10 10:51:31 1705

原创 在/sys/中创建设备子设备目录

在drivers/base下的platform.c中:struct device platform_bus = { .init_name = "platform",};注意它是一个struct device结构类型,它是所有设备的根目录。这是在s5p4418中display.c中的一段代码:struct kobject *kobj = NULL;/* create attribute in

2016-05-17 14:03:38 3357 1

原创 SIMPLE_DEV_PM_OPS宏

pm.h有一个宏SIMPLE_DEV_PM_OPS:#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \const struct dev_pm_ops name = { \ SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \}再看SET_SYSTEM_SLEEP_PM_OPS和dev_

2016-05-06 11:13:05 9900

原创 android policy源码阅读(1)-policy,PolicyManager

接口源代码文件目录位于framework\base\core\java\com\android\internal\policy。    policy的实现代码位于frameworks/base/policy,生成的文件位于./out/target/product/beaglebone/system/framework/android.policy.jar。 PolicyManager主要用于创建W

2016-05-02 16:10:23 2698

原创 android UI(1)-PopupWindow

以弹出音量设置的界面为例,代码如下:public class MainActivity extends Activity implements View.OnClickListener { private LinearLayout volset_layout; private PopupWindow VolsetMenu; @Override protected

2016-05-01 10:42:51 1670

原创 电源管理芯片nxe2100驱动

nxe2100芯片是nxe2000的升级芯片,它提供5个DCDC,10个LDO,2个LDORTC。    High Efficiency Step-down DC/DC Converters* DCDC1 -3 0.6V-3.5V Max 3000mA* DCDC4-5 0.6V-3.5V Max 2000mA* Soft-start circuit●Low Drop Voltage Regula

2016-04-27 18:29:15 3568

原创 drivers/mfd/Mfd-core.c

mfd: multifunction device drivers---多功能设备驱动开发;A product or device that has multiple functions. An example of this might be a printer that also makes copies, faxes, and scans. Another example is a CD o

2016-04-23 19:44:48 2627

原创 try_module_get和module_put

try_module_get使模块的引用计数加1,当rmmod调用时,会检查这个引用计数,当计数为0时才会删除模块。static inline int try_module_get(struct module *module){ int ret = 1; if (module) { preempt_disable(); if (likely(module_is_live(modu

2016-03-29 22:26:15 1185

原创 linux gpio export

linux提供了一系列的函数来操作GPIO,看下面的代码: int io_out, in_in; //定义一个输出IO和一个输入IO io_out = GPIO_TO_PIN(1, 16); io_in = GPIO_TO_PIN(1, 17); gpio_request(io_out, "gpio_out");   //申请IO gpio_request(io_in,

2016-03-29 21:59:23 10495 1

原创 /sys/power/state

kernel/power/main.c中:/** * state - control system power state. * * show() returns what states are supported, which is hard-coded to * 'standby' (Power-On Suspend), 'mem' (Suspend-to-RAM), and * '

2016-03-21 22:07:56 6653

原创 /sys/power创建

kernel/power/main.c代码:power_attr定义:#define power_attr(_name) \static struct kobj_attribute _name##_attr = { \ .attr = { \ .name = __stringify(_name), \ .mode = 0644, \ }, \ .show = _n

2016-03-21 20:51:43 2686

原创 new Handler().post(new Runnalbe()... 分析

Handler是很灵活的一个类,当运行下面的代码时:new Handler().post(new Runnalbe(){@Overridepublic void run(){ //do something}});它内部干了些啥?!找到它的源代码: /** * Causes the Runnable r to be added to the message queue.

2016-02-24 19:26:57 2465

原创 android:configChanges属性

设置Activity的android:configChanges时,切屏会重新调用各个生命周期本人实际测试发现设置android:configChanges="keyboardHidden|orientation"或不设置横竖屏切换时也会执行onCreate各一次,并且不会执行onConfigurationChanged设置android:configChanges="orientation|sc

2016-02-22 22:41:08 3028 2

原创 本地aar文件引用

有时需要使用第三方的aar库,或是工程源代码越来越大,项目内分工需要或出于模块化考虑,需要引用aar文件。    arr就像C/C++中的静态库。    如何建一个aar,网上的文章很多,这里不再重述。    通过gradle最普遍的方法是把aar上传到mavenCentral或者jcenter。如何引用一个本地aar,要在工程的module配置文件build.gradle中加入:reposito

2016-02-20 22:58:24 3269 1

原创 ubuntu软件更新源问题解决

换了网上几个软件源后均不能用,提示HASH错误,偶尔找到一篇文章讲到可以使用ftp,我改了一下竟然可以用了:# deb cdrom:[Xubuntu 12.04.4 LTS _Precise Pangolin_ - Release amd64 (20140205)]/ dists/precise/main/binary-i386/# deb cdrom:[Xubuntu 12.04.4 LTS _

2016-01-24 11:05:26 3079

原创 Ad-hoc网络

Ad Hoc结构是一种省去了无线中介设备AP而搭建起来的对等网络结构,只要安装了无线网卡,计算机彼此之间即可实现无线互联;其原理是网络中的一台计算机主机建立点到点连接,相当于虚拟AP,而其他计算机就可以直接通过这个点对点连接进行网络互联与共享。    Ad-Hoc(点对点)模式:ad-hoc模式就和以前的直连双绞线概念一样,是P2P的连接,所以也就无法与其它网络沟通了。一般无线终端设备像PMP、P

2015-10-02 16:38:31 8838

原创 内核工作队列workqueue

LDD3: 工作队列是, 表面上看, 类似于 taskets; 它们允许内核代码来请求在将来某个时间调用一个函数. 但是, 有几个显著的不同在这 2 个之间, 包括:(1) tasklet 在软件中断上下文中运行的结果是所有的 tasklet 代码必须是原子的. 相反, 工作队列函数在一个特殊内核进程上下文运行; 结果, 它们有更多的灵活性. 特别地, 工作队列函数能够睡眠.(2) tasklet

2015-09-07 22:12:30 2690 1

原创 android传感器sensor

HAL层的头文件代码位于hardware\libhardware\include\hardware\sensors.h。    HAL层支持13种类型的传感器:/** * Sensor types */#define SENSOR_TYPE_ACCELEROMETER 1#define SENSOR_TYPE_MAGNETIC_FIELD 2#define SENS

2015-08-31 22:21:15 1799

原创 编写android HAL代码

很重要的一点,android代码是运行在linux应用层的,包括HAL层的代码。    HAL的三个结构体:hw_module_t, hw_module_methods_t, hw_device_t。    hardware\libhardware\include\hardware\Hardware.h:struct hw_module_t;struct hw_module_methods_t;

2015-08-31 21:56:39 1513

原创 windows xp下安装AMD sata硬盘驱动(无须重装系统)

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1002&dev_4391]"Service"="ahcix86""ClassGUID"="{4D36E96A-E325-11CE-BFC1-0

2015-08-27 22:29:33 5904 3

原创 安装Rapidsvn 0.21.1

使用rapidsvn 0.21.0这个版本自带的svn1.6,在编译android内核时出错。  rapidsvn使用subversion-1.7.7,推荐使用!  1.安装 apr-1.4.6.tar.gz tar -zxvf apr-1.4.6.tar.gz cd apr-1.4.6./configure --prefix=/usr/local/apr-1.4.6makemake instal

2015-08-19 18:52:49 1745

原创 什么是IOMMU

IOMMU:input/output memory management unit。Device的IOMMU类似于CPU的MMU。对IOMMU的支持主要有两个原因,一个是对老设备的支持,另外一个是对scatter/gather的支持。现有的VMM必须使用模拟设备将来自客户操作系统的驱动程序路由到VMM。这样做是为了管理对共同内存空间的访问,并闲置对内核模式驱动程序的真实设备访问。AMD的IOMMU

2015-07-08 13:49:33 19458 1

原创 iSCSI技术

iSCSI技术   SAN(Storage Area Network的缩写)意为存储区域网络,是真正的专注于企业级的存储。SAN采用一个分离的网络(从传统的局域网中分离)连接所有的存储器和服务器,这个网络可以采用高性能的实现技术,如光纤通道(Fiber Channel),可以容纳SCSI等协议,使数据块的移动更为有效,也便于用户自由增加磁盘阵列、磁带库或服务器等设备。现在的SAN基本都是通过F

2015-07-07 10:48:08 962

转载 xen-tools

最近在寻找快速部署xen虚拟机方法,觉得官方推荐的xen-tools工具集不错,不过发现在介绍时一般用该工具部署Para-Vritralization(半虚拟化)模式的虚拟机,暂且不论部署什么模式的xen虚拟机 ,下面简单介绍一下xen-tools工具。    在debian6上安装xen-tools工具:apt-get install xen-tools    工具包中包含以下工具:    /u

2015-07-03 13:26:41 2181

转载 多网卡的7种bond模式原理 linux网卡聚合

现在存储产品CSS使用了多网卡bond6模式,在这里把多网卡的7种bond模式原理和大家分享:Linux 多网卡绑定网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。mode=6

2015-07-02 15:58:32 10751

原创 yum更新源

修改/etc/yum.repos.d/CentOS-Base.repo[base]name=CentOS-$releasever - Basebaseurl=http://mirrors.163.com/centos/6.4/os/$basearch/gpgcheck=1gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-

2015-07-02 15:46:38 3041

转载 Xen中,使用XL还是XM?

用过Xen的几乎都知道xm/xend这一套工具,但是最近社区中都是在讨论xl这个工具,特别是对老用户,可能有些疑惑,我们使用Xen之时,到底是XL还是XM作为工具。我接触Xen也一年多了,每天工作都和Xen打交道,而且经常在Xen开源社区中交流,所以这里我总结一下我的认识,给对xl这个新工具有疑惑的同学答疑一下吧。如果你是老用户,而且使用的Xen版本较低(低于4.1),那么你只能使用xm/xend

2015-07-02 09:59:52 2464

原创 PCI、PCIE

(1)传统的PCI中,CPU通过北桥与PCI总线相连。(2)PCI-X在外形上和64bit的PCI基本上是一样的,但是它们使用的是不同的标准,PCI-X的插槽可以兼容PCI的卡(通过针脚区分),PCI-X也是共享总线的,插多个设备传输速率会下降。PCI-X一般只出现在服务器主板上,不过现在也逐步被PCI-E取代,很多厂商的服务器都已经不提供PCI-X的插槽了。(3)PCI Express是INTE

2015-07-01 11:47:45 1633

转载 KVM虚拟机

Kvm教程目录[隐藏]1 友情连接2 KVM 与 vbox的区别3 关于kvm4 相关连接5 基本知识5.1 安装准备5.2 安装kvm5.3 创建虚拟镜像5.4 安装虚拟机系统5.5 使用虚拟机最简单的命令6 使用6.1 文件共享6.2 快照模式(-snapshot)6.3 高速网络(-net nic,model=virtio -net user)6.4 高速虚拟6.5 使用“母镜像”功能6.6

2015-06-30 14:36:59 2497

转载 KVM虚拟化环境高可用方案探讨

KVM是成熟的开源虚拟化解决方案,将其部署于企业生产环境,其高可用性也是必须要仔细考虑的问题。高可用性(High Availability)是指系统提供不间断服务的能力,也就是尽可能的减少系统停止服务的时间。KVM虚拟化环境也存在HA的问题,KVM主机软硬件或外部环境都有可能出现问题甚至是灾难,这就必须要考虑一些高可用方案。KVM高可用方案无非就是如何能最大限度的让客户机保持正常运行。目前想到的H

2015-06-30 13:50:53 8101

原创 x86中断架构

x86计算机的 CPU 为中断只提供了两条外接引脚:NMI 和 INTR。1. 可编程中断控制器8259A8259A 只适合单 CPU 的情况。每个CPU都有一个本地APIC,所有本地APIC连接到IO APIC。主要是收集来自 I/O 装置的 Interrupt 信号且在当那些装置需要中断时发送信号到本地 APIC,系统中最多可拥有 8 个 I/O APIC。一个本地定时设备以及为本地中断保留的

2015-06-29 15:55:26 1815

原创 ubuntu 内核编译

1 先获取内核源码包,这个不能直接从kernel.org上下,因为ubuntu的内核ubuntu公司对其打过补丁,即定制过,所以可用如下方法下载:sudo apt-cache search linux-source2 之后,安装源码:sudo apt-get install linux-source安装成功后,会在/usr/src目录下:ll /usr/src3 编

2015-06-11 19:10:56 901

原创 低功耗蓝牙4.0BLE编程-nrf51822开发(11)-蓝牙串口代码分析

代码实例:Board/pca100001/06 s110/experimental/ble_app_uart。    实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据。    int main(void){ // Initialize leds_init(); timers_init(); butto

2015-04-09 16:22:09 10937 4

原创 低功耗蓝牙4.0BLE编程-nrf51822开发(10)-描述符

特性中的属性有两种:属性值或描述符。    支持通知或指示的特性中默认有一个描述符:客户端特性配置描述符(Client Characteristic Configuration Descriptor,CCCD)。它的UUID是0x2902。    添加描述符的函数是:uint32_t sd_ble_gatts_descriptor_add ( uint16_t char_handl

2015-04-07 14:18:40 7337

转载 BLE 4.0 与 4.1的区别

蓝牙技术让我们在连接各种设备的时候不再被繁多的数据线所束缚,比如音响、电脑,甚至是汽车。目前最新的蓝牙版本是4.0,相比3.0它进一步降低了功耗,并且也提高了传输效率。近日,蓝牙技术联盟(Bluetooth SIG)宣布蓝牙4.1即将到来,它在4.0的基础上又有了三个重要的改进之处。第一个改进的地方被蓝牙技术联盟称为“共存性”,即蓝牙4.1与LTE无线电信号之间如果同时传输数据那么蓝牙4.1可以自

2015-04-03 17:38:59 13209

windows下批量查找和替换工具

windows自带的替换工具太烂,此工具提供UI图形界面,可以在批量文件中查找和替换工具,找了好几个工具,这个最好。

2020-08-24

STM32平台应用讲演稿

STM32平台应用讲演稿

2015-09-22

windows xp AMD SATA硬盘驱动

无须重装系统在windows xp下安装amd sata驱动。

2015-08-27

Intel IOMMU DMAR 技术文档

Intel cpu 虚拟化,IOMMU,DMAR技术说明。

2015-07-09

quartusII13.0破解文件

Altera QuartusII 13.0破解文件。

2014-12-16

继电保护测试检定范本

继电保护测试检定范本,电网继电保护测试检定的报告。

2013-07-13

继电保护测试仪检定报告范本

继电保护测试仪检定报告范本,不包含电流电压上传时间、同步性和合闸角检定

2013-07-12

VC调用matlab7.10的接口程序实例

VC与matlab7.10的接口程序实例 说明见:http://blog.csdn.net/xgbing/article/details/8889283

2013-05-06

Triple-Speed Ethernet(tse)FPGA软核MAC官方实例

Triple-Speed Ethernet(tse)FPGA软核MAC官方实例 http://blog.csdn.net/xgbing/article/details/8557144

2013-04-22

模拟发送GOOSE发送小工具

PC机下模拟发送GOOSE发送的一个小工具,可供学习使用

2013-04-16

mms_ethereal_install_v102

开发智能电网必备工具,可以抓取IEC61850 SMV, GOOSE,GSE数据包的工具。

2012-04-17

VirtualSMV, VirtualPT IEC61850测试工具(2012-4-17版本)

VirtualSMV, VirtualPT IEC61850测试工具 程序包含: (1) SMV发送工具VirtualSMV; (2) 抓包工具VirtualPT; (3)IEC61850配置文件IEC61850_9-1Config。 两个测试工具可在单机上运行,也可在两个联机的电脑上运行。 使用mms_ethereal可以抓取9-1的数据包

2012-04-17

WinPcap 4.0.2

WinPcap 4.0.2, IEC61850开发需要的组件。

2012-04-10

virtualPT, IEC61850抓包测试工具

virtualPT, IEC61850抓包测试工具。支持9-1,9-2和GOOSE,可以实时显示电流和电压的波形。

2012-04-09

virtualPT,可以抓取IEC61850数据包

可以抓取IEC61850数据包,实时显示电流电压的波形图,支持9-1,9-2和GOOSE。

2012-04-09

继电保护微机型试验装置技术条件

继电保护微机型试验装置技术条件,DLT624-1997标准。

2012-02-22

国内外继电保护测试仪内部结构比较图表

国内外继电保护测试仪内部结构比较图表,同行们可以参考。

2012-02-22

IEC61850 采样值数据包

IEC61850 采样值数据包文件,可以用IEC抓包工具打开。

2011-09-26

GOOSE的数据包

IEC61850 GOOSE的数据包,可以用IEC的抓包工具打开。

2011-09-26

IAR for ARM V5.40 注册机

IAR for ARM V5.40 注册机

2010-09-04

ubuntu下安装微信完美方案

ubuntu下安装微信客户端试过几个方案,有基于网页的,有先装wine再装windows下客户端的。这个安装包安装简单易用,完美支持中文,可发文件,可截图。

2023-04-06

windows/linux分区误删恢复工具

windows/linux分区误删恢复工具,操作失误删除分区恢复,支持windows分区和linux分区,FAT、NTFS、ext3、ext4分区,MGR和GPT分区都支持,操作界面简单,很好用。

2022-07-25

VirtualMonitor数字签名程序

VirtualMonitor驱动程序,在windows7下可以虚拟出另一个显示屏,用于一个显卡的双屏显示,已经数字签名,可以在测试模式下使用。

2022-06-01

MPlayer-1.4_for_aarch64.tar.bz2

mplayer 1.4 for arm aarch64,mplayer使用ffmpeg,开源的linux播放器。

2020-06-02

LinuxCMA-cewg43.pdf

linux cma学习PPT,Linux Contiguous Memory Allocator的相关知识,很好的PPT。

2020-04-28

kylin ft2000 arm aarch64 boot uImage initrd dtb

kylin ft2000 ARM平台 aarch64的引导文件,包含uImage initrd dtb等文件。

2020-04-18

spice-guest-tools-0.74.zip

spice-guest-tools-0.74,kvm客户机windows驱动,包含显示qxl、剪切板共享等。

2020-04-18

rtl8188EUS_linux_v5.2.2.4.zip

RTL8188EUS wifi ubuntu 驱动,经验证ubuntu16.04 可用,安装方法: make make install

2020-04-05

rtl8188eu.tar.bz2

rtl8188eu ubuntu wifi网卡驱动, ubuntu自带的驱动连接信号弱。 使用方法: make all sudo make install

2020-04-05

rtlwifi.tar.bz2

rtl8188ee rtl8192c rtl8192ce rtl8192cu rtl8192de rtl8192ee rtl8192se rtl8723ae rtl8723be rtl8723com rtl8821ae rtl8822be. wifi网卡驱动 ubuntu16.04 4.8kernel. 解压后执行make, make install, 再执行下面2条命令: echo "options rtl8822be ips=N" | sudo tee /etc/modprobe.d/rtl8822be.conf sudo sed -i 's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf 最后重启。

2020-02-17

Xorg_2007-EDID-JMiseli.pdf

Sun 公司关于EDID的PPT。 EDID (Extended Display Identification Data),被广泛用于VGA、DVI、HMDI显示器的识别,它包含了显示器的厂商名称、支持的显示分辨率及其时序、HDMI音频信息等内容。

2019-06-24

Paradigm C++ sp6 破解版

Paradigm C++ sp6 + hotfix9 为到2009年07月17日最新版本!

2018-05-17

devicetree___WMD学习工具V2.3(支持I386, AMD64, IA64)

wdm windows驱动设备树工具,学习WDM驱动必备,V2.3。

2018-04-24

DRM KMS学习资料

最近在调试Intel 显卡I915,学习了linux下的DRM驱动。网络上有关DRM的资料很少,发现这个资料讲得非常好,解释DRM/KMS的知识,推荐下载。 https://blog.csdn.net/xgbing/article/details/79899711

2018-04-11

drm示例代码

DRM是linux下的显示驱动代码架构,驱动代码位于drivers/gpu/drm,这个是应用层操作drm的示例代码。

2018-04-10

Qt+x11+xcb的例子

Qt+x11+xcb的例子, 详见http://blog.csdn.net/xgbing/article/details/79479380

2018-03-08

蓝牙nrf51822uart相关程序和资料

蓝牙nrf51822uart相关程序和资料

2016-07-02

蓝牙nrf51822hrs相关程序和资料

蓝牙nrf51822hrs相关程序和资料。

2016-07-02

VC++中声音波形文件及声卡编程

详细介绍了wav格式,以及在VC下实现WAV播放的编程。

2016-06-13

凌阳语音识别

凌阳语音识别的资料。

2016-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除