自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (6)
  • 收藏
  • 关注

原创 NuttX启动过程分析

1、系统启动过程

2022-04-14 11:26:04 914

原创 STM32F103V跑NuttX之一——下载nuttX及编译烧录

下载nuttX及编译1、NuttX官方链接2、NuttX及App工程下载3、编译NuttX中STM32F103V nsh测试例程4、在ubuntu下使用串口来烧录目录至STM32F103V4.1、ubuntu下stm32flash工具下载4.2、ubuntu下stm32flash工具编译及编译错误解决5、烧录nuttx.bin至STM32目标板6、重新启动系统进入NuttX shell模式1、NuttX官方链接官方门户:https://nuttx.apache.org/官方wiki:https://c

2022-04-14 10:07:07 2994

转载 Android Boot-time Readahead

Bottom line results were an approximate 5% (1.5 seconds) improvement in boot time, using readahead on only a single portion of the boot sequence. A 9% improvement was expected, given the area of the boot sequence that was optimized. So, it didn't help as m

2022-03-01 15:53:30 1109 2

原创 通过shell脚本选择ubuntu最佳更新源

相关shell脚本如下:#!/bin/bash# bionic is code of Ubuntu 18.04 if your ubuntu is not 18.04 please changeVERSION="bionic"TEST_NETCONNECT_HOST="8.8.8.8"SOURCES_MIRRORS_FILE="sources_mirrors.list"MIRRORS_SPEED_FILE="/tmp/mirrors_speed.list"#return avera

2021-07-16 16:41:40 332

转载 在linux系统中通过fw_printenv查看和设置u-boot中的环境变量

uboot下可以通过命令访问(printenv)和修改环境变量(setenv),但是如果需要在Linux系统下访问这些数据该怎么办呢?其实uboot早就帮我们想好了。1、编译fw_printenv工具source /opt/poky/environment...创建交叉编译环境。更改u-boot/tools/env/Make添加CCCC=aarch64-poky-linux-gcc -march=armv8-a -mtune=cortex-a57.cortex-a53 --sy...

2021-06-29 19:59:43 4016

转载 用户空间操作gpio出错echo: write error: Device or resource busy报错解决

使用echo 17 > /sys/class/gpio/export 时报错:-sh: echo: write error: Device or resource busy显示gpio被占用。查看占用状态:cat /sys/kernel/debug/gpio若无上述目录,则:mount -t debugfs debugfs /sys/kernel/debug

2021-06-29 19:52:59 8254 1

转载 Systemd 入门教程:实战篇

上一篇文章,我介绍了 Systemd 的主要命令,今天介绍如何使用它完成一些基本的任务。一、开机启动对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。$ sudo systemctl enable httpd上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd

2021-06-24 16:40:27 183

转载 Systemd 入门教程:命令篇

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。一、由来历史上,Linux 的启动一直采用init进程。下面的命令用来启动服务。$ sudo /etc/init.d/apache2 start# 或者$ service apache2 start这种方法有两个缺点。一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个

2021-06-24 16:38:42 163

转载 dlopen参数总结

void * dlopen(const char *pathname, int mode); 返回一个void *类型的handle,否则返回NULL。 pathname就是所要打开的动态库,如果这个库声明链接了其它库,即对其它库有依赖关系,那么所有相关有依赖关系的库都会被打开,这些打开的库称之为组(group)。 mode是打开方式,其值有多个,不同操作系统上实现的功能有所不同,在linux下,按功能可分为三类: 1、解析方式...

2021-03-24 20:13:15 2520

原创 ubuntu下如何查看crash日志

1、概述ubuntu下程序发生crash,有些能直接生成相应的strack日志,而有些则不行,比较jvm都挂掉的情况,这个时候就需要通过生成的crash文件生成相应的coredump,通过gdb来查看。2、ubuntu下程序crash位置在如下位置会保存crash日志/var/crash3、unpack coredumpcd /var/crashsudo apport-unpack /var/crash/_usr_lib_jvm_java-8-openjdk-arm64_jre

2021-03-24 20:12:21 5574

转载 USB:USB通信中的端点(endpoint)和四种传输模式

USB的传输模式有4种,分别是控制传输(Control Transfer)、中断传输(Interrupt Transfer)、批量传输或叫块传输(Bulk Transfer)、实时传输或叫同步传输(Isochronous Transfer)。每种传输方式都有其特点,其特点如下:端点(endpoint)端点位于USB 外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的FIFO。每个USB 外设有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具

2020-11-06 10:18:09 3238

转载 Cgroup blkio简介和测试(使用fio测试)

因需要对docker镜像内的进程对磁盘读写的速度进行限制,研究了下Cgroup blkio,并使用fio对其iops/bps限速进行测试。Cgroup blkio简介Linux Cgroup(Control Groups)是Linux内核提供的用于限制、记录、隔离进程组可以使用的资源(cpu、memory、IO等)的一种机制。在/boot下面的对应config文件里查看Cgroup内核选项:CONFIG_BLK_CGROUP=yCONFIG_BLK_DEV_THROTTLING=yb

2020-10-22 17:39:39 1518

原创 Android开机优化之调整Launcher的加载时间

前言如前面两篇文章所描述的,1、Android开机速度优化简单回顾2、优化启动时间我们对Android系统的开机时间优化有了一个比较全面的了解,以及一些常用的调试手段(bootchart等),在这篇文章中我们先来看看如下这个问题,首先看一张图:如上图所示,1、在系统启动的时候,为什么像inputmethod、phone、systemUI及settings这些包加载启动的时候要比Launcher早个2秒多的时间呢?2、开机动画结束,到Launcher加载显示,这里存在一个2秒左

2020-09-21 16:24:55 4617 1

转载 优化启动时间

来自source.android.googlehttps://source.android.google.cn/devices/tech/perf/boot-times?hl=zh-cn本文档提供了有关改进特定 Android 设备的启动时间的合作伙伴指南。启动时间是系统性能的重要组成部分,因为用户必须等待启动完成后才能使用设备。对于较常进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等待几十秒后才能输入导航目的地)。Android 8.0 支持一系列组件的多项改进,因而可以缩短

2020-09-10 15:22:38 1264

原创 内核解析dts里面数组的方法

在内核驱动开发的时候,经常会需要在DTS里面定义数据,然后在驱动里面去解析获取相应的默认配置参数数据,这里记录一下如何在驱动代码里面去解析DTS里面的二维数据的方法。1、DTS里面数组定义二、驱动代码里面解析...

2020-09-09 10:53:57 1086

原创 存储设备IO优化向导(blkio)

1、概述虽然存储设备的恨不能在近年来一直在稳步提升,从raw nand到emmc,再到UFS都在进步,但和CPU相比它们依然是一个低俗的外设,并且IO是不可抢占的,所以应用程序在交互中等待IO会带来非常糟糕的用户体验,大部分程序员都意识到了这一点,所以绝大多数的程序尽量都会想办法改善这个问题,例如预读(readahead)和异步IO等。但是有些场景是很难规避IO的影响的。比如启动应用和本地音视频播放。如果在这两个场景中,还有其它的程序来竞争IO,那对用户体验来说可能无法接受。2、现有的优化设想有

2020-08-21 16:51:20 765

转载 Android开机速度优化简单回顾

Android的开机速度,基本上没人说快的,通常移植完系统后,马上要看的事情就是优化开机时间,以下是简单回忆以下以前做优化的那些事。开机时间都花在哪?优化开机时间,通常做的首先是那有有没有BUG,明显不合理的先解决,由于开发阶段稳定性问题,一些地方可能延时加的大,或者频率设的低,先记下来,后面定期还会再看。这些先不看的话,一般拿到机器,我们统计开机时间,主要看如下几个时间段分布:开机按键时间、亮屏时间(基本固定,除非弄错了,基本检查一遍确定) uboot启动时间 内核启动后到bootanim

2020-08-21 15:31:13 6485 2

转载 Binder Driver缺陷导致定屏问题分析

Binder Driver缺陷导致定屏问题分析引用一、背景知识点1.1 工具简介1.2 Binder简介二、初步分析2.1 问题描述2.2 初步分析三、ramdump分析3.1 结构体binder_thread3.2 binder_transaction结构体3.3 特殊的29163.4 binder_write_read结构体3.5 mOut && mIn3.6 疑难悬案四、真相大白4.1 案件侦破4.2 案卷解读4.3 总结引用本文讲解异步binder call是如何阻塞整个系统的,

2020-08-13 21:26:45 631

转载 kernel oops (Unable to handle kernel paging request at virtual address )三种内存访问异常

一、linux内核、用户空间的内存划分:如下图:32位系统内核空间划分0~3G为用户空间,3~4G为内核空间。详细请参考《Linux用户空间与内核空间》注意:内核地址空间的范围是0xC0000000 ~ 0xFFFFFFFF而对于64位系统,内核空间划分如下:ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。虚拟地址也同样最大支持48位支持,所以在处理器的架构设计上,把虚拟地址空间...

2020-07-27 10:28:17 18583

转载 linux中samba访问软连接文件和目录的方法

linux中samba访问软连接文件和目录的方法linux下创建连接命令:软连接: ln -s 源文件/源目录 目标文件/目标目录 (在目标位置上生成一个文件/目录的镜像,不会占用磁盘空间)硬连接: ln 源文件 目标文件 (在目标位置上生成一个和源文件大小相同的文件副本,不占用空间)无论是软链接还是硬链接,文件都保持同步变化。解决samba 无法访问软连接的问题:在配置文件的“[global]”节的最后,加上下面三条设置:follow symlinks = yeswide link

2020-06-29 21:01:12 1327 2

转载 192.168.0.1/27 表示什么

首先得明白 192.168.0.1 是个 IP 地址,更细一点的话,属于 C 类型的,后面的 /27 则表示 网络号 的长度,也叫 VLSM(Variable Length Subnet Mask,可变长子网掩码),192.168.0.1/27 属于 CIDR (无类别域间路由,Classless Inter-Domain Routing) 表述形式。IP 地址是以 点 分割为 四部分,每...

2020-03-31 21:11:03 8178

转载 Android Open Accessory 协议分析与开发

1. 背景介绍 2011年Google推出Android开放配件协议AOA(Android Open Accessory Protocol)及配件开发工具包ADK(Accessory Development Kit)。当时开源硬件和硬件创业都比较热,其中以Arduino平台为代表。Google想借着这个硬件平台开拓智能家具的市场,借此推出了AOA协议和对应的开发平台,以便打通Android手机...

2019-09-29 12:08:25 2303

转载 taskset的简单用法--进程绑核

什么是绑核所谓绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。设定以后,Linux调度器就会让这个进程/线程只在所绑定的核上面去运行。但并不是说该进程/线程就独占这个CPU的核,其他的进程/线程还是可以在这个核上面运行的。如果想要实现某个进程/线程独占某个核,就要使用cpuset命令去实现。其实,很多情况下,为了提高性能,Linux调度器会自动实现尽量让某个进程...

2019-07-30 14:58:07 3477 1

转载 adb client, adb server, adbd原理浅析

adb是什么? adb就是Android调试桥,很形象啊。 先来看adb原理的逻辑图:再来进行实际操作:我的pc的ip是192.168.1.102, 我的android手机的ip为192.168.1.1001. 在pc上执行:netstat -nao | findstr 5037发现结果是空白。2. 执行adb shell, 肯定...

2019-07-23 15:14:56 432

原创 android系统中区分UDisk和SDCard

因项目要求,需要将UDisk和SDCard挂载的名称区分开来,系统默认是将这些可移动存储设备的UUID作为其挂载的目录名称的,如下所示:818D-1319这些都是相应的移动存储器的UUID,这个目录名称在上层APP使用时让人会觉得很抓疯,所以这里通过本文的方法来修改这个挂载目录名。打开system/vold/PublicVolume.cpp这个文件,在doMount这个函数里有如下一段...

2019-02-22 18:25:45 2225 2

转载 Android设置里面默认存储器选项(default write disk)的实现

原生的Android设置里面没有默认存储器的选项,但是MTK偏偏加上了这个功能,可能MTK觉得这个比较有用吧,所以,他们在原生的基础上面做了修改,加上了这个功能。但是高通平台没有这个功能,相对MTK来说,高通比较严谨一点,不会随随便便加上一些功能,但是MTK平台优化了很多东西(有有点也有缺点),开发者这可能是很多山寨手机选择MTK平台的原因吧。     我给“默认存储器”做了一个简单的定义:一...

2019-02-15 20:24:17 789

转载 android下存储设备的使用

本文转自android官网,原文地址:https://source.android.google.cn/devices/storage1、概览1.1、存储Android 一直在不断发展,可支持各种存储设备类型和功能。所有 Android 版本均支持配有传统存储(包括便携式存储和内置存储)的设备。便携式存储是指物理介质(如 SD 卡或 USB 设备),用于进行临时数据传输/文件存储。...

2019-02-15 17:59:55 2406

转载 Linux内核中断引入用户空间(异步通知机制)

当linux内核空间发生中断后怎么使用户空间的应用程序运行相应的函数呢,当芯片有数据到来时内核会产生一个中断,但是怎样通知应用程序来取数据,以前这个问题一直困扰我很长时间,后来发现linux中有异步通知机制,在用户程序中用signal注册一个响应SIGIO信号的回调函数,然后在驱动程序中向该进程发出SIGIO信号便完成该功能,下面是该功能具体实施方法:1.在驱动中定义一个static stru...

2018-12-12 15:50:06 514

转载 android:persistent="true"相关--保证不被系统kill掉

转自:http://blog.youkuaiyun.com/zmyde2010/article/details/6756368总结:1、必须是System/app/下面的应用2、android:persistent="true"属性必须设置。3、查看方法:adb shell  cat proc/进程id/oom_adj4、修改方法:write /sys/module/lowmemory...

2018-11-20 17:46:03 3642

原创 具有系统签名的APK实现APK静默安装

针对具有系统签名权限的APK(系统运用)要实现对其它第三方APK静默安装可用如下代码实现1、manifest中权限申请<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 2、实现方法public void installSilent(Context context, Str...

2018-09-28 11:11:13 1735 1

原创 android下将指定的进程/线程绑定到指定的CPU

针对平台优化的APP,需要根据具体的CPU型号来将一些任务重,占CPU资源多的线程绑定到CPU上处理能力更强的大核上,可参考如下代码:1、将整个进程中的各个线程绑定到指定CPU核#include <stdio.h>#include <stdlib.h>#include <math.h>#include <sched.h>#inclu...

2018-09-18 15:49:52 7156

转载 Android 核心技术

转至android官网https://source.android.com/devices/tech/欢迎访问本网站的 Android 核心技术部分。您可以在这里找到有关常用功能的信息,这些信息可帮助希望修改、移植 Android 软件或向其提供贡献的人员和组织。这是面向工程师的“后台级别”信息。ART 和 DalvikAndroid Runtime (ART) 是 Android 的...

2018-08-14 11:38:46 1578

转载 进程优先级

线程与进程的最大区别就是是否共享父进程的地址空间,内核角度来看没有线程与进程之分,都用task_struct结构体来表示,调度器操作的实体便是task_struct。一、 进程优先级进程可划分为普通进程和实时进程,那么优先级与nice值的关系图:优先级值越小表示进程优先级越高,3个进程优先级的概念:静态优先级: 不会时间而改变,内核也不会修改,只能通过系统调用改变nice值的方法区修改。优先级映射...

2018-07-11 15:17:00 1372

转载 一键分析Android的BugReport

在Android系统测试中,经常要抓取log,而内置的BugReport功能无异是最方便全面的。那么问题来了,BugReport包含的信息虽多,但分析起来就成了麻烦,当然觉得麻烦的不只我一个,还有space2。这位前辈为此写了一个名为chkbugreport的开源工具,可以直接把对BugReport进行分析,好吧,我的麻烦被别人解决了。同时受同事启发,把chkbugreport工具做了个强化,实现...

2018-06-14 09:17:21 3280

转载 Android让所有应用都竖屏显示或者横屏显示

1. 所有应用竖屏显示:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.javapublic int rotationForOrientationLw(int orientation, int lastRotation, boolean displayEnabl...

2018-05-08 17:23:00 6806

转载 Linux Shell 判断块设备节点是否存在

/************************************************************************* * Linux Shell 判断块设备节点是否存在 * 说明: * 能牌问shell脚本-f不能判断mmc设备节点的问题,查了一下资料,发现不能 * 使用-f来判断,要使用-e或者-b来判断才行。

2018-01-23 15:19:33 1945

转载 升级还是权谋?从USB PD 2.0到3.0

原文出处 http://www.eetop.cn/blog/html/43/n-433743.html  如同iPhone的出现,才让智能机真正主导手机市场一样,Type-C口发布后,USB PD才正式进入大众的视野。而事实上,USB PD 1.0的标准在2012年的7月份就已经发布。那个时候,USB接口是传统的TYPE-A和TYPE-B,所有的连线资源,都已经被VBUS、GND和

2018-01-09 11:46:02 8168

原创 一台电脑控制多台手机进行DDR压力测试

原创文章,转载请注明出处和作者出自:http://blog.youkuaiyun.com/xl19862005作者:Xandy使用如下bat批处理可以用一台电脑控制多台手机进行DDR压力测试@echo offset testTimeInsecond=1800set mbytes=512set threads=8@echo off echo 等待设备连接……:NOCONNECTED

2018-01-08 12:15:08 2018

转载 充电器适配器类型

充电器自动确定适配器类型,能够区分以下类型:  DCP:500mA至1.5A  CDP (主机或集线器):高速充电时达到900mA (啁啾期间为580mA);低速和快速为1.5A  低功率SDP (主机或集线器):100mA  大功率SDP (主机或集线器):500mA  所提供的电流支持电池充电或系统供电,或在它们之间进行分配。如果在长达10ms内未检测到

2017-12-23 17:44:43 1160

原创 将本地repo镜像推送到远程gerrit服务器

1、获取远程供应商的repo镜像repo init --mirror -u ssh://$username@$host_name:29418/manifests -b xx_branch --repo-url=ssh://$username@$host_name:29418/xx_repo -m $project_manifest.xmlrepo sync -j42、将获取的repo镜...

2017-12-18 16:34:05 4379

DTMF信号调制解调及正弦信号发生器

这个一个android平台的DTMF信号调制解调器,能够监听电话拨号音,或者通过DTMF编码进行数据通信 另外还集成了一个任意频率的正弦信号发生器 功能强大!

2014-12-25

android版 DTMF 调制解调器

这是最近开发的一个基于DTMF音频通信的APK,实现了DTMF调制及解调

2013-05-05

android开机音乐DIY文件

喜欢DIY的朋友可以把这个文件copy出来,找一首自己喜欢的开机音乐,按照上面所说的音乐存放目录把开机音乐放入自己的手机中,并把所得的bootanimation这个bin替换掉自己手机/system/bin目录下的bootanimation文件(之前一定要先备份原来的bootanimation,不然出了问题,我不负责啊!!),并把这个文件的权限设置成777 可以adb shell下面分别运行如下命令: su chmod 777 /system/bin/bootanimation 开机音乐存放目录:/system/media/audio/ui/boot.wav 音乐文件名只能是boot.wav!!!!

2013-03-22

音频信号解调工具

这是一个解调工具,用于从经过特定调制的音频信号中解调出码元

2013-01-23

FSK音频信号解调工具

这是一个解调工具,用于从特定调制的音频信号中解调出码元

2013-01-23

android音频通信源码

基于android平台的音频通信源码,信号调制用的是2FSK,同时提供向音频口的外设供电功能。

2013-01-21

空空如也

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

TA关注的人

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