- 博客(40)
- 资源 (6)
- 收藏
- 关注
原创 Tomcat + hexo 搭建博客
简练的说:1 安装hexo2 git clone https://github.com/JoeyBling/hexo-theme-yilia-plus.git ; hexo g ; hexo server;3 安装tomcat4 配置tomcat路径到 hexo生成的 public目录如server.xml里加(<Context...
2020-02-24 23:45:12
755
原创 Android 以太网转 WiFi 热点 (并在同一网段 192.168.0.xx)
命令如下:首先打开盒子的 wifi 热点功能,再用以下命令ip link set eth0 up;ip link add eth1 type bridge ; ip link set eth0 master eth1;busybox ifconfig eth0 0.0.0.0ip link set wlan0 master eth1busybox ifconfig wlan0 0.0...
2018-08-01 19:13:40
4211
1
原创 个人理解的音频流程
音频流程 场景 电话,免提,ringtone, 音乐,蓝牙,蓝牙电话,voip, hdmi ,耳机插入App Mediaplayer ,audiorecord. Framework 很多场景的实现,优先级就在 frameworks/av/services/audiopolicy 去切换的,有很多 profile ,如多个声卡的选择,usb ,bt (a2d...
2018-07-19 18:36:01
1644
2
原创 智能音响蓝牙调试经验
介绍:BT ,bluetooth ,硬件的厂家有 realtek , Broadcom, csr ,rad 等,我了解到的,前两者在 arm android 上集成的比较多,如 rockchip 平台上rtl8723bs ,ap6212,ap6210, ap6335.等。后者 csr rda 没怎么接触过,听说终端设备上用的比较多。 硬件:Arm adroid 机子上的蓝牙的硬件几...
2018-07-19 15:57:05
9818
6
原创 rk3288 android5.1 java 层使用 su 获取 root 权限
用法:1 Runtime.getRuntime().exec("su , tinymix"); 要连在一起写,或者写一脚本 public void onClick(View v) { Log.d("test by Wade", "su test start"); Process p = null; try { p = R...
2018-05-06 13:11:56
4439
原创 android 电池小记
1 hardware 层在 system/core/healthd/ 会对电池做一些处理,大概60秒去读电池的状态。#define POWER_SUPPLY_SUBSYSTEM "power_supply"2 底层 调用 power_supply_changed 通过event 通知上层(实际用的是 socket , kobject_uevent), healthd/ 监听 uevent ,然后再...
2018-04-27 14:14:12
367
原创 android 机子 启动不进入 android
把 zygote 注释掉就可以了./init.rc:10:import /init.${ro.zygote}.rc./init.rc:534: onrestart restart zygote./init.rc:572: onrestart restart zygote
2018-04-23 11:47:10
546
原创 mipi 屏 通过寄存器调背光
调试一个mipi 屏,在背光上遇到了问题,调背光的时候屏在闪,确实能把背光调暗。调试方法是用的mipi 写寄存器。log上没有相关的东西。软件上的用法是void rk_mipi_adjust_bl(u8 value){+ u8 cmds4;+ cmds0 = LPDT;+ cmds1 = 0x15;+ cmds2 = 0x51;+ cmds3 = val
2018-01-17 11:00:20
2668
3
原创 rk3368 dvfs 相关的一些理解
dts 文件&clk_core_b_dvfs_table { operating-points = < /* KHz uV */ 216000 950000 312000 950000 408000 950000 600000 950000 696000 950000 816000 975000 1008000 1050000 //1200000 115
2017-12-29 11:01:38
1807
1
原创 Android 系统蓝牙 控制手机端音乐暂停 (AVRCP)
需求:Android 平板做为一个音响的功能使用。已经移植 BT 的 a2dp sink 的功能。现在需要加上 平板控制手机的声音播放,暂停,音量大小等功能移植: 平台: rk3368 系统 android6.0 按网上的资料,http://blog.csdn.net/shichaog/article/details/52182987 。在 Andro
2017-12-18 17:35:50
14047
4
原创 android rtc 不能写时间到 rtc 原因分析
android rtc set kerneljava层调用不管。在jni 是framework/base/services/core/jni/com_android_server_AlarmManagerService.cpp底层./drivers/staging/android/alarm-dev.cioctl: alarm_do_ioctl : A
2017-12-04 18:05:52
5082
1
原创 uinput 用法 android 上层使用uinput 的用法来模拟 input 事件
android 上层使用uinput 的用法来模拟 input 事件
2017-11-08 15:47:29
2281
原创 android 获取屏幕像素为 1920x1016的原因
实际象素是 1920 x 1080 。在代码里获取像素密度是 1920x1016 的原因:通过搜索getMetrics 找到 getAppMetrics 再找到 appHeight。 通过 appWidth = other.appWidth; 等判断其来源里也应该有DisplayInfo.java 里 appWidth 。再 在 WindowManagerService.java 来找到对其
2017-06-13 17:14:55
784
原创 鼠标和按键在android 上的识别和区别
引子: 拿到一个蓝牙遥控器,连上后,按确认(OK)键的时候显示鼠标。导致遥控器不能正常使用。测试过程: 1 换此蓝牙遥控器在其他产品上,并没出现鼠标。(由此richard 帮忙找到rk 代码加的东西,导致鼠标弹出) 2 借另外的蓝牙遥控器,在我们现有的遥控器上,也没出现鼠标。 3. 确认 OK 键的按键值(28, 232).分析徐工指出的 rk 的代码,发现在
2017-04-19 10:44:27
4792
原创 android 声卡音频策略小记
5.1 以前应该是在 hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp5.1 的时候Android5.1/frameworks/av/services/audiopolicy/比如调节 USB 和 HEADPHONE,甚至 HDMI 的声音输出顺序。这个要根据 stream type
2017-03-03 15:08:06
3077
1
原创 rk3288 i2c 写双字节地址
struct i2c_adapter *adap;struct i2c_msg msgs[2];char reg; char reg2[2]; reg = 0x04;reg2[1] = 0x00; reg2[0] = 0x00;adap = i2c->adapter;msgs[0].addr = i2c-
2017-03-01 17:21:55
2316
原创 加密IC 在android 机子上的简单应用
原理:产生一个组随机机,写入加密IC ,再从IC 中读出来一组数,经算法计算后,判断之前的随机数和计算的结果一样,就证明此IC 为加密 IC ..因为加密算法保密和随机性比较大,防止抄板效果不错。kernel 层:保证 i2c 通就行。不需要额外驱动。hardware 层,通用代码如下。如果判断没有此 IC ,就重启机子。此代码里 随机数就用的当前的时间
2017-03-01 16:47:53
1739
转载 cfsetospeed
NAMEtermios, tcgetattr, tcsetattr, tcsendbreak,tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed,cfsetispeed, cfsetospeed - 获取和设置终端属性,行控制,获取和设置波特率 SYNOPSIS 总览#include #include f
2012-03-28 16:16:22
551
转载 kmalloc() 与 kfree() 和get_free_page的区别
一 ,kmalloc() 与 kfree() 和get_free_page的区别1,用于申请较小的、连续的物理内存:使用的是内存分配器slab一小片。申请的内存位于物理内存的映射区域。其正真的物理地址只相差一个固定的偏移。 可以用这两个宏来简单转换 __pa(address) {virt_to_phys()} 和 __va(address){phys_to_virt()}
2011-12-19 00:39:39
2461
转载 mmap对get_free_pages 等的不同做法
用户空间存取内核空间,具体的实现方法要从两个方面考虑,先是用户进程,需要调用mmap来将自己的一段虚拟空间映射到内核态分配的物理内存;然后内核空间需要重新设置用户进程的这段虚拟内存的页表,使它的物理地址指向对应的物理内存。针对linux内核的几种不同的内存分配方式(kmalloc、vmalloc和ioremap),需要进行不同的处理。关于这个话题,前面已有文章论述了,>也专门用一章的内容来讲述
2011-12-19 00:37:51
1164
转载 Linux设备驱动之内存映射--mmap--转
1. 内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。 2. 映射的种类把同
2011-12-16 16:28:47
1127
1
转载 linux kernel 工作队列
<br />linux kernel 工作队列<br />朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是指对初始条件敏感性的一种依赖现象.蝴蝶效应的原因在于蝴蝶翅膀的运动,导致其身边的空气系统发生变化,并引起微弱气流的产生,而微弱气流的产生又会引起它四周空气或其它系统产生相应的变化,由此引起连锁反应,最终导致其它系统的极大变化.<br />自从1979年12月
2011-05-17 10:38:00
694
转载 深入分析 Linux 内核链表 转
深入分析 Linux 内核链表<br /> 杨沙洲 (pubb@163.net)国防科技大学计算机学院杨沙洲,目前在国防科技大学计算机学院攻读软件方向博士学位。对文中存在的技术问题,欢迎向 pubb@163.net质疑。 <br />简介: 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。标记本文!<br />发布日期: 2004 年 8 月 01 日 <br />级别: 初级
2010-10-20 13:50:00
284
原创 yuv420解析
<br />YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。YUV格式解析1(播放器——project2)根据板卡api设计实现yuv420格式的视频播放器打开*.mp4;*.264类型的文件,实现其播放。使用的视频格式是YUV420格式YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组
2010-09-30 15:12:00
2038
1
原创 mb,,smp_mb() barrier()
<br />讨论一下,为什么他的那个例子: <br />+ (2) Multiprocessor interaction <br />+ <br />+ When there's a system with more than one processor, these may be working <br />+ on the same set of data, but attempting not to use locks as locks are <br />+ quite ex
2010-09-01 15:38:00
969
原创 mb,,smp_mb() barrier()
<br />讨论一下,为什么他的那个例子: <br />+ (2) Multiprocessor interaction <br />+ <br />+ When there's a system with more than one processor, these may be working <br />+ on the same set of data, but attempting not to use locks as locks are <br />+ quite ex
2010-09-01 15:38:00
522
原创 Linux 的 Virtual Memory Areas(VMA):基本概念介紹
<br />由 user process 角度來說明的話,VMA 是 user process 裡一段 virtual address space 區塊;virtual address space 是連續的記憶體空間,當然 VMA 也會是連續的空間。VMA 對 Linux 的主要好處是,可以記憶體的使用更有效率,並且更容易管理 user process address space。<br />從另一個觀念來看,VMA 可以讓 Linux kernel 以 process 的角度來管理 virtual add
2010-08-24 16:04:00
673
原创 8.1 临界区和竞争条件 2转
<br />加锁<br /> 现在我们来讨论一个更为复杂的竞争条件,相应的解决方法也更为复杂。假设需要处理一个队列上的所有服务请求,我们可以任意选一种方法实现这个队列,这里我们假定该队列是一个链表,链表中的每个节点就代表一个请求。有两个函数可以用来操作此队列:一个函数将新请求添加到队列尾部,另一个函数从队列头删除请求,然后处理它。内核各个部分都会调用这两个函数,所以内核会频繁地将在队列中加入请求,从队列中删除和处理请求。对请求队列的操作无疑要用到多条指令。如果一个线程试图读取队列,
2010-07-23 10:58:00
435
转载 临界区和竞争条件 转
<br />共享内存的应用程序必须特别留意保护共享资源,防止共享资源被并发访问。内核也不例外。共享资源之所以要防止并发访问,是因为如果多个执行线程同时访问和操作数据,就有可能发生各线程之间相互覆盖共享数据的情况,造成被访问数据处于不一致状态。并发访问共享数据是造成系统不稳定的一类隐患,而且这种错误一般难以跟踪和调试—所以首先应该认识到这个问题的重要性。<br />要做到对共享资源的恰当保护往往很困难。多年之前,在Linux还未支持对称多处理器的时候,避免并发访问数据的方法相对来说比较简单。在
2010-07-23 10:57:00
599
转载 LINUX2.4 for S3C2410 的中断问题 转
LINUX2.4 for S3C2410 的中断问题 <br />LINUX2.4 for S3C2410 的中断问题2007-07-31 20:141、 LINUX中,中断的安装和使用:当中断系统硬件产生一个中断信号,LINUX的中断处理系统将根据从硬件获得的中断号调用用户编写的中断处理程序,这个处理程序根据需要可以分为中断上半部和中断下半部(bottom half),一般将需要马上处理的动作安置在上半部中处理,这时是关中断运行。可以在稍后处理的动作安置在下半部处理,这时是开中
2010-07-21 14:15:00
416
转载 转 注册中断
<br /><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;}
2010-07-20 16:18:00
330
原创 init解析
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析,使读者可以对 initrd 技术有一个全面的认
2010-07-15 13:59:00
606
转载 linux kernel boot arguments
<br /><br /><br /><br />The following is a consolidated list of the kernel parameters as implemented(mostly) by the __setup() macro and sorted into English Dictionary order(defined as ignoring all punctuation and sorting digits before letters in a
2010-07-15 11:00:00
579
转载 linux kernel boot arguments
<br /><br /><br /><br />The following is a consolidated list of the kernel parameters as implemented(mostly) by the __setup() macro and sorted into English Dictionary order(defined as ignoring all punctuation and sorting digits before letters in a
2010-07-15 11:00:00
365
转载 S3C2440上LCD驱动
<br /> <br /><br /><br /><br />(FrameBuffer)实例开发讲解(一)<br /><br /><br />S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一) <br /><br /><br />嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总<br /><br />结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。<br /><br />一、开发环境 <br /><
2010-07-15 10:58:00
770
1
原创 u-boot的的makefile分析 转
<br />u-boot的Makefile分析<br /><br /> U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。<br /><br /> U-BOOT的下载地址: http://sourceforge.net/projects/u-boot<br /> 我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失败。1.1.6是没问题的。<br /><br />
2010-07-13 16:59:00
605
原创 inb inw 的实现
linux驱动中I/O访问函数inb inw 的实现inb inw 的实现#define inb(p) ({ unsigned int __v = __raw_readb(__io(p)); __v; })#define inw(p) ({ unsigned int __v = le16_to_cpu(__raw_readw(__io(p))); __v; })#define __ra
2010-05-26 13:54:00
768
原创 Linux 启动脚本 完全注释(1) -- 整体流程
Linux太伟大了,什么东西都可以由你来做主,Linux加载完内核后,所有的其他系统服务,进程,都是靠脚本来加载的。所以Linux是这么的透明, 你可以清除的指导你的系统做了什么。 下面我就对Linux的启动脚
2010-05-20 13:24:00
307
原创 Linux 启动脚本 完全注释2 --- rc脚本注释——转
从/etc/inittab中可以看出,启动的核心就是rc脚本.首先init程序调用rc脚本,并将级别传递给rc脚本.其次rc脚本去调用该级别内(/etc/rcX.d)各项服务的脚本.rc脚本的注释如下:#!/bin/sh############################################################
2010-05-20 11:30:00
370
RNDIS/Ethernet Gadget Driver for Windows 10 X64
2018-05-08
libusb-0.1.12.tar.gz绝对可用
2010-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人