摘要: 1 DMA简介 DMA是Direct Memory Access的缩写,顾名思义,就是绕开CPU直接访问memory的意思。在计算机中,相比CPU,memory和外设的速度是非常慢的,因而在memory和memory(或者memory和设备)之间搬运数据,非常浪费CPU的时间,造成CPU无法及时处理 阅读全文
posted @ 2020-12-13 18:02 johnliuxin 阅读(3542) 评论(1) 推荐(0)
摘要: 5 内存调试 很多系统的稳定性问题与内存相关, 特别是内存的越界访问, 本节介绍几种kernel原生的内存调试技术 5.1 Page_Owner 5.1.1 原理介绍 page_owner的目的是存储页面分配时的调用栈信息, 这样我们就能知道每个一个页面是由谁分配的. 要实现这个目的, 得回答3个问 阅读全文
posted @ 2020-12-13 18:01 johnliuxin 阅读(2539) 评论(0) 推荐(0)
摘要: 4 FAQs 4.1 Flags: 与内存管理系统相关的各种flags汇总如下:  每个物理page有自己的flags, 定义在struct page -> unsigned long flags; 详情见2.2.2节的《page》  每个内存块(多个page组成一个内存块)有自己的pagebl 阅读全文
posted @ 2020-12-13 18:00 johnliuxin 阅读(326) 评论(0) 推荐(0)
摘要: 3 虚拟内存管理 虚拟内存管理主要涉及3个方面: 虚拟空间分配; 物理页帧分配; 建立页表, 把两者关联起来. 这3者不一定要同时运作, 例如:  可以只分配虚拟地址, 暂不分配物理页帧和建立页表. 只有当CPU访问虚拟地址, 发现它没有关联到物理页帧时, 才会通过缺页处理(page fault 阅读全文
posted @ 2020-12-13 17:59 johnliuxin 阅读(644) 评论(0) 推荐(0)
摘要: 2 物理内存管理 2.1 概述 整个内存管理系统可以分为2部分来看待: 第一部分是对物理内存的管理, 第二部分是对虚拟内存的管理. 物理内存管理的对象是板载的物理内存(DDRAM), 它把物理内存按页划分, 并把这些页放到一个池子里面. 物理内存管理的目的就是提供API给到内存消费者, 消费者在需要 阅读全文
posted @ 2020-12-13 17:58 johnliuxin 阅读(1078) 评论(0) 推荐(0)
摘要: 1 概念介绍 1.1 地址&地址空间 假设我们有一块板子, CPU是ARM的32位处理器, 板载的DDRAM位2GB. 以此为背景, 我们来讨论一些基础概念. 1.1.1 物理地址&物理寻址&物理地址空间 物理地址 在上述背景中, DDRAM可以理解为由M(2*1024*1024*1024)个连续的 阅读全文
posted @ 2020-12-13 17:57 johnliuxin 阅读(487) 评论(0) 推荐(0)
摘要: 1. 文档结构介绍 首先对Device Tree的背景进行介绍, 描述为何要使用device-tree, 它有什么作用. 然后介绍Device Tree的语法格式, 让你能看懂一个device tree source file, 并修改这个file. 然后介绍如何把人能读懂的device tree 阅读全文
posted @ 2020-12-13 17:56 johnliuxin 阅读(487) 评论(0) 推荐(0)
摘要: 1. 文档结构介绍 首先, 第2章会给出整个设备模型的整体框架. 然后, 第3章介绍sysfs, 了解它有助于我们理解设备模型到底在做什么. 接着, 第4, 5, 6章描述设备模型的基础概念, 驱动开发中基本上不会看到这些基础, 不过我们必须先理解它们, 才能更好的理解后续内容. 然后, 第7章简单 阅读全文
posted @ 2020-12-13 17:55 johnliuxin 阅读(955) 评论(0) 推荐(0)
摘要: 1 文档结构介绍 本文先会介绍打印式调试技术, 也就是用类似printf的方式打印信息, 然后查看信息, 在调试驱动的过程中, 我们经常会用到这种方式. 然后会介绍查询式调试方式, 这种方式一般是在用户空间来查询内核信息. 最后会介绍调系统故障的几种方式: gdb如何使用, oops错误如何调试等. 阅读全文
posted @ 2020-12-13 17:51 johnliuxin 阅读(884) 评论(0) 推荐(0)
摘要: 1. 文档结构介绍 并发(Concurrency)是Linux内核中经常会发生的事情. 并发会引起竞态(Race)和阻塞(Block)的问题. 首先, 我们看一个并发引起竞态示例, 对并发有个大致印象, 看看竞态会引起那些问题. 然后, 我们会详解介绍并发, 竞态, 阻塞与休眠的概念. 接着, 我们 阅读全文
posted @ 2020-12-13 17:48 johnliuxin 阅读(608) 评论(0) 推荐(0)