- 博客(29)
- 资源 (1)
- 收藏
- 关注
转载 USB-PD 协议
USB-PD(Power Delivery)是基于USB Type-C的一种电源供电标准,最大供电功率可达100瓦(W);随着USB Type-C的普及,越来越多的设备(手机、平板、显示器、工作站、充电器等)使用USB-PD快速充电方案。1、USB Type-C简介 Type-C是USB接口的一种形式,不分正反两面均可插入,支持USB标准的充电、数据传输、视频...
2021-07-30 16:30:29
12354
3
转载 BC1.2协议
BC1.2定义 BC1.2 (Battery Charging v1.2)是USB-IF下属的BC(Battery Charging)小组制定的协议,主要用于规范电池充电的需求,该协议最早基于USB2.0协议来实现。 BC1.2充电端口 USB2.0协议规定外设从USB充电器抽取电流的最大值为500mA,500mA的电流限制无法满足日益增长的快充需求。因此,BC1.2引入了充电端口识别机制,主要包括以下几个USB端口类型: 1.标准下行端口(...
2021-04-20 09:46:24
2645
原创 lora 数据完整性校验方案
lora 数据完整新校验方案针对两个lora模块之间的数据完整性校验,不包含级联情况:消息头同步:12个字节消息头标识+该包数据总长度+该数据包的CRC16| 0x5A5A5A5A |len|CRC16|原理:发送端首先发送第一包数据消息头,接收端根据收到的消息头,获取数据包长度,然后接收对应长度的数据包,如果存在一包消息头不对,则请求发送端,重新同步消息头。2 .数据包切片发送按照8字节一个发送包切片,pkts = len/8;reminder = len%8;while(1)
2021-03-10 14:24:46
1120
原创 高通GPIO Debug
For PMIC need to operate the register.cd /d/regmap/spmi0-00echo 0xc046 > address //0xc046 =gpio1 0xc047=gpio2echo 0x1 > countecho 0x80 >data主芯片qcom MSMXXXXGPIO_106GPIO_171.给权限adb rootadb shellsu2.将gpio所有端口号以及功能列出cat /sys/kernel/debug/
2021-02-08 10:01:33
1380
转载 深入讲解Android Property机制
深入讲解Android Property机制 侯亮 1 概述 Android系统(本文以Android 4.4为准)的属性(Property)机制有点儿类似Windows系统的注册表,其中的每个属性被组织成简单的键值对(key/value)供外界使用。 &...
2021-02-07 10:31:35
1667
翻译 安卓功耗问题初步分析
SuspendMediatek 完全使用Android Suspend框架 1、Suspend Flow 从灭屏到CPU进入suspend的大体流程框架如下:。虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)。理解不深刻的人会认为虚拟内存只是“使用硬盘空间来扩展内存“的技术,这是不对的。虚拟内存的重要意义是它
2020-12-04 18:41:39
492
转载 安卓待机异常
待机异常篇待机异常篇待机异常 1: 按Power key后,连early_suspend都没进。待机异常 2: 能够进early_suspend。但进不了suspend待机异常 3: 能够进suspend,但出现:PM: Some devices failed to suspend待机异常 4: 能够进入到suspend_enter,suspend流程走完了。但非常快被唤醒待机异常 5: 能够进入到suspend_enter,也不被唤醒,但电流非常大。CPU也较烫 关于...
2020-11-20 17:43:00
1166
原创 Lora组网
1、点对点 点对点组网模式比较好理解,两个模块一收一发,不会存在区分模块的问题。 2、星型 星型组网的话就要涉及到区分模块(这里指的是节点)的问题,由于lora模块本身只处理无线通信问题,并且它的通信都是广播的,主从模式都是自动切换的,这里就体现出的他的另一种组网模式(中继,下面再说)在星型组网下,只有发数据的一个节点是主机模式,其他模块在接受的时候都会主动切换到从机模式,并且在接受范围内的所有节点都会收到发送的数据,因此在这种组网下,每一个接待你都需要有过滤数据的能力,可以在单片机上实现报过滤,和
2020-10-29 11:02:53
7966
6
转载 LoRa资料
1.) 什么是LoRa调制? LoRa (Long Range,远距离)是一种调制技术,与同类技术相比,提供更长的通信距离。调制是基于扩频技术,线性调制扩频(CSS)的一个变种,具有前向纠错(FEC)。LoRa显著地提高了接受灵敏度,与其他扩频技术一样,使用了整个信道带宽广播一个信号,从而使信道噪声和由于使用低成本晶振而引起频率...
2020-10-28 11:55:13
1647
原创 get_boot_mode逐步丢弃
从Android R(kernel-4.19)开始使用common kernel,一些旧的接口逐步丢弃,如get_boot_mode采用新的方式,Get bootmode from device tree property “atag,boot”Android R 获取启动模式的接口可以使用如下方法:```cint get_boot_mode(void){ struct device_node *np_chosen; struct tag_bootmode *tag
2020-10-09 21:09:20
768
转载 SD卡开发文档
文章转自http://www.51hei.com/mcu/4125.html 1、简介 SD卡是基于flash的存储卡。 SD卡和MMC卡的区别在于初始化过程不同。 SD卡的通信协议包括SD总线和SPI两类。 SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。 通信电压范围:2...
2020-09-22 14:36:25
647
原创 vbmeta.img镜像生成
vbmeta镜像的作用:验证启动(Verified Boot)是Android一个重要的安全功能,主要是为了访问启动镜像被篡改,提高系统的抗攻击能力,简单描述做法就是在启动过程中增加一条校验链,即 ROM code 校验 BootLoader,确保 BootLoader 的合法性和完整性,BootLoader 则需要校验 boot image,确保 Kernel 启动所需 image 的合法性和完整性,而 Kernel 则负责校验 System 分区和 vendor 分区。由于 ROM code 和 B
2020-09-21 20:24:59
19139
3
原创 Android Verified Boot 2.0 ---- 摘自说明文档
Android Verified Boot 2.0This repository contains tools and libraries for working with AndroidVerified Boot 2.0. Usually AVB is used to refer to this codebase.Table of ContentsWhat is it?The VBMeta structRollback ProtectionA/B SupportThe VBMeta
2020-09-21 19:18:48
883
原创 MTK fastboot代码流程
一、进fastboot之前bootloader入口文件为vendor\mediatek\proprietary\bootable\bootloader\lk\arch\arm arch\arm\crt0.S,前面的是一些环境和硬件的初始化,我们直接从kmain:”bl Kmain“开始,该函数位于main.c文件中。kmain()—>bootstrap2()—>apps_init()void kmain(void){ … 初始化环境的一系列的init thread_t *threa
2020-09-17 16:34:19
3122
转载 Android OTA升级原理和流程分析(九)---updater-script脚本语法简介以及执行流程
转载自:http://blog.youkuaiyun.com/mu0206mu/article/details/7465603 目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制。一、upda...
2020-09-11 10:37:15
1309
3
转载 Android OTA升级原理和流程分析(八)---升级程序update_binary的执行过程
转载自:http://blog.chinaunix.net/uid-22028566-id-3533857.html一、update_binary的执行过程分析 上一篇幅中的子进程所执行的程序binary实际上就是update.zip包中的update-binary。我们在上文...
2020-09-11 10:36:00
1229
转载 Android OTA升级原理和流程分析(七)---Recovery服务的核心install_package函数
转载自:http://blog.chinaunix.net/uid-22028566-id-3533856.html一、Recovery服务的核心install_package(升级update.zip特有) 和Recovery服务中...
2020-09-11 10:35:14
737
转载 Android OTA升级原理和流程分析(六)---Recovery服务流程细节
转载自:http://blog.chinaunix.net/uid-22028566-id-3533855.html Recovery服务毫无疑问是Recovery启动模式中最核心的部分。它完成Recovery模式所有的工作。Recovery程序对应的源码文件位于:/...
2020-09-11 10:34:12
964
转载 Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下载到/CACHE分区);  ...
2020-09-11 10:32:56
1162
转载 Android OTA升级原理和流程分析(四)---Android系统Recovery模式的工作原理
转载自:http://blog.chinaunix.net/uid-22028566-id-3533853.html 在使用update.zip包升级时怎样从主系统(main system)重启进入Recovery模式,进入Recovery模式后怎样判断做何种操作,以及怎样获得...
2020-09-11 10:32:00
944
转载 Android OTA升级原理和流程分析(三)---Android系统的三种启动模式
转载自:http://blog.chinaunix.net/uid-22028566-id-3533851.html 以下的篇幅开始分析我们在上两个篇幅中生成的update.zip包在具体更新中所经过的过程,并根据源码分析每一部分的工作原理。一、 &n...
2020-09-11 10:30:46
1628
转载 Android OTA升级原理和流程分析(二)---update.zip差分包问题的解决
转载自:http://blog.chinaunix.net/uid-22028566-id-3533849.html 在上一篇末尾提到的生成差分包时出现的问题,现已解决,由于最近比较忙,相隔的时间也比较长,所以单列一个篇幅提示大家。这个问题居然是源码中的问题,可能你已经制作成功了,...
2020-09-11 10:29:43
2019
转载 Android OTA升级原理和流程分析(一)--update.zip包的制作
转载自:http://blog.chinaunix.net/uid-22028566-id-3533848.html这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动...
2020-09-11 10:27:40
1929
原创 Android系统分区介绍
Android系统分区介绍hboot——系统开机引导类似电脑BIOS,这块刷错手机就会变成砖radio——通讯模块、基带、WIFI、Bluetooth等衔接硬件的驱动软件 model分区recovery——系统故障时负责恢复boot——Linux嵌入式系统内核system——系统文件、应用cache——系统运行时产生的缓存userdata——用户使用APP产生的缓存数据几个关键分区:/boot它由 kernel 和 ramdisk 构成,内核就这这里/system这个分区包含了整个
2020-09-09 15:06:03
3304
原创 安卓升级包update.zip的制作
update.zip包的制作一、 update.zip包的目录结构|----boot.img|----system/|----recovery/|----recovery-from-boot.p|----etc/|----install-recovery.sh |---META-INF/|CERT.RSA|CERT.SF|MANIFEST.MF|----com/|----google/|----android/|----update-binary|----updater-script|-
2020-09-09 15:01:22
5749
1
原创 如何确认芯片是被MTK验证过
如何确认芯片是被MTK验证过MTK 平台和高通平台在器件选型时都要求选择已经验证过的器件。第一步需要QVL验证1) 根据硬件原理图和厂家的芯片资料, 确定EMMC 和DDR 2+32,型号如下:memory 2+32GB LPDDR4X KM4X6001KM-B321 Samsung2+32GB LPDDR4X 32EMCP16-ML4ATB29-A91 Kingston2)、到MTK 网站https://onlinesso.mediatek.com/qvl/_layouts/15/m
2020-09-08 15:13:29
1613
原创 Const的用法及作用
constconst全名 Constant意为:常数,常量。const修饰变量,其作用也在编译阶段,告诉编译器,该变量我私定终身了(Tips:编译四个阶段:1预处理define\include\条件编译等;2编译;3汇编;4链接),在以后的运行过程中,休的胡来。const和define功能类似但是它们是有区别的,比如说:作用的阶段,一个在预处理,一个在编译;define定义的就是个常量,而c...
2020-03-15 15:54:55
1456
2
原创 volatile的用法和作用
**volatile**首先volatile修饰的变量,作用在编译阶段,影响编译出的结果,其修饰的变量是随时可能被修改的,volatile告诉编译器,这个变量是重要人物,不要偷懒的去走捷径,每次认认真真的去从内存拿值。举个简单的例子:求平方:int square(volatile int *ptr){return *ptr * *ptr;}假如在你做运算的时候,外部函数将ptr...
2020-03-14 17:28:53
926
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人