自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Android 蓝牙语音通话调试

顺便贴上可以测试蓝牙sco得apk,源码路径在Android12_R10\frameworks\base\media\tests\ScoAudioTest\src\com\android\scoaudiotest。10、A2DP_SINK 音频接收规范,用于接收传输来的音频数据并进行解码,还原出音频;2、A2DP (advanced audio distribution profile)高级音频及立体声规范,包括A2DP SINK和A2DP SOURCE。还可以通过腾讯会议测试进行语音通话。

2024-07-12 11:02:04 66

原创 Android系统实现多网共存且能独立上外网

有些场景下需要多网共存,使用网络聚合进行提升网速。而在Android系统源码上默认是不支持多网同时共存且能独立上外网的。所以需要进行定制修改。1.修改main 表优先级到9999, 作用:eth1 wlan0 访问内网。3.修改wifi为70分,以太网为60分,4G为50分。2.不去teardown 低分数网线。

2024-07-12 10:54:26 131

原创 Android12上实现双以太网卡共存同时访问外网

修改main 表优先级到9999, 作用:eth1 eth1 访问。不去teardown 低分数网线。

2024-07-09 15:47:24 333

原创 uboot读取adc,通过cmdline传给kernel解析数值,不同硬件模块进行处理

(1)kernel编译链接,利用.__param .init.setup段将kernel所需参数(driver及通用)和对应处理函数的映射表(obs_kernel_param kernel_param结构体)存放起来。1.首先kernel已经做了cmdline得解析,start_kernel中setup_arch中解析tags获取cmdline,拷贝到boot_command_line中。将cmdline拷贝2份,放在saved_command_line static_command_line。

2023-06-15 18:39:31 1317

原创 linux spi相关调试

用法:全双工传输数据struct spi_ioc_transfer tr = {.tx_buf = (unsigned long)tx,.rx_buf = (unsigned long)rx,.len = ARRAY_SIZE(tx),.delay_usecs = delay,.speed_hz = speed,.bits_per_word = bits,};#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)//SCLK空闲时为高电平,第二个时间延采样。

2023-06-15 18:22:58 2850

原创 Android12系统上支持Android手机的usb网络共享

2)第二就是我们修改framework,通过广播告诉,系统我们切到usb共享网络,需要给usb0分配ip地址。3.android系统默认只会给eth wlan,移动网络节点去分配ip地址,所以我们需要去适配usb驱动生成的usb0网络节点。这里有两种办法,1).一种就是修改驱动直接让usb网络驱动生成eth网络节点,但这样会影响以太网的功能,1.修改内核,添加这几项内核驱动,kernel驱动默认有源码,我们只需配置上就行。注意:以上只针对android手机的usb网络共享有效。苹果手机需要另做适配。

2023-05-29 15:26:41 2486 2

原创 buildroot系统调试苹果手机网络共享功能

3.OTG控制器集成在CPU内,当有OTG线插入OTG设备时产生中断,中断处理函数上半部通过读取OTG控制器寄存器相应值判断OTG设备属于Host(HCD)还是Gadget(UDC),下半部通过工作队列由回调函数类似host->resume()或gadget->resume()重启Host或Gadget控制器,resume()具体的实现过程在HCD或UDC相关驱动里实现。2.OTG模式下是可以即做主又可以做从,主设备即HCD,从设备即UDC(USB_GADGET )。驱动或框架,通过连接这些具体功能的驱。

2023-05-06 17:17:09 1145

原创 rk平台调试音频(从驱动到apk)

这个部分作为Android的Audio系统的输入/输出层次,一般负责播放PCM声音输出和从外部获取PCM声音,以及管理声音设备和设置(注意:解码功能不在这里实现,在android系统里音频视频的解码是opencore或stagefright完成的,在解码之后才调用音频系统的接口,创建音频流并播放)。详情可参阅 audio.h。原生框架代码位于 frameworks/av/media/libmedia 或frameworks/av/media/libaudioclient中(不同版本,位置有所改变)。

2023-05-06 17:10:25 2862 1

原创 基于tinycap和tinyplay的边录边播源码

放到tinyalsa中,修改Android.bp进行mm编译,放到板子系统上验证通过。可以验证同时录音同时波音的codec功能验证。

2023-05-06 16:59:59 420

原创 Android版本实现root权限(本办法适用于所有android平台)

本方法适用于所有Android版本。

2023-05-06 16:56:56 2040

原创 rk3568平台调试typec口实现uvc输出,网络共享等功能

注意:rk3568默认就一个usb3.0的otg口,默认是使用gpio来控制vbus-5v,我们要使用typec需要去掉,使用fusb302去控制vbus-5v。注意:一定要知道主控接线,那个物理口是otg的,然后要找准与之所连接的phy和控制器。1.添加fusb302驱动,fusb302的驱动在rk平台已经适配过很多,3568平台kernel4.19也是有的,打开即可,在driver/mfd目录。如果开发者要⽀持该接口,需要在。二、添加configfs,配置uvc输出,uac输出,网络共享等功能。

2023-05-06 16:50:28 3619 3

原创 Android系统之系统签名制作

然后目录build/target/product/security下就会有一个platform.jks的文件,把这个文件拷出来,随便放一个位置,用Android Studio打包apk的时候,就可以选择这个platform.jks,打包出来的apk,可以当作system app使用了。在android系统中制作系统签名jks。

2023-05-06 16:43:33 504

原创 2020-11-17

Android系统的启动流程板子上电后运行固化在 ROM 中的代码,加载 Bootloader 到 RAM。 Bootloader 启动,引导进入 Linux 内核。 Kernel 启动 swapper 进程。即 idle 进程,pid = 0,系统初始化过程中的第一个进程,用于初始化 进程管理、内存管理、加载 Display、Camera Driver、Binder Driver 的工作。Kernel 启动 init 进程(pid = 1),用来孵化用户空间的守护进程、HAL、开机动画等。Kern

2020-11-17 17:27:06 237

转载 笔记之uC/OS 多任务机制OSTaskCreate()

想让uC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt()。OSTaskCreate()与uC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCreate()的扩展版本,提供了一些附加的功能。用两个函数中的任何一个都可以建立任务。   任务可以在多任...

2018-02-23 15:57:27 880

转载 笔记之CGI详解

一.基本原理CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。组成CGI通信系统的是两部分:一部分是html页面,就是在用户端浏览器上显示的页面。另一部分则是运行在服务器上的Cgi程序。它们之间的通讯方式如

2018-01-31 10:24:46 455

转载 笔记之字符串转换函数

Linux内核中提供的一些字符串转换函数:lib/vsprintf.c     1.unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)         2. unsigned long simple_strtoul(const char *cp, char **en

2018-01-12 18:54:53 450

转载 笔记之内核定时器(timer_list)

转自:https://www.cnblogs.com/leaven/archive/2010/08/19/1803382.html1.Linux在include/linux/timer.h头文件中定义了数据结构timer_list来描述一个内核定时器:struct timer_list { struct list_head list; unsigned long expires

2018-01-11 18:55:56 444

转载 笔记之DEVICE_ATTR和sysfs

sysfs接口函数宏 DEVICE_ATTR,原型是:        #define DEVICE_ATTR(_name, _mode, _show, _store) \            struct device_attribute dev_attr_##_name = __ATTR(_name, _mode,_show, _store)        函数宏DEVIC

2018-01-11 18:30:51 389

原创 FLASH存储器DDR存储器RAM存储器SRAM存储器DRAM存储器有啥区别?

Flash存储器又称为闪存,是一种非易失性的ROM存储器,在EEPROM的基础上发展而来,但不同于EEPROM只能全盘擦写,闪存可以对某个特定的区块进行擦写,这源于它和内存一样拥有独立地址线。闪存的读写速度快,但远不及RAM存储器;但它断电后不会像内存一样丢失数据,因此适合做外存储设备。用途:U盘、固态硬盘、BIOS芯片等。DDR是一种技术,中文为双倍速率,并不属于一种存储器。DDR通常指DD

2018-01-05 16:55:50 2485

原创 NAT介绍

在传统TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发。即路由器不会对转发的数据包进行修改。准确地讲,除了将源MAC地址换成自己的MAC地址以外,路由器不会对转发的数据包做任何修改。而NAT恰恰是出于某种特殊需要而对数据包的源IP地址、目的IP地址、源端口、目的端口进行改写的操作。什么情况下需要NAT(Network Address Tran

2018-01-02 17:11:11 479

转载 Android 属性property_get/property_set

每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。 属性

2017-12-25 13:58:24 11191

转载 日常笔记in_addr

#include 函数样式structin_addr {   in_addr_t s_addr;};结构体in_addr 用来表示一个32位的IPv4地址。in_addr_t 一般为 32位的unsigned int,其字节顺序为网络顺序(network byte ordered),即该无符号整数采用大端字节序 。

2017-12-16 16:39:16 373

原创 日常笔记之system函数

system函数编辑函数详解(执行shell 命令)相关函数fork,execve,waitpid,popen表头文件#includestdlib.h>定义函数int system(const char * string);函数说明system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代

2017-12-08 17:57:39 222

原创 日常笔记之socket理解1

Socket 的理解? Socket从字面上理解就是插头,翻译成术语就是套接字.? 可以用水龙头/漏斗来与Socket来作类比.–  一个网络通道(TCP或UDP)可以看成是一个水管.–  在两个网络设备之间交换的数据看成是水.–  在网络上传输数据相当于是通过水管在送水./* 用到如下声明typedef OS_STATUS int;#define OS_OK 0

2017-12-02 15:10:14 264

原创 日常笔记之fcntl函数

fcntl fcntl是计算机中的一种函数,通过fcntl可以改变已打开的文件性质。fcntl针对描述符提供控制。参数fd是被参数cmd操作的描述符。针对cmd的值,fcntl能够接受第三个参数int arg。fcntl的返回值与命令有关。如果出错,所有命令都返回-1,如果成功则返回某个其他值。表头文件编辑#include #include #include

2017-11-27 11:04:50 424

转载 日常笔记之fstat函数

fstat函数及struct stat结构(2011-08-04 17:29:10)转载▼标签:杂谈分类: Linux一、fstat 函数功能:由文件描述符取得文件状态。相关函数:stat 、lstat 、chmod 、chown 、readlink 、utime。头文件:  #include

2017-11-25 10:21:38 481

转载 日常笔记之getopt函数详解

转自:http://blog.csdn.net/coding__madman/article/details/51043733getopt函数函数功能:用来解析命令行参数,参数argc和argv分别代表参数个数和内容,跟main()函数里的命令行参数一样函数所在头文件:#include函数原型定义:int getopt(int argc, char* const argv[ ],

2017-11-18 11:24:54 408

原创 日常笔记之Android属性

1. 属性简介Android里有很多属性(property),每个属性都有一个名称和值,他们都是字符串格式。这些属性定义了Android系统的一些公共系统属性。比如:[dalvik.vm.dexopt-flags]: [m=y][dalvik.vm.heapgrowthlimit]: [48m][gsm.operator.iso-country]: [][gsm.operato

2017-11-04 11:58:18 565

转载 日常笔记之Ubuntu常用快捷键

Ubuntu操作基本快捷键* 打开主菜单 = Alt + F1* 运行 = Alt + F2* 显示桌面 = Ctrl + Alt + d* 最小化当前窗口 = Alt + F9* 最大化当前窗口 = Alt + F10* 关闭当前窗口 = Alt + F4* 截取全屏 = Print Screen* 截取窗口 = Alt + Print Screen默认特殊快

2017-11-01 10:08:37 409

原创 日常笔记之以太网格式

以太网帧格式1、在以太网上运行所有包都是按IEEE专门协议表现的格式.在局域网上运行各种各样的第二层网络协议,其中IP只是其中一种.2、而以太网最常用格式为 Ethernet II帧格式 ,所有第三层网络包都承载在其数据段之中–  Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分

2017-10-28 09:51:10 566

转载 日常笔记之Android启动

第三部分:Android启动    Android的启动过程是从进程init开始的,所以它是后续所有进程的祖先进程。安卓框架 一、init进程源码位于system/core/init目录。主要做了以下事情:1.     重新设置子进程终止时信号SIGCHLD的处理函数。act.sa_handler = sigchld_handler;  //调用了wait函数等待子进程

2017-10-27 19:11:58 286

转载 日常笔记之安卓源码目录

Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|

2017-10-27 18:43:18 405

转载 日常笔记之Android系统下移植WIFI驱动

参考了一篇 Android 下移植WIFI 驱动 ,记录下来 。英文原文 :http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html1. android 中WIFI如何工作3. 设置wpa_supplicant  使其可以debug默认情况 wpa_supplicant 设

2017-10-27 14:08:24 2093

原创 日常笔记之内核prefetch问题

在缺少针对具体问题的硬数据(hard data)的时候。性能问题通常不是出在我们认为的位置,所以没有头绪地进行调整试图获得更好的效果可能是徒劳的,甚至可能使事情变得更糟糕。这是内核开 发人员得到的教训。在内核层面,性能通常受缓存行为的影响。真正高性能要求只有命中cpu缓存才能够满足,内存访问相比较显得过于缓慢了。内核尽量地使用cache- hot memory;以及其它一些其它重要的工作,例如

2017-10-26 16:16:56 2938 1

原创 日常笔记之md5sum用法

在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序

2017-09-25 19:37:30 2273

原创 日常笔记之wifi定频及测试

先介绍一下wifi的概念吧,很多人应该就知道wifi是上网用的,具体怎么工作大多人都不怎么关心;Wi-Fi是一种允许电子设备连接到一个无线局域网(WLAN)的技术,通常使用2.4G UHF或5G SHF ISM 射频频段。连接到无线局域网通常是有密码保护的;但也可是开放的,这样就允许任何在WLAN范围内的设备可以连接上。Wi-Fi是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。目的是改善

2017-09-22 19:17:52 11607

原创 日常笔记之AP

AP就是传统有线网络中的HUB,也是组建小型无线局域网时最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网。大多数的无线AP都支持多用户接入、数据加密、多速率发送等功能,一些产品更提供了完善的无线网络管理功能。对于家庭、办公室这样的小范围无线局域网而言,一般只需一台无线AP即可实现所有计算机的无线接入。AP的室内覆

2017-09-14 19:08:43 349

原创 日常笔记之嵌入式系统内存

在嵌入式系统中,文件系统和pc的存储介质有些不同。PC 机中常用的是硬盘、内存、光盘和 U 盘等; 嵌入式系统中文件系统常用的有 SDRAM, DDR-SDRAM ,NOR-FLASH ,NAND-FLASH ,SD 卡,U 盘和硬盘等,种类比PC 机要多,有些是两者都有使用;如内存, 在PC 机上称为内存,在 嵌入式系统中有多个名字,可以叫内存,也可以叫SDRAM 和DDR 。    

2017-09-13 17:54:16 539

原创 日常笔记之makefile中的ifeq ifdef

Makefile 中的ifeq,ifdef简单分析语法规则:       ;        ;          endif    以及          ;     ;     else     ;     endif 其中;表示条件关键字,如“ifeq”。这个关键字有四个。 1、“ifeq”    ifeq (;, ;)

2017-09-09 17:46:22 2138

原创 日常笔记之DDR

DDR内存全称是DDR SDRAM(Double Data Rate SDRAM,双倍SDRAM)。DDR SDRAM最早是由三星公司于1996年提出,由日本电气、三菱、富士通、东芝、日立、德州仪器、三星及现代等八家公司协议订立的内存规格,并得到了AMD、VIA与SiS等主要芯片组厂商的支持。它是SDRAM 的升级版本,因此也称为「SDRAM II」。DDR是现在的主流内存规范,各大芯片组

2017-09-06 18:46:08 456

Android 蓝牙语音通话调试

测试apk

2024-07-12

串口应用层收发程序模拟windosw,可命令行发送

串口数据读写程序,可阻塞读写蓝牙AT指令收发

2023-06-15

采集fpga送dvp(BT1120)信号的linux 驱动

dvp采集的linux驱动

2023-05-29

空空如也

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

TA关注的人

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