- 博客(17)
- 收藏
- 关注
原创 博客摘录「 201_DMA-BUF简单介绍」2024年8月22日
所有的内存分配都是从通过访问同一个字符设备 /dev/ion 来完成的。对于DMA-BUF heap来说,每个DMA-BUF heap都对应生成一个位于/dev/dma_heap/<heap_name> 的字符设备,因此可以通过 sepolicy 单独控制对每个堆的访问权限。DMA-BUF heap可通过不同的字符设备名控制访问权限,三、ION heap和 DMA-BUF heap的区别。(heap id和heap flag)才能进行分配。DMA-BUF heap只需要。ION heap来说,
2024-08-22 17:14:41
251
原创 linux下查看文件属性命令
如果文件被 chattr +i 添加了写保护,用lsattr可以看到添加的属性。ls -l 查看详细的属性。ls -a 查看所有文件。查看文件的扩展属性,
2024-08-15 16:24:32
225
原创 博客摘录「 [kernel 启动流程] (第二章)第一阶段之——设置SVC、关闭中断」2024年8月11日
设备树是一种描述硬件信息的数据结构,它以树状形式呈现,包含 CPU、总线、外设等节点和属性。在嵌入式系统中,由于硬件配置复杂且多样,使用设备树可以将硬件描述从内核代码中分离出来,使得相同的内核映像能够支持不同的硬件配置。设备树文件(.dtb)是通过对设备树源文件(.dts)进行编译生成的二进制格式文件,在 Linux 内核启动过程中,使用标记列表(tagged list)来传递启动参数。tags 是一种传统的方式来向内核传递数据,在启动时通过一系列的 tag 遍历并解析这些参数。验证tags或者dtb。
2024-08-11 16:39:31
175
原创 博客摘录「 linux内核镜像的加载地址和入口地址」2024年8月4日
uboot引导linux内核镜像(uImage)启动时,会有2个地址加载地址(Load Address),即内核镜像整体要放置的内存空间位置入口地址(Entry Point),即从内核镜像中开始执行的地址示意图如下,其中,内核镜像的加载地址是100,入口地址是180,也就是说内核镜像本身要加载到内存地址为100的地方,然后从地址180开始执行内核代码(一般是_start指示的tag位置)。
2024-08-04 14:25:20
227
1
原创 博客摘录「 [kernel 启动流程] (第一章)概述」2024年8月4日
数据Cache一定要关闭,否则可能kernel刚启动的过程中,去取数据的时候,从Cache里面取,而这时候RAM中数据还没有Cache过来,导致数据预取异常。
2024-08-04 14:15:39
96
原创 vscode ssh远程服务器失败
说需要需要回退vscode版本,这个是官方的解法之一,另一个方法是将版本回退到1.15(这个太离谱了),那我又下载1.85版本的vscode,并下载其commit号对应的vscoder server,这个其实没有用到。由于开发调试云需要迁移,在新环境(服务器)在下载好代码后,在本地机器试用vscode 远程看服务器代码,发现ssh链接超时,最终排查是vscode在新的服务器上安装vscoder server失败,估计是下载超时,解问题,始于问题报错,忠于问题报错,终于问题报错,KO。有上网搜索,在博文(
2024-02-06 01:23:44
945
原创 博客摘录「 Android apk签名原理」2024年1月9日
签名是摘要与非对称密钥加密相相结合的产物,摘要就像内容的一个指纹信息,一旦内容被篡改,摘要就会改变,签名是摘要的加密结果,摘要改变,签名也会失效。Android APK签名也是这个道理,如果APK签名跟内容对应不起来,Android系统就认为APK内容被篡改了,从而拒绝安装,以保证系统的安全性。2、验证数据保证不被篡改,防止应用被恶意的第三方覆盖。1、使用特殊的key签名可以获取到一些不同的权限。二是确保消息不会被第三方篡改。一是确保消息来源的真实性,一、什么是apk签名。
2024-01-09 21:02:56
445
原创 博客摘录「 Android8.0 Fingerprint指纹启动流程详细分析」2023年11月19日
是FingerprintManager.java通过AIDL,binder通信,和FingerprintService.java进行了通信。
2023-11-19 21:51:35
226
原创 博客摘录「 05-QUP(一)」2023年11月12日
EMAC可以通过MDIO接口与PHY进行通信,以便识别PHY的类型并进行相应的配置。在一些网卡芯片中,MAC和PHY的功能被集成在同一颗芯片中,但它们的机制仍然是单独存在的。--EMAC是以太网控制器(Ethernet Media Access Controller)的缩写,是一种用于。
2023-11-12 14:41:23
116
原创 博客摘录「 内核数据结构 —— 内核队列 (kfifo)」2023年6月4日
内存屏障使用内存屏障(Memory Barrier)技术,实现单消费者和单生产者对kfifo的无锁并发访问,多个消费者、生产者的并发访问还是需要加锁。
2023-06-04 18:59:38
168
原创 博客摘录「 Linux设备树解析」2023年5月21日
总的来说,kernel根据Device Tree的文件结构信息转换成struct property结构体,并将同一个node节点下面的所有属性通过property.next指针进行链接,形成一个单链表。
2023-05-21 11:15:49
138
1
原创 博客摘录「 设备树信息的解析」2023年5月21日
设备树(device tree)是描述硬件信息的一种树形结构,设备树文件。描述一个硬件设备信息的节点我们叫做设备树节点,一个。设备节点内部包含当前硬件的多个不同属性。,相同节点不同属性是以链式结构存储。在linux内核启动后。
2023-05-21 08:45:27
133
1
原创 GCC编译错误分析 collect2: error: ld returned 1 exit status
这个错误很明显,就是调用的函数“myfree”没有定义,我原来是误将“myFree”写为“myfree”,两者太像了,感觉应该没有错啊,找了老半天,发现这个低级错误前,一直盯着提示“collect2: error: ld returned 1 exit status”,这提示的含义就是编译连接时,没有找到先关的文件,可以参考这个博文,,里面总结了很多关于报此类错误的场景,对照这个出错的总结,我查询自己代码是否有“”的情况,我的文件目录很简单,查了之后觉得不应有,也确实没有。"myfree"函数定义。
2022-11-26 22:32:23
5537
原创 解决运行python脚本报错:ModuleNotFoundError: No module named ‘numpy‘
报错:Traceback (most recent call last): File "get_kpi.py", line 2, in <module> import numpy as npModuleNotFoundError: No module named 'numpy'环境:Ubuntu 18.04.6 LTSPython 3.6.9arch x86_64解决:参见这个博客,ModuleNotFoundError: No module na...
2022-05-19 22:30:05
5458
原创 C语言中char数组与char*指针的sizeof()与strlen()关系
C语言中字符串(指针指向的与数组容纳的)的sizeof()与strlen()关系
2022-04-16 20:47:07
2475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人