自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux内核同步机制之信号量和互斥体

信号量:信号量(semaphore)是进程间通信处理同步互斥的机制。是在多线程环境下使用的一种措施,它负责协调各个进程,以保证他们能够正确、合理的使用公共资源。 它和spin lock最大的不同之处就是:无法获取信号量的进程可以睡眠,因此会导致系统调度。原理信号量一般可以用来标记可用资源的个数。老规矩,还是举个例子。假设图书馆有2本《C语言从入门到放弃》书籍。A同学想学C语言,于是发现这本书特别的...

2018-06-24 10:32:19 714 1

转载 Linux内核同步机制之自旋锁

一、前言在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。本文主要介绍了linux kernel中的spin lock的原理以及代码实现。由于sp...

2018-06-23 22:40:23 362

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

一、源由我们的程序逻辑经常遇到这样的操作序列:1、读一个位于memory中的变量的值到寄存器中;2、修改该变量的值(也就是修改寄存器中的值);3、将寄存器中的数值写回memory中的变量值。如果这个操作序列是串行化的操作(在一个thread中串行执行),那么一切OK,然而,世界总是不能如你所愿。在多CPU体系结构中,运行在两个CPU上的两个内核控制路径同时并行执行上面操作序列,有可能发生下面的场景...

2018-06-23 21:17:45 218

原创 rmmod: chdir(xxx): No such file or directory 解决方法

最近在JZ2440V3开发板上面移植了最新的内核(4.16.16),也移植了根文件系统busybox。但是在做向内核中插入模块的时候发生了:rmmod: chdir(/lib/modules): No such file or directory错误,搜索找到了答案;这是由于使用的busybox不同于发行版linux安装,没有生成相应的目录。 解决方案:创建/lib/modules/$(uname...

2018-06-19 22:36:09 1580

翻译 Linux内核中关于虚拟文件系统(sysfs)一文翻译

本文是对Documentation\filesystems\sysfs.txt文章的翻译;内核版本是:linux-3.4.2。sysfs:此文件系统用于导出内核中的kobject对象。sysfs是一种基于RAM的文件系统;它提供了一种导出内核数据结构及其属性到用户空间的方法,使这些数据结构可以和用户空间建立联系。sysfs和内核中的kobject结构体有紧密的联系。有关kobject结构的更多信息...

2018-06-10 16:32:23 275

转载 Linux设备模型(4)_sysfs

1.前言sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。sysfs具备文件系统的所有属性,而本文主要侧重其设备模型的特性,因此不会涉及过多的文件系统实现细节,而只介绍sysfs在Linux设备模型中的作用和使用方法。具体包括:sysfs和Kobject的关系;attr...

2018-06-10 09:54:39 218

转载 Linux设备模型(3)_uevent

1.uevent的功能uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点,更进一...

2018-06-09 16:58:44 194

转载 Linux设备模型(2)_Kobject

1.前言Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。2.基本概念由"Linux设备模型(1)_基本概念"可知,Linux设备模型的核心是使用Bus、Class、Device、Driver四个核心数据结构,将大量的、不同功能的硬件设备(以及驱动该硬件设备的方法),以树状结构的形式...

2018-06-09 16:32:42 163

转载 Linux设备模型(1)_基本概念

1.前言在"Linux内核的整体架构"中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备"这是Linux的优点",导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了"简洁就是美"的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护。但蜗蜗也知道,这不是Linux的错,Linux是一个宏内...

2018-06-09 11:48:24 226

原创 Linux内核中的container_of函数简要介绍

container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。container_of的定义如下: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__...

2018-06-03 21:08:11 8336 1

原创 Linux内核中链表介绍

链表是Linux内核中最简单、最普通的数据结构。链表是一种存放和操作可变数量元素(常称为节点)的数据结构。链表和静态数组的不同之处在于,它所包含的元素都是动态创建并插入链表的,在编译时不必知道具体需要创建多少个元素。另外也因为链表中每个元素的创建时间各不相同,所以它们在内存中无须占用连续内存区。正是因为元素不连续地存放,所以各元素需要通过某种方式被连接在一起。于是每个元素都包含一个指向下一个元素的...

2018-06-03 14:45:32 7863 1

原创 Linux下Vim工具使用介绍

vim是

2018-06-02 18:12:31 6408

Keil.S32_SDK_DFP.1.2.0.pack

S32K14X系列Pack包,使用Keil时可以按照成功,方便项目开发。

2019-08-25

DDR3 SDRAM Standard_JESD79-3D

官员DDR3的详细介绍,里面有关于DDR的详细资料,时序和命令等等

2018-03-27

空空如也

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

TA关注的人

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