- 博客(4)
- 收藏
- 关注
原创 linux模块编译的makefile
obj-m := add_sub.o KDIR :=/home/sink/work/src/linux/linux-2.6.38 all: make -C $(KDIR) M=$(shell pwd) modules clean: make -C $(KDIR) M=$(shell pwd) clean 其中KDIR为内核源码的路径 add_sub.o是目标文件(源文件
2015-03-25 10:30:28 439
原创 Python调用C/C++
Python部分步骤:1. 导入ctypes。2. 调用ctypes.CDLL("/api.so") ,此处共享库文件放在根目录。3. 调用api.so中封装的函数add,得到返回值。#!/usr/bin/pythonimport ctypesplib = ctypes.CDLL('/api.so')print "result: %d" %(plib.add(1,2))C++部分#include
2015-03-25 10:27:50 396
原创 Linux模块调用模块
被调用模块 add_sub.c #include #include #include "add_sub.h" long add_int(long a,long b) { return a+b; } long sub_int(long a,long b) { return a-b; } EXPORT_SYMBOL(add_int); EXPORT
2015-03-25 10:25:27 472
原创 设备驱动中的并发控制
当多个进程在同一时间段访问同一资源时,就容易引起相应错误。为了保护临界资源,Linux有如下三种机制: 1.原子操作 利用原子变量,再对原子变量进行操作时,不会被打断,故而可起到保护资源的目的。 2.自旋锁(spinlock) 用自旋锁保护敏感的代码段,使它在执行该代码段期间不被打断。 A.定义和初始化自旋锁 spinlock_t lock;
2015-03-25 10:25:05 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人