- 博客(15)
- 收藏
- 关注
原创 MEDIATEK :Preloader && LK Introduction
preloader 到 lk 时序图(mt6580 为例)LK 到 Kernel 时序图
2025-02-24 15:46:49
321
原创 Qcom 平台 USB IPC log 重定向到 kernel 方法
【代码】Qcom 平台 USB IPC log 重定向到 kernel 方法。
2025-02-17 10:40:45
310
原创 Android Bootconfig 说明
在早期的 Android 版本中,我们在 bootloader 阶段传递内核启动参数的方法是:构建内核参数,然后传递到 kernel cmdline。init 进程起来后,会将转换为ro.boot.*属性。在 Android 12 中,新增 bootconfig 功能,用于取代 kernel cmdline 传递内核启动参数的方法。将属性移至 bootconfig 文件,将 Android 用户空间的配置参数与内核的配置参数分开。
2025-02-17 10:38:57
1126
原创 Android 分区挂载 -- Fstab 文件
这个选项通常用于确保系统在文件系统接近满载时仍有足够的空间进行关键操作,例如日志记录、系统更新等,防止普通用户占用这些空间,从而确保系统在文件系统接近满载时仍能正常运行。: 启用元数据加密。,属于 Linux 内核挂载命名空间(Mount Namespace)功能的一部分,常见于需要共享文件系统状态的场景(如容器、共享存储等)。选项后,文件系统将不再更新目录的访问时间戳,从而减少写操作,提高性能。通常情况下,每次访问目录时,文件系统都会更新该目录的访问时间戳,这会导致额外的写操作,从而影响性能。
2025-02-15 17:21:44
968
原创 Android GKI 2.0
Google 定义 KMI 接口把 GKI 以外的其他 module(包括 kernel 原生 module 和 vendor 自定义 module)以 ko 等形式全部分离到 GKI 以外,模块和内核可以独立更新,真正做到了 kernel core 和 driver module 的去耦合化,大幅降低了更新 kernel core 和 driver 的 efforct,同时也会大幅降低未来 SOC/OEM 升级 kernel 大版本时的工作量。选择每月发布候选后,**新的更改将不会被接受到该月的发布中。
2025-02-13 17:04:21
1266
3
原创 [Qcom] What is each partition for?
Qcom platform, What is each parition for?
2025-02-13 14:50:52
311
原创 Qcom 平台 USB vbus 的 2mA 电流是怎么来的?
的调用,你会发现调用的地方比较多,无法确定是在哪一个文件哪一个函数调用的。这种情况下,必须对整个项目代码架构有一定了解,同时对自己模块的只是也要有一定了解,如此才好确认。我们可以看到在 disconnect 的时候,会设置 0 mA 电流,reset 时会设置 100 mA 电流,suspend 时会设置 2 mA 电流。dwc3-msm-core.c 也有调用,但是设置的是 0 mA,所以不用看。充电组反馈,在 usb 连接 pc 的时候,由于 usb 设置了 2mA 电流导致断充。
2025-02-13 14:16:31
395
1
原创 Android Init Language
在 Android 项目开发过程中,我们经常会碰到大量的 .rc 文件,例如:init.rc、 init.mtxxxx.usb.rc 等。这些 .rc 文件究竟是什么?按照什么规则去编写?又如何去被使用的?
2023-03-11 20:09:34
439
原创 TCP/IP体系结构之传输层协议(TCP、UDP)
TCP/IP模型——传输层 本篇文章,篇幅较长,全文大概18000多字,花费了近一周的时间才写完。写这篇文章的原因很简单:在面试中,总是会问到计算机网络方面的问题,而TCP是必不可少的。每一次的回答都不尽满意,甚至有些点自己还不清楚,所以自己决定将传输层协议这一块儿总结一下,相当于是一个再学习过程。如果你碰巧看到了这篇文章,又刚好对传输层协议感兴趣,那么不妨花费一点时间好好看一下,相信会对你有...
2019-11-05 16:21:59
2839
原创 C++异常
异常1. C语言传统的处理错误的方式传统的错误处理机制:终止程序。如 assert,缺陷就是用户难以接受。如发生内存错误,除0错误就会终止程序。返回错误码。缺陷是需要管理员自己去查找对应的错误。如系统的很多的接口函数都是通过把错误码放到 errno 中,表示错误。C 标准库中 setjmp 和 longjmp 组合。但不常用。实际中 C 语言基本都是使用返回错误码的方式处理错误,部...
2019-06-09 12:47:17
240
原创 线性表的链式存储结构--单链表
线性表的链式存储结构——单链表一、线性表链式存储结构定义基本概念:线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组线性单元可以是连续的,也可以是不连续的。线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任意元素。然而,对于顺序表进行插入、删除操作时需要通过移动数据元素来实现,影响了运行效率。而线性表的链式存储结构不需要用...
2019-05-17 20:41:50
1920
原创 找出字符串只出现一次的字符
找出字符串中只出现一次的字符题目描述:输入一个非空字符串,输出该字符串第一个只出现一次的字符。若不存在,则输出-1。解题思路:我们需要统计字符出现的次数,然后输出第一个只出现一次的字符。本体的关键在于如何保存每个字符出现的次数。我们创建一个数组char[256] = { 0 },然后利用该数组来保存字符出现的次数。利用for循环来统计每个字符出现的次数。再一次利用for循环输出第...
2019-05-17 20:36:29
4689
原创 打印100~200之间的素数
打印100~200之间的素数首先,我们需要了解什么是素数?素数也叫质数,其定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。那么,我们应该如何判断一个数是否为素数呢?方法一:假设需要判断的数为i,用i分别除以2~(i-1)之间的每一个数。若余数为0,则不是素数。#include <stdio.h>#include <stdlib.h>int ma...
2019-05-17 20:24:28
264
原创 C语言的基本概念
C语言的基本概念一、C语言的程序结构对于C程序来说,通常包括下列3个步骤。预处理。首先程序会被交给预处理器。预处理器执行以#开头的命令(通常称为指令)。编译。修改后的程序会进入编译器。编译器会将程序翻译成机器指令。链接。链接器把由编译器产生的目标代码和所需的其他附加代码整合在一起,最终产生完全可执行的程序。上述过程往往是自动实现的,我们把关注放在程序本身。那么让我们先看看一段简单的...
2019-05-17 20:22:39
631
原创 C语言概述
C 语言概述1.1 C语言的历史C语言是贝尔实验室的Ken Thompson、Dennis Ritchie等人开发的UNIX操作系统的“副产品”。与同时代的其他操作系统一样,UNIX系统最初也是用汇编语言编写的。用汇编语言编写的程序往往难以调试和改进,UNIX系统也不例外。Thompson意识到需要用一种更高级的编程语言来完成UNIX系统未来的开发,于是他设计了一种小型的B语言1。不久,Rit...
2019-05-17 20:20:02
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人