- 博客(81)
- 资源 (4)
- 收藏
- 关注
转载 sysrq-trigger
轉載 sysrq-trigger转载 利用 SysRq 键排除和诊断系统故障立即重新启动计算机echo “b” > /proc/sysrq-trigger立即关闭计算机echo “o” > /proc/sysrq-trigger导出内存分配的信息 (可以用/var/log/message 查看)echo “m” > /proc/sysrq-trigger导出当前CPU寄存器信息和标志位的信息echo “p” > /proc/sysrq-trigger导出线程状态信
2020-06-01 14:37:32 346
原创 Android C++ 录制 Audio PCM 文件
一般的录制 PCM 文件,可以简单的修改 tinycap 的代码,将 tinycap 打包 wav 的地方去掉,直接就可以录制 PCM 文件了(原理是 WAV = 头部+PCM 数据)。也可以使用 Android C++ 的 AudioSource 类来进行录制。代码非常简单,如下:#include <binder/ProcessState.h>#include <media...
2020-02-17 14:38:48 550
原创 Android C++ 播放 MP3 Demo 笔记
前言使用 Android C++ 编写 MP3 播放程序,使用的是 framework\av\media\libmedia\mediaplayer.cpp 里面的 MediaPlayer 类。实现了本地播放和在线播放两种方式。代码其中,如果要播放 video,则需要和屏相关,使用到 surface。如下: //video : need SurfaceFlinger if (pla...
2020-02-17 14:28:34 731
原创 Qualcomm MSM8909 AW9523 外扩键盘驱动
/***@file Aw9523_drv.c*@author *@date 2014-12-9*@keypad dirver*@H02 keypad devices dirver.*/#include <linux/module.h>#include <linux/init.h>#include <linux/interrupt.h>#in...
2020-02-14 15:59:20 1212 2
原创 Qualcomm MSM8937 ICN6211 MIPI-2-RGB 芯片驱动
( ICN6211 ILI9806E + 模拟SPI+模拟I2C )/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the ter...
2020-02-14 15:54:48 2541
原创 Qualcomm MSM8937 dual DSI 笔记
简述在 MSM8937 上有支持了 dual dsi 功能,本人在 msm8937-android6.0 上将其调通,以下简记其实现的思路以及关键代码片段。高通支持的双屏有两种方式:其一为将一副图片左右均分,然后通过两个 DSI 硬件接口刷到屏幕上去,似乎在 MSM8952 上就是这种方式;其二为将一副图片不做分割操作,直接通过两个 DSI 硬件接口刷到屏幕上去,在 MSM8937 上则是支持...
2020-02-14 15:29:23 2339 8
原创 Qualcomm msm8916 MIPI to RGB 调试
简介屏的接口种类非常多,常见的包括 RGB、HDMI、VGA、LVDS、EDP、MIPI等接口。其中,在 Android 移动设备上,大多采用的是MIPI接口。某些时候,由于某种需求,需要将 Android 设备上的 MIPI 数据显示到其他接口的屏上,此时,则需要利用相关转换芯片将 MIPI 接口的数据转换成其他接口的数据。在 msm8916 上有过这样的需求:将 MIPI 数据转换成...
2020-02-14 15:20:32 3137
原创 Qualcomm MSM8916 将开关机动画放置到指定分区做法
在 Android 5.1 上,将 Android 的开机 logo、开机动画 bootanimation.zip 和关机动画shutdownanimation.zip 一起存放在 splash 分区。
2020-02-14 14:50:20 3073
转载 Android MediaRecorder录制视频
【copy from Android MediaRecorder录制视频】视频录制也可以通过 MediaRecorder 类完成,其步骤与音频录制基本相同,只是添加了一些对视频进行处理的操作。视频录制的基本步骤如下:调用Camera.open()方法打开摄像头。调用 Camera.setPreviewDisplay() 连接预览窗口以便将从摄像头获取的图像放置到预览窗口中显示出来...
2020-02-14 14:22:26 2637
转载 Android Camera相机以及相机程序开发实例
【copy from:Android Camera相机以及相机程序开发实例】拍照程序,是通过 Intent 调用 Android 系统提供的照相机程序实现的。Android SDK 提供了直接操作移动设备摄像头的 android.hardware.Camera 类,通过该类的相关 API,可以直接操作 Android 手机中的摄像头,以方便开发自己的拍照程序。使用 Camera 类访问移动...
2020-02-14 14:04:25 638
原创 SPRD ION 代码阅读理解---笔记
缘由:在应用层两次调用 open_adf 接口后,整个系统就 crash了,经过log分析发现,在 kernel 第二次ION申请内存的时候,出了问题。那什么是ION?怎么玩的?于是准备一探究竟。什么是 ION?ION 是google android系统在4.0后引入的一种内存管理技术。详细链接如下:The Android ION memory allocator用在哪些地方?应用层和...
2019-12-11 16:05:55 1925
原创 linux socket 本地进程间通信---笔记
摘要:本文代码,转自另外一篇博客:Linux进程间通信方式–本地socket服务端#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/un.h> #define UNIX_DOMAIN "/data/UNIX.domain"stati...
2019-12-04 11:06:31 277
原创 在C文件中调用C++代码---笔记
背景:我们提供的so库中,代码是纯 c++ 代码,里面包含了cpp 的各种特性:类、虚函数等等。但是由于客户平台原因,他们使用的是纯 C 语言,也就是代码文件的后缀也是以 “.c” 结尾的。他们需要在 C 文件中调用我们库里面的 CPP 接口,在编译的时候,编译器一直报找不到接口。第一次尝试:通过在我们的 CPP 代码里面加 “extern c” 的方式,错误如故;第二次尝试:新创建一个...
2019-12-04 10:11:48 1159
原创 linux 驱动 demo---笔记
#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/sched.h>#include <linux/errno.h>#include <...
2019-11-28 15:40:49 399
原创 SL8521E开发笔记---UART配置
简单的说,有多组 UART 控制器,有多组 UART PIN 引脚。UART PIN 可以灵活的分配给不同的 UART 控制器(不在同一个软件版本中)。这个分配过程,就是去调整寄存器 REG_PIN_CTRL2 的值。该寄存器一共32bit,其中:bit12-10是配置u2txd/u2rxd pin 属于哪个控制器;bit9-7是配置u1txd/u1rxd pin 属于哪个控制器;bit...
2019-11-26 16:16:38 3040
原创 SL8521E开发笔记---power按键长按开机时间修改
为了消抖或者防误撞,一般都要去电源按键,长按多长时间,设备才能真正的进入开机流程,否则就不会加载系统,在当前阶段,直接 power down 。SL8521E 的 power 按键时间检测函数为:boot_pwr_check(), 其在 get_mode_from_keypad() 函数里面去调用。 boot_mode_enum_type get_mode_from_keypad(voi...
2019-11-26 15:56:27 1545
原创 SL8521E开发笔记---GPIO 寄存器读取方法
GPIO模块地址是0x4028_0000开始,每一组16个GPIO占据0x80个byte,也就是GPIO0——GPIO15: 0x4028_0000;GPIO16——GPIO31: 0x4028_0080GPIO32——GPIO47:0x4028_0100;以此类推GPIO80——GPIO95: 0x4028_0280;再从上面这些地址添加offset偏移量,得到DATA,MASK,D...
2019-11-26 15:35:33 1359 1
原创 linux 串口回显程序代码---笔记
#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <stdlib.h>#include <string.h>#include <termios.h>#include <fcntl.h>#include <poll.h&...
2019-11-20 11:34:06 784
原创 strace 分析 Linux 版的 getaddrinfo
为啥说是 Linux 版的 getaddrinfo,因为这世界上还有一个安卓的。而且这一不注意就搅混了。毕竟Linux版本使用的是 glibc 库,而安卓版本用的是 bionic 库。两个不同的 C 库,两个不同的实现,原理相似,基因相似,实质不同。 / # strace /data/getaddinfo localhostexecve("/data/getaddinfo", ["/d...
2019-01-27 13:40:34 553
原创 几个Linux调试指令简单随记
1. readelf该指令可以查看当前 elf 文件的依赖。比如这样:readelf -d libtinyalsa.aFile: libtinyalsa.a(limits.o)File: libtinyalsa.a(mixer.o)File: libtinyalsa.a(pcm.o) 表示这个 .a 依赖于是哪几个 .o 文件再比如这样:$ readelf...
2019-01-23 11:39:42 609
原创 Android date 命令设置系统默认时间(date: Unknown option s)
需要将系统的默认时间从1970年修改为2018年,按照原本的命令,应该格式如下:date -s "yyyymmdd.[[[hh]mm]ss]"example:date -s "20160606.120403" 但是在 adb shell 里面设置的时候,一直报 -s 选项无效,于是经过尝试,使用以下命令成功设置:date 1230122018.59 setdate MMDD...
2018-11-30 16:48:32 8450 1
转载 Linux shell 数组 && 循环笔记
一、Shell 数组(转载)原文路径:shell 数组数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:array_name=(value1 value2 … valuen)例如:my_array...
2018-11-30 16:36:32 526
原创 Linux Shell 判断文件or目录是否存在,并做相应的操作
一个脚本:判断某个目录是否存在,不存在则创建;判断某个文件是否存在指定目录,不存在,则从别的地方拷贝到指定目录;将操作过程 or 调试信息输出到一个 log 文件,以便 debug#!/system/bin/sh#log filepoc_log=&amp;quot;/etc/log.txt&amp;quot;poc_dir=&amp;quot;/etc/.file/&amp;quot;data_apk
2018-11-28 11:05:39 1911
原创 几个常用的 Linux 操作: grep、find、xargs、sed
摘要数据库有“增、删、查、改”几个动作,而在 Linux 下生活的人,莫外乎也经常有这几个操作。找文件在指定目录下找文件,常用 find 命令。以下是 man 手册对 find 命令进行功能性的解释:find - search for files in a directory hierarchy比如,要去 kernel/driver/ 目录下找一个名字叫 led-class...
2018-05-31 15:13:39 1625
原创 C语言链表的基本操作:增、删、遍历、翻转
内容实现了单链表的基本操作,包括:节点的创建、添加、插入、删除、遍历、翻转。代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <time.h>typedef unsigned long Da...
2018-04-19 10:16:36 795
原创 C语言递归实现归并排序
思想将两个有序的队列合并成一个大的有序的序列,反复操作,直到合并成一个有序的队列。思路一个大的无序队列,采用分治法进行排序。先将无序队列一分为二再一分为二,层层递归到只有两个数时,进行排序,然后再依次返回,在返回的时候,再次对两个有序子序列进行合并,然后层层递归合并,到最后只有一个有序的队列完毕。此处盗图二张: 图片来源: 图解排序算法(四)之归并排序实现...
2018-04-07 16:24:21 1710 2
原创 C语言快速排序
原理任选无序队列中的一个元素作为参考元素,将无序队列中大于参考元素的值都放到参考元素的右边,将无序队列中小于参考元素的值都放在参考元素左边。然后再对该参考元素的左右两边,再次进行参考值的选择,并重复上面的动作,直到完成排序。一般的,第一个参考元素,会选择无序队列的首元素作为参考元素。思路可以设定两个哨兵变量 left 和 right,left 从队列的最左边开始扫描,扫描大于参考值的元...
2018-04-07 13:46:20 1153
原创 C 语言直接插入排序
思路首先将无序队列的第一个元素,看作已经排好序。然后拿无序队列的第二个元素与第一个元素进行比较,(此处考虑升序排列的情况下),如果第二个元素小于第一个元素,则将第二个元素插入到第一个元素的左边。然后循环进行,直到无序队列的最后一个元素比较完成。因为涉及到数据位置的移动、交换,需要一个中间变量。实现/* @function: insert_sort @functional: in...
2018-04-07 10:48:48 151
原创 C语言字符反转
题目给定一个字符串,然后将该字符串逆序反转。思路设置两个游标 i 和 j,一个(假设为 i)在字符串的最开始,一个(假设为 j)在字符串的倒数第二位置(倒数第一位置为 ‘\0’ ,不能动它),i 和 j 位置的值互相交换后,i 加一个位置,j 减一个位置,两个位置上的值再次进行交换。重复上面的操作,直到 j 不大于 i。使用栈的方法,根据栈的特点,先进后出,push 一次栈然后...
2018-04-06 23:06:08 1683 1
原创 求任意一个正整数的二进制中有多少个比特位为1
思路一个正整数的二进制中有多少个比特位为1,最直接可想到的是,将该正整数化为二进制的形式,挨个数出其中有多少个1即可。C语言中,和比特位相关的内容,即是位操作。此处可以将该正整数与 0x01 进行位与,即可得知该数的二进制最低位是否为1,然后将该数向右移动一位,再次判断移动后的最低位是否为1,依次操作,直到该数右移变成0.代码实现#include <stdio.h>...
2018-04-05 23:08:25 1683
原创 C 语言直接选择排序代码
选择排序中心思想:每次从无序的队列中,选择出最大(最小)的值,排到有序队列的队尾,并将该值从无序队列中移除。 实现时,在不考虑空间的情况下,可以申请和无序队列一样大小的空间并初始化,然后按照上述的思想将无序队列中的值一个接一个放到该空间上形成有序队列。这种操作是可以实现直接选择排序,但是在内存空间的考量上是不合适的。为了节约内存空间,可以先在无序队列中找到最大(最小)值的下标,然后将这个下标...
2018-04-05 17:08:45 381
Putting logo.png and animation.zip in splash.rar
2020-02-20
examples.tar.gz
2020-02-19
camera-kernel-20200104-1.pdf
2020-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人