
Linux
njuitjf
不积跬步无以致千里
展开
-
jiffies和HZ的相关学习
jiffies和HZ的相关学习 最近学习kernel timer的时候,看到...原创 2020-09-09 21:03:38 · 690 阅读 · 0 评论 -
work queue, kthread和timer对比
kernel中有三种方式可以启动一个异步作业:work queue, kthread和timer。这几种方式有各自的使用场景。本文就这几种方式的用法和使用场景,进行了简单的总结。workqueue, kthread, timer使用方法与使用场景对比:1. queue_work2. kthread_create()3. add_timer1. work queue 参考链接: https://www.cnblogs.com/vedic/p/11069249.htm...原创 2020-09-07 19:52:47 · 2555 阅读 · 0 评论 -
Linux中断中不可睡眠的原因
Linux中断中不可睡眠的原因:1、在硬中断处理的过程中,部分时候是屏蔽中断的,如果此时睡眠,cpu被调度出去,导致系统无法响应所有中断。2、系统中是以进程为调度单位,中断不能作为调度单位,如果中断睡眠,被调度出去,将无法调度回来。 (这一条,应该是设计上的制限,设计时,就没考虑让中断睡眠)3、中断处理的,一般都是紧急的必须很快处理完成的事务。如果中断处理过程中睡眠了,被调度出去,会导致当前中断不能及时处理完成,会影响到系统的正常运行。 例如,如果rtc中断中被调度出去,导致系统时钟不...原创 2020-09-01 11:59:41 · 2023 阅读 · 2 评论 -
I2C总线相关学习
0、一个I2C总线上,可以连接多个master和slave,但同时只能有一个master工作,通过仲裁进行控制。1、物理上包含两根线,SDA, SCL。2、常用clock为400K。3、空闲状态下,SDA和SCL都由上拉电阻上拉,为高阻态。4、开始信号为SCL为高时,将SDA拉低;结束信号为在SCL为高时,将SDA拉高。5、常用的slave address为7位。6、协议中,有一位表示读写。7、写数据的时候,主机发送slave address,并发送数据。8、读数据的时候,主原创 2020-08-31 17:03:53 · 484 阅读 · 0 评论 -
repo init - gpg: 无法检查签名:找不到公钥
今天在取android代码时,发现repo init提示以下错误:在网上搜索了一下,在下面这个帖子到帮助下,解决了问题:http://bbs.youkuaiyun.com/topics/390705429该帖子中提到的解决方法有:方法一:出现此问题是repo版本不对的问题,具体原因可网上搜索下,据说是google 代码传错导致。我更换过repo后,问题已经解决。curl h原创 2014-08-05 16:12:43 · 8334 阅读 · 0 评论 -
linux 终端计时方法
经常需要在linux终端中测试性能,例如flash的读写性能。这就需要对一个操作进行计时。以前一直用date命令,然后人工做减法操作来得到结果。简单测测还行,如果长时间测试,这个人工费就上去了。为了降低人工成本,今天查了些资料。 目的是得到一个操作花了多长时间,单位为秒。首先查date命令,看如果得到当前的秒值。参考了:http://www.2cto.com/os/原创 2014-07-31 15:38:29 · 3489 阅读 · 0 评论 -
Linux信号机制分析
转自:http://blog.youkuaiyun.com/zhongguoren666/article/details/7012744转载 2014-09-24 15:26:37 · 767 阅读 · 0 评论 -
内核模块中对文件的读写
转自:http://bbs.chinaunix.net/thread-1945223-1-1.html转载 2014-09-02 12:27:29 · 929 阅读 · 0 评论 -
THIS_MODULE ?
转自:http://blog.youkuaiyun.com/lizhiguo0532/article/details/6346958转载 2014-10-21 17:04:08 · 2396 阅读 · 0 评论 -
关于signal, kill, mutex, spinlock的一些总结
用户进程,在用户态可以被直接 kill 。用户进程陷入内核,在内核态进入死循环:1. 循环体中有 msleep_interruptible ,进程状态为S,即可中断的睡眠状态,kill 命令不能杀死进程。2. 循环体中有 msleep ,进程状态为D,即不可中断的睡眠状态,kill 命令不能杀死进程。3. 循环体中无 sleep ,进程状态为R,即可执行状态,kill 命令不能杀死原创 2014-11-11 14:31:24 · 5289 阅读 · 0 评论 -
printk() 使用说明
转自:http://blog.youkuaiyun.com/iczyh/article/details/3160757转载 2014-05-20 09:58:14 · 1694 阅读 · 0 评论 -
linux error code
OS error code 1: Operation not permittedOS error code 2: No such file or directoryOS error code 3: No such processOS error code 4: Interrupted system callOS error code 5: Input/转载 2014-04-11 15:26:30 · 1793 阅读 · 0 评论 -
linux中 likely与unlikely
转自:http://blog.youkuaiyun.com/tommy_wxie/article/details/7384641转载 2014-05-16 13:46:17 · 654 阅读 · 0 评论 -
谁动了我的cpu——oprofile使用札记
转自:http://www.cnblogs.com/bangerlee/archive/2012/08/30/2659435.html转载 2014-04-09 15:32:22 · 837 阅读 · 0 评论 -
Linux软连接和硬链接
转自:http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html 1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中转载 2014-03-28 13:43:26 · 883 阅读 · 0 评论 -
__asm__ __volatile__内嵌汇编用法简述
__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。带有C/C++表达式的内联汇编格式为:__asm__ __volatile__("Instruction List" : Output : I转载 2014-03-04 09:58:36 · 940 阅读 · 0 评论 -
(总结)关于Linux的缓存内存 Cache Memory详解
转自:http://www.ha97.com/4337.html PS:前天有童鞋问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory。有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文转载 2014-02-13 19:48:40 · 2538 阅读 · 0 评论 -
用distcc和dmucs在ubuntu 10.04上搭建分布式编译环境
首先需要三台PC,如PC ABC,在三台机器上都要安装distcc 和 dmucssudo apt-get install distcc dmucs 假设三台PC的ip地址如: A:192.168.0.1 B:192.168.0.2 C: 192.168.0.3我用A做server(用于分发编译任务),B和C做client在三台机器的/etc/hosts文件中找到各个机器的转载 2014-02-08 14:36:39 · 2969 阅读 · 0 评论 -
Linux kernel suspend resume学习:2.6.35与3.0.35比较
Linux kernel suspend resume学习:2.6.35与3.0.35比较最近在学习linux kernel中suspend和resume的处理。只是一味的看代码,有点枯燥,刚好有两个项目使用了不同的内核版本,就以比较这两个间的处理差别为线索进行学习。由于列举了很多代码,为了保持连续性,整篇文章还是放到了一个blog中。首先看看公开出去的接口,都是文件/sys/po原创 2014-01-15 17:48:59 · 7196 阅读 · 0 评论 -
移植alsa-lib遇到的问题
移植alsa-lib遇到的问题linux audio alsa lib VERSIONED_SYMBOLS这两天移植alsa lib时遇到了一个问题,被困住了好久。做个记录,以后再被同样问题困住。问题背景是这样的,有个项目,客户要求使用新的alsa-lib库。到alsa官网上看了下,最新的是1.0.28。既然可以要用新的,咱们就彻底满足客户,用个最新的。接下原创 2014-10-28 19:15:26 · 5899 阅读 · 1 评论 -
神秘的subsys_initcall
转自:http://blog.chinaunix.net/uid-12567959-id-161015.html转载 2014-10-11 16:27:24 · 1453 阅读 · 0 评论 -
win7 安装 ubuntu 12.04 不识别分区
电脑上原来有个win7, 由于要在 ubuntu 环境下开发, 所以要装个 ubuntu 。在 win7 下, 通过压缩卷, 腾出来了 150G 的空间。安装 ubuntu 的时候, 提示说我电脑上没有操作系统。选择分区的地方, 看到的只有整个硬盘设备, 看不到硬盘上的分区。 网上找了些资料, 通过命令:sudo parted /dev/sda进去后, 输入 print原创 2015-05-07 14:54:56 · 6193 阅读 · 1 评论 -
ubuntu 12.04 给用户添加 sudo 权限
创建用户的时候, 将用户组指定为 root , 用户其实是没有 sudo 权限的。可以手动修改文件 /etc/sudoers ,在其中添加user ALL=(ALL)ALL但这样修改风险比较大, 文件如果改坏, 导致所有用户的 sudo 权限都没了。 比较好的方法是通过命令:sudo visudo在命令模式下添加行:user ALL=(ALL)ALL然后保存并退原创 2015-05-08 18:32:33 · 6528 阅读 · 0 评论 -
从"error:file not found \n grub rescue>"说起
问题一: 加电后出现:[plain] view plaincopyprint?error : file not found grub rescue> error : file not foundgrub rescue> 分析:出现这种情况是由于 grub 引导文件的破坏导致的。准确的说是 grub2 的配置文件损坏,由于分区调整或分区UUI转载 2015-05-08 18:22:03 · 3448 阅读 · 0 评论 -
在 ubuntu 下编译 android 找不到头文件问题解决
在 ubuntu 下编译 android 找不到头文件问题解决在 ubuntu 下编译 android 的时候, 发现编译错误, 有些头文件找不到, 如:致命错误: alsa/asoundlib.h: 没有那个文件或目录网上搜索了一下, 原因是某些库没安装导致。可以使用 apt-file 查看该头文件在什么库中, 找到相应的库, 安装即可。安装 apt-file :sudo原创 2015-02-06 15:17:46 · 4965 阅读 · 0 评论 -
Flushing out pdflush
转自:http://lwn.net/Articles/326552/ The kernel page cache contains in-memory copies of data blocks belonging to files kept in persistent storage. Pages which are written to by a processor, but not转载 2015-01-06 14:42:59 · 2621 阅读 · 0 评论 -
内核抢占
转自:http://hi.baidu.com/zengzhaonong/item/644b0b80f586cfeae496e02e 内核抢占--------------------------------------------------- 与其他大部分Unix变体和其他大部分的操作系统不同, Linux完整地支持内核抢占。 在不支持内核抢占的内核中,内核代码转载 2015-01-06 15:59:23 · 2330 阅读 · 0 评论 -
.mod.c 是什么文件
转自:http://www.cnblogs.com/felixjia/archive/2011/09/15/2178126.html转载 2014-10-21 17:39:35 · 4795 阅读 · 0 评论 -
Linux ioremap 的实现
Linux ioremap 的实现linux, memory, ioremap在 linux kernel 的代码中,经常看到 ioremap 函数。其功能是将给定的物理地址映射为虚拟地址。注意,此处的物理地址并不是真正内存的物理地址,而是cpu上的io memory。可以参考芯片《Reference Manual》中断 memory map 章节。本文主要学习 iorem原创 2014-11-03 19:07:07 · 10600 阅读 · 0 评论 -
Linux Module And Device Driver
转自:http://hi.baidu.com/yopklnqbrsampsr/item/0de01ac7ea05960fac092fcb转载 2014-10-21 16:58:16 · 3543 阅读 · 0 评论 -
linux-2.6内核模块引用计数的实现
转自:http://www.embedu.org/Column/Column92.htm转载 2014-10-21 15:37:49 · 2605 阅读 · 0 评论 -
Linux驱动中,probe函数何时被调用
转自:http://www.cnblogs.com/hoys/archive/2011/04/01/2002299.html转载 2014-10-21 14:04:40 · 2532 阅读 · 0 评论 -
各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)
转自:http://blog.youkuaiyun.com/fenzhikeji/article/details/6860143转载 2014-10-20 10:46:49 · 1381 阅读 · 0 评论 -
SCHED_OTHER,SCHED_FIFO,SCHED_RR
转自:http://blog.chinaunix.net/uid-7187477-id-5593.html转载 2014-11-04 17:56:25 · 2742 阅读 · 0 评论 -
避免’sudo echo x >’ 时’Permission denied’
转自:http://blog.youkuaiyun.com/hejinjing_tom_com/article/details/7767127 避免’sudo echo x >’ 时’Permission denied’甲: 示例sudo echo a > 1.txt-bash: 1.txt: Permission denied乙: 分析:bash 拒绝这么做,说是权限不够.转载 2014-11-18 17:52:39 · 3137 阅读 · 0 评论 -
Linux GPIO 的注册与申请
Linux GPIO 的注册与申请Linux Kernel, GPIO, ARM在Linux kernel代码中,经常会使用 GPIO 来作为一个特殊的信号,如作为芯片的片选信号等。GPIO 申请的函数,我们经常用到,如 gpio_request ,那么 GPIO 是何时,以及如何注册的,本文就来探索一下。基于的平台上 freesccale 的 i.MX6先从函数 gpio_r原创 2014-10-30 17:11:21 · 19350 阅读 · 3 评论 -
slab着色与cpu硬件高速缓存
转自:http://www.mythroad.net/2011/06/11/slab_coloring_cpu_hardware_cache/ 学习LKD的时候,在内存管理一章的slab小节中,对于slab的着色只是一笔带过,并没有详细叙述,只好翻看了很多资料,稍微有了点儿概念,其实关键在于分清所谓的cache(高速缓存,包含多个slab块)和硬件高速缓存的概念。 sl转载 2014-01-15 16:10:18 · 1948 阅读 · 1 评论 -
slab 着色的理解
slab 着色的理解之前对slab着色一直不怎么理解。后来查了不少资料,包括之前转的一篇blog,通过学习之后,总算大致了解了。这儿也写点总结,按照自己的思路来,以抵抗忘性。先来看看slab着色的目的。slab中倾向于把大小相同的对象放在同一个硬件cache line中。为什么呢?方便对齐,方便寻址。但这样会带来一个问题。假如有两个对象,A,B,它们size一样,都是1原创 2014-01-15 16:51:48 · 7070 阅读 · 4 评论 -
内存映射相关学习
内存映射相关学习以前看过一些内存映射相关的文章,最近看到相关的知识,发现一时没办法全部提起来。这个忘性!!!看样子不写点东西出来,是没办法克服忘性了。内存映射,其实就是建立物理内存与虚拟内存之间的关系。物理内存就不用说了,就是实实在在的东东,看得见,摸得着。虚拟内存是嘛呢?看名字就知道,是“虚”的,看不见,摸不着。其实就是操作系统给进程的一个空间,告诉进程有这么多“内存原创 2014-01-15 15:58:43 · 1235 阅读 · 0 评论 -
Linux启动参数及实现 __setup与early_param
转自:http://blog.youkuaiyun.com/tommy_wxie/article/details/8041487 #define __setup_param(str, unique_id, fn, early) / static char __setup_str_##unique_id[] __initdata = str; / st转载 2013-10-30 11:19:51 · 1424 阅读 · 0 评论