Linux内存管理
未读
9566bc73a4f46a45ef2708352421383a4b06eeca5dc64faa0f6b9a61cddf9fcc319704f4ac0008a0176b79eee46e27baf82f73ab222b976e8bb7f07d1b21f78df915654f7f611a9aedeed18068655c06975931e79d537ac19ed7f481423861a62cdf1a4ac1c99691dc91028faadbb04f5c053f72a0c9f16133193dbf50aaa2b0737920ab1f25a02aceb3ffc9402ea8daeba7323d84c72692b43b92b5bd8b160892eca4205f9f5975dbb8fffc1501d9bd2c6a136e20341cee002559dc3b3511ae4e2b7f263fea51011d64db2fe52e6ee81a77276da1cf83d9dfd74d6ef4694ff38a037759b23ba5e19a6043bcb157ebe278ac41432364fa79f ...
Linux内存管理
未读
faf0e123ec18af5e14f387e6f70d8c8856bfa72f99945503870552e5bcf382182037a6e11f7069ede186a0a0e4f3bd7fbb2261bdc811c3440e4965c9d2bb006853c22bff59af4c7e4360e9472726354a255d3e0e7a78f4286889853482a1d00da0c5cd1738d4f54eef0bd79933a1fedd3e62f2d2e181348351cd3c1283fb58bf0a5d92f2b86dafe5d97c05c9109b1fc392af605629c5992adef52b4730ec1aa9612aba5a25e8f49adaabebe78b54d82eb513cbd7d2f99ac5acafd185a6eb3ee36e372303a27e7a3b4523c45913cafdfb81739bbac657e0f12628621b45c9c431ebb73bac6507b668fa52e68b29da614e4ec4e039483a062f9 ...
技术分享
未读
一、ACK代码下载123mkdir android-kernel && cd android-kernelrepo init -u https://android.googlesource.com/kernel/manifest -b BRANCHrepo sync
如需查看可与之前的“repo init”命令搭配使用的 repo 分支 (BRANCH) 列表,请参阅内核分支及其构建系统
本文将以android15-6.6的内核代码为例作为演示:
123mkdir android-kernel && cd android-kernelrepo init -u https://android.googlesource.com/kernel/manifest -b common-android15-6.6repo sync
二、ACK编译2.1 使用 Bazel (Kleaf) 构建1tools/bazel build //common:kernel_aarch64_dist
2.2 使用 build.sh(旧版)构建1build/build.sh ...
Linux内存管理
未读
e84e375fc2b94168d3536660a79ff2788a27b75b0a2249d133fefe111db76b7bd36ae7305c631151a9a0daeb7957dd05b60a3c2d4b576df2cb6724cf672c0257fa2bf68a44fd4266e279b40fef0da1747a40412621098e81ef83a3cc38ad6f4e4df3f350f2cf839be32dea07db4a7d216bf020c5645227cd84e4b7e31b590b702d91521c1090bad9c2c35e59967daa7e6b5ec418644a4c166904df08869ee5593733e2f9e26b7b33e0c8d9a4f8448a6a7ddc36a992c5e73c650a438522a1d87629f3e1f85b6295bc6854c767dd0612b55df9470ea21c62ab8751fe8240efa111aedef32127be16ae2f11bbb4fb4160b2dad4a35815ccac077 ...
Linux内存管理
未读
f804d58129937b677177bb5065438d3c891f3bc11652de0847b90baf8c5b40df6d3392f360e51a4073934ec7f961ea6e4e64358c3b9d810b6400b0a5c8fd40d08ebe86516dbb5e0d9438fc69f25fe375bfbd3d0854e67d9ce5b578015d6a0356394ece88858f73e827c35ccff439d04d71fee90d2eb0e72558f3e369f88e35411e48e2594f93619668f42afa640f8a237282eab2b13d47e8aeabf9760e172a23560165c43c2486936599a02e7495acb7b6628d17fa1560c7e7f02c5995dabee26a8f28d965796e3faebd2451cfa960d1e82c016dd21b0ce72d7086bdd5bff89b9249ff1f678d9fcb855f8498702e71c02ba14fd09d2dba23f ...
一、为什么选择搭建博客网站?在数字时代,拥有一个属于自己的博客网站不仅能展示个人才华,还能作为分享生活、交流思想的平台。我个人在工作和学习中记录了一些零散的知识点,目前是通过notion以及飞书知识库进行记录。到了现阶段,本人更希望将自己所学习到的这些零散的知识点汇总,输出一些高质量的文章,供自己总结学习,也方便分享给他人。
博客的框架有很多比如hugo,typecho,以及大名鼎鼎的wordpress等等。那为什么选择hexo这个框架呢?因为自己之前玩过😆 ,相对于其他的博客框架学习成本,我更想专注于博客文章的质量,而不是再花时间精力去学一门新的框架。
Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
对于想要拥有自己的博客网站但又不想花费大量时间和金钱的人来说,Vercel和Hexo无疑是最好的选择。Vercel是一款强大的静态网站托管平台,而Hexo则是一款流行的开源博客框架。通过结合两者的优势,您可以轻松搭建一款外观精美、功能丰富的博客网站。
通过本文的指引,将了解到如何零成本 ...
一、make
以高通的代码为例,高通在编译时使用如下的指令进行编译,实质是对make的封装
12./build.sh --target_only
在执行一系列check的函数后,最终调用make执行执行编译。而make函数是在build/envsetup.sh时声明。
从get_make_command函数可知,make后,真正然后执行编译的入口是:build/soong/soong_ui.bash
二、soong_ui.bash
source microfactory.bash,得到一些函数命令, 例如:soong_build_go
编译/build/soong/cmd/soong_ui/main.go,生成 out/soong_ui这个可执行程序
执行命令:out/soong_ui –make-mode ,执行了make命令,会把”build/make/core/main.mk” 加到构建环境中,同时启动kati、blueprint-soong ...
一、概述在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是Makefile,但是随着Android的工程越来越大,模块越来越多,Makefile组织的项目编译时间越来越长。这样下去Google工程师觉得不行,得要优化。
因此,在Android7.0开始,Google采用ninja来代取代之前使用的make,由于之前的Android.mk数据实在巨大,因此Google加入了一个kati工具,用于将Android.mk转换成ninja的构建规则文件buildxxx.ninja,再使用ninja来进行构建工作。
编译速度快了一些,但是既然要干, 那就干个大的,最终目标要把make都取代,于是从Android8.0开始,Google为了进一步淘汰Makefile,因此引入了Android.bp文件来替换之前的Android.mk。
Android.bp只是一个纯粹的配置文件,不包括分支、循环语句等控制流程,本质上就是一个json配置文件。Android.b ...
Android系统编译之后的打包阶段,会将所有编译出来的有需要的执行文件,库文件以及各种配置文件等打包到各个镜像文件中。有时候我们需要看一下镜像文件中都打包了什么东西,那就可以通过一些方法将其挂载到一个目录,然后进行查看。
一、所用到的工具1.1 simg2img简述:将sparse格式的image文件转化为raw格式的image文件。 编译android源码默认会生成。
路径:out/host/linux-x86/bin/simg2img
如果没有请用如下的指令编出
source build/envsetup.sh lunch miodm_topaz_native-userdebug export OUT_DIR=out && nj simg2img
1.2 lpunpack**简述:**这个工具可以将system.img,product.img,vendor.img等文件从super.img解析出来。
路径:out/host/linux-x86/bin/lpunpack
如果没有请用如 ...
一、前言在面对UEFI阶段代码移植以及开机故障问题,需要对开机启动流程有一定的了解
二、芯片的冷启动Cold boot flow: 冷启动
可以看出,在设备上电后,先跑的是 APPS PBL,接着运行XBL SEC、XBL Loader,通过Loader引出XBL CORE APPSBL,最后进入HLOS
备注:
下面补充点arm架构的知识点,以便可以看懂上图
2.1 异常级别
异常级别
运行的软件
EL0
Application
EL1
Linux kernel- os
EL2
Hypervisor(可理解为上面跑多个虚拟OS)
EL3
Secure Monitor(ARM Trusted Firmware)
ELx(x<4),x越大等级越高,执行特权越高
执行在EL0,称为非特权执行
EL2没有Secure state,只有Non-secure state
EL3 只有Secure state,支持EL0/EL1的Secure 和Non-secure之间的切换
EL0 & EL1 必须要实现,EL2/EL3则是可选实 ...