[Android稳定性] 第054篇 [方法篇] 高通平台如何解析ADSP Crash? 4月前查看 评论
[Android稳定性] 第054篇 [方法篇] 高通平台如何解析ADSP Crash?

本文主要介绍了使用crashman工具解析adsp的方法。首先,需要准备crashman工具、python环境和perl工具。然后,准备解析所需的三个部分:fulldump中的DDRCS0_0.BIN、bp symbols和adsp源码。接下来,通过执行特定的python命令进行解析,并使用ONEMORE集成工具中的adsp crash解析插件来简化解析过程。安装插件前需安装基础工具包。最后,根据工具选项卡中的选项填写相关信息,点击运行即可进行解析。

ONEMORE开源软件插件开发指南 4月前查看 1 条
ONEMORE开源软件插件开发指南

OneMore 是一款高度自定义的集成工具,由 PyQt6 和 fluent-widgets 开发,采用侧边导航栏和新建标签页的方式呈现工具功能。OneMore 框架设计包括通用接口、资源文件、主窗口、界面设计界面、账号登录界面、设置界面、通用工具和插件安装目录等。已实现功能包括登录界面、设置界面、导航栏、标签页、插件执行页面、插件市场和软件在线更新插件功能。插件开发指南包括插件组成元素、插件 interface 和插件上传。OneMore 遵循 GPL 协议,允许二次开发,但必须标注原作者。

高通以及MTK平台内核单独编译ko的原理 4月前查看 评论
高通以及MTK平台内核单独编译ko的原理

这篇文章主要讨论了在Android项目开发中,如何进行内核模块(ko)的编译和打包到image中。文章首先介绍了ko编译原理,包括树外驱动和树内驱动的编译过程,并分别以高通平台和MTK平台为例进行了详细说明。 对于树外驱动,文章提到了高通平台中使用的ko编译模板`Build_external_kernelmodule.mk`,并解释了其核心指令`build_module.sh`的使用方法。同时,文章也提到了MTK平台的ko编译模板`build_ko.mk`,并指出了MTK项目中目前仍然使用make进行编译。 对于树内驱动,文章以高通平台为例,展示了如何使用bazel进行内核编译,并解释了相关指令的含义。同时,文章也提到了向内核编译时传递参数的方法。 接下来,文章讨论了ko如何打包到image中。文章指出,ko会被打包到`vendor_dlkm.img`中,并最终merge到`super.img`中。文章还介绍了如何通过`make vendor_dlkmimage`命令编译`vendor_dlkm.img`,并通过fastboot命令将其刷入设备。 最后,文章提醒读者注意,由于Android版本和kernel版本的变化,编译方式和产物路径可能会有所差异,因此本文仅供参考。

[Linux进程调度] 第001篇 一篇文章全面了解Linux进程调度 5月前查看 评论
[Linux进程调度] 第001篇 一篇文章全面了解Linux进程调度

进程调度是操作系统确保进程高效运行的核心机制,决定哪个处于运行状态的进程能够投入运行以及运行时间。Linux 2.6内核引入了内核抢占特性,允许多个执行流交叉执行。进程和线程的生命周期包括创建、就绪、执行、阻塞和终止状态。多任务操作系统分为非抢占式和抢占式,后者如Unix系统允许调度程序强制挂起进程,分配执行机会给其他进程。Linux进程调度围绕`task_struct`数据结构,包含进程状态、优先级、时间片、调度策略等信息。调度器类负责管理不同类型的进程,如完全公平调度(CFS)、实时调度等。CFS使用红黑树组织进程队列,根据虚拟运行时间调度,保证公平性。实时调度类包括循环进程和先进先出进程,分别采用时间片轮转和先进先出机制。内核抢占允许在特定条件下中断当前进程,执行更高优先级的任务。SMP调度支持负载均衡、CPU亲和性设置、进程迁移等功能。

任务调度器:从入门到放弃(二) 5月前查看 评论
任务调度器:从入门到放弃(二)

这篇文章主要讨论了Linux内核中的线程调度策略,特别是针对多核异构架构(如Big.Little)的任务分配问题。作者分析了CFS(完全公平调度器)的工作原理,包括如何根据线程的优先级和虚拟运行时来分配CPU资源。文章指出,调度器是基于事件驱动的,而不是实时监控所有线程的状态,这导致了调度策略的实际效果与理论模型之间存在差异。 此外,文章还介绍了两种负载跟踪模型:PELT和WALT。PELT考虑了所有过去运行时间的负载,而WALT则将时间划分为窗口,通过统计线程在每个窗口的运行时间来计算负载。两种模型各有优缺点,PELT可能对非周期性负载不够敏感,而WALT可能会因为窗口划分而低估某些负载。 最后,作者提出了一个关于任务分配的问题:在Big.Little架构下,是否应该严格遵循“大任务跑大核,小任务跑小核”的原则。文章指出,这取决于任务的负载和CPU的能效曲线,并非所有情况下都适用。

从泡泡马特看“消费” 5月前查看 1 条
从泡泡马特看“消费”

本文主要探讨了泡泡玛特的成功案例,从创始人王宁的个人特质、泡泡玛特的市场策略、以及结构性机会三个方面进行了深入分析。王宁展现出了“狠、软、灵、巧”的复合特质,泡泡玛特通过“盲盒+IP”的玩法,将潮玩从小众文化变成了大众消费品,并成功抓住了中国市场的实验性和中国制造的丰饶两个结构性机会。文章还分析了情绪消费的心理机制,认为泡泡玛特的成功在于其将“低门槛+高不确定性”的心理机制设计成了一套令人欲罢不能的上瘾模型,并将这个“液态时代”的集体焦虑,升华为一种可供消费和展示的身份符号。