Fedora20 yum update 自动升级后virtualbox无法启动

Fedora20 yum update 自动升级后virtualbox无法启动提示: The VirtualBox Linux kernel driver (vboxdrv) is probably not loaded. If you installed or VirtualBox pa...

2014-02-08 10:09:48

阅读数 2150

评论数 0

mkimage: invalid entry point -k 错误

最近编译内核和uboot都会提示mkimage: invalid entry point 错误,再另外部机器上正常编译。 调试发现出错makefile部分 KRN_SIZE=`expr $$ISIZE - $$RSIZE + 64` ; \ ENTRY=`readelf -h $(ROOT...

2013-12-01 14:29:09

阅读数 3867

评论数 4

linux驱动学习之并发和竞争控制

linux驱动学习之信号量和互斥体     在驱动程序中,当多个线程同时访问相同的资源时(全局变量或硬件资源),可能会引发竞态因此我们必须对共享资源进行并发控制。linux内核中解决并发控制的最常用方法是自旋锁与信号量。 一  信号量       1965年,荷兰学者Dijkstra...

2012-12-20 15:42:57

阅读数 3076

评论数 0

linux驱动学习之内核线程分析

内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,它只在 内核空间运行,从来不切换到用户空间去;并且和普通进程一样,可以被调度,也可以被抢占。   一 线程的创建 struct task_struct *kthread_create(int (*threadfn)...

2012-12-13 17:29:37

阅读数 11691

评论数 0

linux驱动学习之内核定时器使用

内核定时器是内核用来控制在未来某个时间点调度执行某个函数的一种机制,而且是处于中断上下文中,所以调度函数必须遵守以下规则: 1) 没有 current 指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。 2) 定时器函数必须是原子的,不能进行睡眠或者调度. 原子...

2012-12-12 19:17:14

阅读数 2882

评论数 0

linux驱动学习之工作队列使用

工作队列是一种将工作推后执行的形式,交由一个内核线程去执行在进程上下文执行,其不能访问用户空间。最重要特点的就是工作队列允许重新调度甚至是睡眠。工作队列子系统提供了一个默认的工作者线程来处理这些工作。默认的工作者线程叫做events/n,这里n是处理器的编号,每个处理器对应一个线程,也可以自己创建...

2012-12-12 14:29:26

阅读数 4055

评论数 0

linux驱动学习之tasklet分析

tasklet是中断处理下半部分最常用的一种方法,驱动程序一般先申请中断,在中断处理函数内完成中断上半部分的工作后调用tasklet。tasklet有如下特点: 1.tasklet只可以在一个CPU上同步地执行,不同的tasklet可以在不同地CPU上同步地执行。 2.tasklet的实现...

2012-12-10 17:20:14

阅读数 7021

评论数 1

linux shell笔记之sed

这篇记录一下sed的基本用法,建议看下sed与awk第三版里面介绍的很详细,sed通过正则表达式匹配出命令处理文本,如果对正则不熟悉是件很头疼的事。注意以下脚本都是在脚本文件上测试的使用命令sed -f scrift files       1.sed先读取一行至模式空间,取前先清除以前模式空间...

2012-12-07 11:31:56

阅读数 3278

评论数 0

linux驱动学习之异步通知

异步通知是设备状态改变后主动通知应用程序,这样应用程序就不需要阻塞或查询设备了。应用通过信号来处理内核的异步通知,上次使用poll select来查询设备的可读状态,下面这个例子类似,不同的是当设备有数据时主动通知应用去读数据。     应用的C代码很简单,主要设置对信号的处理方式,内核有数据时...

2012-12-05 11:13:01

阅读数 1863

评论数 0

linux shell笔记之awk1

一 分隔符 1.单个分隔符(例将11:22:33字符串取出11 22 33)    echo 11:22:33 | awk 'BEGIN{FS=":"};{print $1" "$2" "$3;};' 2.定义多个分隔符(例将1...

2012-12-03 18:10:06

阅读数 2006

评论数 0

linux 驱动学习之poll与select

在使用socket或串口的时候应用代码经常使用select来判断有没接收到数据,驱动需要做什么处理,应用层用户才能正确判断有数据收到并读取数据呢?使用select能够监视我们需要监视的文件描述符的变化情况——读写或是异常。        先建立简单模型,应用使用select监听设备是否可读,当设...

2012-12-03 18:04:42

阅读数 1930

评论数 0

linux 驱动学习之阻塞 I/O

为了将进程以一种安全的方式进入休眠,我们需要牢记两条规则: 一、永远不要在原子上下文中进入休眠。 二、进程休眠后,对环境一无所知。唤醒后,必须再次检查以确保我们等待的条件真正为真 测试例子只是针对休眠的几个函数,例子本身没什么意义。测试例子在读的时候休眠直到条件满足后唤醒,再写的时候唤醒...

2012-11-30 18:18:32

阅读数 2114

评论数 0

linux驱动学习之ioctl接口

这里先用例子介绍一下ioctrl接口的使用, 应用层的ioctl函数传入的cmd和arg参数会直接传入驱动层的ioctl接口,ioctl接口的命令有一定规范详细查看ioctl-number.txt文件,这里命令的定义不在规范内,先看下面测试的例子,驱动只实现ioctrl接口并使用ioctl修改和读...

2012-11-30 09:44:54

阅读数 12123

评论数 3

linux驱动学习之旗标的使用

下面简单介绍一下旗标的使用,介绍如何在任何时间只有一个执行线程可以操作一个共享资源,首先介绍一下模型,首先用c写一个测试应用创建5个进程去打开一个设备,没加旗帜时5个进程同时打开使用完后关闭,加了旗帜后每次只能打开一个,其他进程等待设备使用完后才能操作,模板使用上次介绍的模板。 测试c代...

2012-11-28 15:48:29

阅读数 2332

评论数 0

linux驱动学习之字符设备驱动模板

今天整理了一下字符设备驱动的模板,工程分开3个文件. main.c        驱动加载初始化工作。 loadmod.c  提供安装和卸载驱动的函数。 fileops.c     文件操作函数。 Makefile #KERNELDIR = /home/fontlose/bo...

2012-11-27 17:24:23

阅读数 2501

评论数 0

linux驱动开发之自动创建设备节点

在有2.6系列版本中支持udev管理设备文件可以方便的创建设备节点,不必使用mknod来创建,本文使用最小编码来说明创建的几个方法。 //主要用到的四个方法在linux/device.h定义: //创建类和释放类的函数  创建成后将创建/sys/class/name文件夹 ext...

2012-11-26 15:05:07

阅读数 5722

评论数 1

android常见问题之jni读取assets资源文件(附源码)

assets目录底下的文件会被打包到一个apk文件里,这些资源在安装时他们并没被解压,使用时是直接从apk中读取的。这里介绍下怎么在jni内使用ndk自带api的接口函数读取assets资源文件,和libzip库函数的使用,可以用来读创建修改压缩文档,这里也是以读取apk安装包内

2011-08-14 16:11:24

阅读数 19854

评论数 4

Android 常见问题之Assets文件大小限制

Android Asset Packaging Tool(aapt)使用这个工具可打包所有数据 Image XML文件 任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aapt使用后缀来决定哪个资源需要压缩,aapt源码定义一些不需要压缩的文件后缀。附aa

2011-08-07 20:21:48

阅读数 9182

评论数 0

Android Native C 之 Helloworld的四种编译方式

一.编写helloworld.c Android.mk     [root@fontlose jni]# cat hello.c #include int main() { printf("Hello World!\n"); return 0; }

2011-08-07 13:04:04

阅读数 15847

评论数 6

Android-NDK开发之基础--Android JNI开发高级篇(JNI中的常用方法)

有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。    一、类的相关操作    1. jclass FindClass(JNIEnv *env, const char *name);  查找类

2011-07-12 14:59:14

阅读数 10247

评论数 0

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