自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

放狼的爷们

阳光 儒雅 博学 勤思 死宅

  • 博客(17)
  • 资源 (3)
  • 收藏
  • 关注

转载 linux睡眠和唤醒的一个例子

1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数 schedule()是一个调度函数,它可以被

2017-07-30 18:19:29 3563

转载 进程上下文和中断上下文的含义

进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间

2017-07-28 03:04:40 562

原创 驱动调试技术

1.printk大法。加上__FUNC__,__LINE__,简直神奇.2.objdump反编译,编译的时候加上-g,把代码信息编译进ko,利用堆栈反编译找出挂死的行号3.trace调试,大量零散的打印,打印到串口会占用CPU资源,程序执行效率降低,无法有效的复现bug的环境,申请一片内存,记下打印到内存里面,这样不会太占用CPU,复现bug后,再从内存里面读出来.4.文件log法,集

2017-07-13 23:37:18 309

转载 linux驱动 内存池的机制和使用

内存池(memory pool)是Linux 2.6的一个新特性。内核中有些地方的内存分配是不允许失败的。为了确保这种情况下的成功分配,内核开发者建立了一种称为内存池的抽象。内存池其实就是某种形式的后备高速缓存,它试图始终保存空闲的内存,以便在紧急状态下使用。下边是内存池对象的类型: typedef struct mempool_s { spinlock_t lock

2017-07-12 23:56:41 516

原创 C语言-条件运算符 ,返回的是一个值

条件运算符返回的是一个值!!#define DATA(n)          (n==0)?(*(uint32_t  *) addr0 : *(uint32_t  *) addr2)DATA(N) = 1这样子编译器是会报错的!因为宏返回的是一个值类型,不是地址类型,赋值是不合理的条件运算符返回的是后面表达式的值#define DATA

2017-07-12 23:26:34 1781

转载 kmalloc/kfree,vmalloc/vfree函数用法和区别

1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。> 2>kamlloc函数原型:#includeLinux/slab.h>Void *kmalloc(size_t size, int flags)

2017-07-12 00:02:54 867

转载 linux驱动 并发策略

访问共享资源的代码区块叫“临界区”,临界区需要以某种互斥机制加以保护:自旋锁、信号量等。互斥访问:一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。信号量:在Liunx中的信号量是一种睡眠锁。假如进程A先持有信号量F,然后进程B试图获取已经被进程A持有的信号量F时(假如信号量F资源值为1),信号量会将B进程推入等待队列,然后让            其睡眠。当持有信号量的进程

2017-07-10 23:44:06 330 1

转载 中断后半段处理,tasklet使用机制与工作队列

在编写设备驱动时, tasklet 机制是一种比较常见的机制,通常用于减少中断处理的时间,将本应该是在中断服务程序中完成的任务转化成软中断完成。 为了最大程度的避免中断处理时间过长而导致中断丢失,有时候我们需要把一些在中断处理中不是非常紧急的任务放在后面执行,而让中断处理程序尽快返回。在老版本的 linux 中通常将中断处理分为 top half handler 、 bottom half h

2017-07-09 19:58:48 477

转载 互斥锁和自旋锁的区别

自旋锁(Spin lock)自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。因为自旋锁不会引起调用者睡眠,所以自旋锁的效率远 高于互斥锁。虽然它的效率比互斥锁高,但是它也有些不足之处:1、自旋锁一直占用CPU,他在未获得锁的情况

2017-07-09 16:02:19 753

转载 linux同步机制之信号量down 和up

Linux内核的信号量在概念和原理上和用户态的System V的IPC机制信号量是相同的,不过他绝不可能在内核之外使用,因此他和System V的IPC机制信号量毫不相干。   信号量在创建时需要设置一个初始值,表示同时能有几个任务能访问该信号量保护的共享资源,初始值为1就变成互斥锁(Mutex),即同时只能有一个任务能访问信号量保护的共享资源。    一个任务要想访问共享资源,首先必须得

2017-07-09 15:49:07 962

转载 如何使用git 生成patch

1,下载代码Git clonegit://git.kernel.org/pub/scm/Linux/kernel/git/padovan/bluetooth-next-2.6.gitcd bluetooth-next-2.62,修改代码vi drivers/bluetooth/btusb.c3,把代码添加到git管理仓库git add drivers/bluetoo

2017-07-09 15:43:47 403

转载 linux同步机制之wait_event和wake_up

关于 wait_event_interruptible() 和 wake_up()的使用    读一下wait_event_interruptible()的源码,不难发现这个函数先将 当前进程的状态设置成TASK_INTERRUPTIBLE,然后调用schedule(), 而schedule()会将位于TASK_INTERRUPTIBLE状态的当前进程从runqueue 队列中

2017-07-09 15:40:08 1019

原创 Reshape the Matrix

class Solution(object): def matrixReshape(self, nums, r, c): """ :type nums: List[List[int]] :type r: int :type c: int :rtype: List[List[int]] """

2017-07-06 00:04:18 153

原创 Reshape the Matrix

/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *columnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller

2017-07-05 23:54:09 252

原创 Reshape the Matrix

/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *columnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller

2017-07-05 23:54:06 309

原创 Keyboard Row

class Solution(object):    def findWords(self, words):        """        :type words: List[str]        :rtype: List[str]        """        rows = [set(['q', 'w', 'e', 'r', 't', 'y','u', 'i

2017-07-04 23:35:22 228

原创 Keyboard Row

#include #include //字符串1是否包含字符串2,在同一行int inStr(char *str1, char *str2){    int i, j, str1len = strlen(str1), str2len = strlen(str2);    int flag = str2len;    int temp;    for (i = 0; i <

2017-07-02 22:09:41 184

glances支持python2的版本

glances 是一款用于 Linux、BSD 的开源命令行系统监视工具,它使用 Python 语言开发,能够监视 CPU、负载、内存、磁盘 I/O、网络流量、文件系统、系统温度等信息。

2024-04-30

ffmpeg3.3.3(share+dev+static)

包含ffmpeg 3.3.3版本的share+dev+static,static包:静态版本的ffmpeg工具 share:包括可执行文件的dll dev:提供了库的头文件和dll的引用

2017-09-06

清洁机器人solidworks三维建模课程设计图纸全套

很详细的三维建模,软件用的是solidworks2013,内含模型渲染,动画仿真.

2016-03-04

空空如也

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

TA关注的人

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