自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

转载 Linux内核同步机制之Per-CPU变量

本文转自http://www.wowotech.net/kernel_synchronization/per-cpu.html。蜗窝出品,必属精品。一、源由:为何引入 Per-CPU 变量?1、lock bus 带来的性能问题 在 ARM 平台上,ARMv6 之前,SWP 和 SWPB 指令被用来支持对 shared memory 的访问:SWP <Rt>, <Rt2>, [<Rn>]Rn 中保存了 SWP 指令要操作的内存地址,通过...

2021-05-15 13:35:29 926

转载 编译乱序(Compiler Reordering)

本文转自http://www.wowotech.net/kernel_synchronization/453.html。蜗窝出品,必属精品。编译器(compiler)的工作就是优化我们的代码以提高性能。这包括在不改变程序行为的情况下重新排列指令。因为 compiler 不知道什么样的代码需要线程安全(thread-safe),所以compiler假设我们的代码都是单线程执行(single-threaded),并且进行指令重排优化并保证是单线程安全的。因此,当你不需要 compiler 重新排序指令的时.

2021-01-31 17:49:20 425

原创 Linux内核同步机制之基本概念

一、概述

2021-01-31 16:57:47 1610 4

转载 Linux内核同步机制之原子操作

本文转自http://www.wowotech.net/linux_kenrel/atomic.html,在作者原文基础上(黑体),加入自己的阅读理解(红色字体),形成学习笔记并记录于此。蜗窝科技,如果你是一位 Linux 驱动开发工程师,那么强烈建议把它加到你的收藏夹,干货实在是太多。一、源由 我们的程序逻辑经常遇到这样的操作序列:1、读一个位于 memory 中的变量的值到寄存器中2、修改该变量的值(也就是修改寄存器中的值)3、将寄存器中的数值写回 mem...

2020-08-30 22:02:25 646

原创 Linux Thermal机制源码分析之Thermal zone

一、of_parse_thermal_zones() 接着上一节的代码流程,of_parse_thermal_zones() 这个函数粉墨登场,可以说读懂了这个函数,Thermal框架就明白了一大半。那这个函数是干什么用的呢?做了些什么事情呢?函数体有点长,我们拆分来解析:/** * of_parse_thermal_zones - parse device tree thermal data * * Initialization function that can be cal...

2020-05-31 21:39:13 3747

原创 Linux Thermal机制源码分析之Governor

在开始源码分析之前,需要先说明一下。Linux 内核代码庞大而复杂,如何 reading the Fxxk source code 相信是很多从事Linux 内核/驱动开发人员非常关注也一直苦恼的事情,尤其是初涉内核开发的同行。本文在剖析 Thermal 机制的同时,也试图向读者展示作者如何来分析内核源码,以期读者可以借鉴一二。当然,由于本人能力有限,如果有错误的地方还请读者朋友不...

2020-05-05 12:56:16 1712 1

转载 ARM AMBA总线介绍

转自:https://blog.csdn.net/u013246792/article/details/79840729一、AMBA 简介 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字 IC 从基于时序驱动的设计方法,发展到基于 IP 复用的设计方法,并在 SoC 设计中得到了广泛应用。在基于 IP 复用的 SoC 设计中,片上总线设计是最关键的问题。为...

2020-05-03 22:22:30 1051

原创 Linux Thermal机制源码分析之框架概述

Thermal,中文意思是热的、保暖的。在 Linux 内核中,Thermal 特指一套关于温控机制的驱动框架,其目的是为了防止 SoC 等硬件芯片因过热而造成系统不稳定,甚至缩减芯片寿命。 Thermal 框架是在软件层面上对自然界散热系统的抽象。试想一下空调的工作机制,假设场景是夏天,室内温度 35 度,用户设定目标温度 25 度。对房间降温首先得知道房间里当前温...

2020-05-03 19:20:05 4406

原创 I2C协议和驱动框架分析(三)

3、从设备驱动分析

2019-07-07 17:14:15 433

转载 Windows与虚拟机的Linux共享一个文件夹

转自:https://www.cnblogs.com/ericli-ericli/p/7238048.html最近刚换了电脑,想着装个 Ubuntu 的虚拟机,以方便后续调试和学习。以下操作步骤亲测有效,我的环境是 Win10 + VMware Ubuntu14.04。1、安装 VMware Tools,在 VMware 面板上选择 “虚拟机-重新安装VMware tools…”...

2019-06-16 10:59:37 128

原创 I2C协议和驱动框架分析(二)

二、I2C驱动框架浅析1. I2C驱动框架概述 上一节主要介绍了协议和具体的 I2C 读写操作,本节开始介绍 Linux 内核下的 I2C 驱动框架。代码分析基于 RK3399 Android 7.1 平台,kernel 版本是 4.4.126。下图是之前在网上找到的 Linux 下整个 I2C 子系统的软件框架图,出处已无从证实,借此引用,如有侵权,请联系本人。在内...

2019-06-02 15:38:00 1349

原创 I2C协议和驱动框架分析(一)

一、I2C协议及硬件原理1. I2C总线协议1.1 概念 I2C(Inter-Integrated Circuit)总线是由 Philips 公司开发的两线式串行总线,这两根线分别为时钟线(SCL)和双向数据线 (SDA)。I2C 在标准模式下传输速率最高 100K bits/s,在快速模式下最高可达 400K bits/s,高速模式下位速率高达 3.4M bits/s。...

2019-06-02 11:27:49 599

原创 C语言易错点汇总(二)

三、关键字 我们都知道ANSI C标准中 C 语言共有 32 个关键字。后面 ISO 的 C99 标准和 C11 标准又分别增加了 5 个和 7 个关键字。本文无意介绍各个标准之间的恩恩怨怨,感兴趣的可以上网查查,包括后面新增的这 12 个关键字。本节将集中介绍ANSI C标准中的 32 个关键字,不过有些简单或是出现频率较低的关键字将略掉不提。先来和这个 32 个关键字打...

2019-04-15 20:20:06 3986

原创 C语言易错点汇总(一)

一、热身运动 熟悉 Linux 操作系统的朋友都知道,差不多 95% 以上的 Linux 内核代码都是用 C 完成的。对于混迹于 Linux 内核(驱动)的软件开发人员来说,C 的重要性不言而喻。如果把操作系统中的进程管理和文件系统比作屠龙刀倚天剑,那么 C 就是九阳神功,只有内功扎实了,我们才有可能一窥内核中各大子系统的源码级实现原理。所以对于 C 的学习再怎么强调其重要性都不为...

2019-04-14 17:57:51 1345

C陷阱与缺陷

全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。

2019-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除