07 2021 档案

摘要:DMA是计算机系统的一个特性,它允许设备在没有CPU干预的情况下访问主系统内存RAM,然后允许它们投入到其他任务中。人们通常使用它来加速网络流量,但它支持任何类型的拷贝。 DMA控制器是负责DMA管理的外围设备。主要在现代处理器和微控制器中能看到它。DMA有一个用于执行内存读写操作而不占用CPU周期 阅读全文
posted @ 2021-07-23 19:30 闹闹爸爸 阅读(3572) 评论(0) 推荐(0) 编辑
摘要:Devres是一个内核设施,通过自动释放驱动程序中分配的资源来帮助开发人员。它简化了init/probe/open函数中的错误处理。使用Devres,每个资源分配器都有自己的托管版本,负责资源的 release 和 free。 本文严重依赖内核源代码树中的Documentation/drivermo 阅读全文
posted @ 2021-07-22 16:07 闹闹爸爸 阅读(712) 评论(0) 推荐(1) 编辑
摘要:高速缓存是将频繁访问或新写入的数据从一个小而快的内存中取出或写入的过程,这个过程称为高速缓存。 脏内存是数据支持的(例如文件支持的)内存,其内容已被已修改(通常在缓存中)但尚未写回磁盘。 缓存的版本数据比磁盘版本新,这意味着两个版本不同步。 将缓存数据写回磁盘(后备存储)的机制称为回写。 我们最终将 阅读全文
posted @ 2021-07-22 15:20 闹闹爸爸 阅读(666) 评论(0) 推荐(0) 编辑
摘要:内核内存有时需要重新映射,从内核到用户空间,或者从内核到内核空间。常见的用例是将内核内存重新映射到用户空间,但是当您需要访问高端内存时,也有其他情况。 kmap Linux内核将其地址空间的896 MB永久地映射到低896 MB的物理内存(低端内存)。在一个4 GB的系统上,内核只剩下128 MB来 阅读全文
posted @ 2021-07-21 18:06 闹闹爸爸 阅读(2783) 评论(0) 推荐(0) 编辑
摘要:除了执行面向数据RAM的操作外,您还可以执行I/O内存事务来与硬件进行通信。当涉及到访问设备的寄存器时,内核根据系统架构提供了两种可能性: 通过I/O端口:这也称为端口输入输出(PIO)。寄存器可以通过专用总线访问,并且需要特定的指令(通常在汇编程序中)来访问这些寄存器。这是x86体系结构上的情况。 阅读全文
posted @ 2021-07-20 18:19 闹闹爸爸 阅读(3331) 评论(0) 推荐(0) 编辑
摘要:让我们看一下下面的图,它向我们展示了存在于基于linux的系统上的不同内存分配器,稍后讨论它。 内核内存分配器概述 有一种分配机制可以满足任何类型的内存请求。根据你需要什么样的内存,你可以选择一个最接近你的目标。主要的分配器是页分配器,它只处理页(页是它能交付的最小内存单元)。然后是SLAB分配器, 阅读全文
posted @ 2021-07-19 18:38 闹闹爸爸 阅读(2915) 评论(0) 推荐(0) 编辑
摘要:地址转换和MMU 虚拟内存是一个概念,是给进程的一种错觉,因此它认为自己拥有巨大的、几乎无限的内存,有时甚至比系统实际拥有的内存还要多。每次访问内存位置时,由CPU将虚拟地址转换为物理地址。这种机制称为地址转换,由内存管理单元(MMU)完成,是CPU的一部分。 MMU保护内存免受未经授权的访问。给定 阅读全文
posted @ 2021-07-19 18:36 闹闹爸爸 阅读(1167) 评论(0) 推荐(0) 编辑
摘要:SMP多核启动 在Linux系统中,对于多核的ARM芯片而言,在Bootrom代码中,每个CPU都会识别自身ID,如果ID是0,则引导Bootloader和Linux内核执行,如果ID不是0,则Bootrom一般在上电时将自身置于WFI或者WFE状态,并等待CPU0给其发CPU核间中断或事件(一般通 阅读全文
posted @ 2021-07-14 16:27 闹闹爸爸 阅读(480) 评论(0) 推荐(1) 编辑
摘要:一、准备工作 准备一个U盘, 并格式化为FAT32格式。 U盘格式化完成以后,把UEFI Shell下EC Firmware更新工具ifu231.efi拷贝到U盘根目录中,把要更新的EC Firmware拷贝到U盘根目录中。 二、EC Frimware更新 把U盘插到主机的USB口,按电源按钮开机, 阅读全文
posted @ 2021-07-08 18:54 闹闹爸爸 阅读(1482) 评论(0) 推荐(0) 编辑
摘要:更改kernel config配置,如下: # make menuconfig_public_linux Kernel hacking > [*] Kernel debugging Compile-time checks and compiler options > [*] Compile the 阅读全文
posted @ 2021-07-08 18:18 闹闹爸爸 阅读(245) 评论(0) 推荐(0) 编辑
摘要:解决办法 方法一 CTRL+Backspace(即按住ctrl键的同时按Backspace键进行删除)。 方法二 取消勾选 Edit Session -> Terminal settings -> Backspace sends ^H ,如下图所示: 如果是SecureCRT的话,勾选Termina 阅读全文
posted @ 2021-07-08 18:11 闹闹爸爸 阅读(1303) 评论(0) 推荐(1) 编辑
摘要:在使用aarch64-linux-gnu-gdb调试kernel的时候,执行 aarch64-linux-gnu-gdb ./vmlinux 时,出现了如下错误: aarch64-linux-gnu-gdb: error while loading shared libraries: libncur 阅读全文
posted @ 2021-07-08 17:13 闹闹爸爸 阅读(5045) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示