- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 ubuntu下sudo 失败
步骤一, 系统启动后进入 recory模式步骤二, (1) mount -o remount, rw / (2) chdmod 4755 /usr/lib/sudo/sudoers.so搞定!呵呵
2013-09-24 22:20:48
989
原创 linux 内核几种锁
//内核锁学习内核锁有几种:第一种://这里 val 是安排给旗标的初始值.void sema_init(struct semaphore *sem, int val);//结果是一个旗标变量( 称为 name ), //初始化为 1 ( 使用 DECLARE_MUTEX ) 或者 0 (使用 DECLARE_MUTEX_LOCKED ). DECLARE_MUTEX(
2013-07-09 23:35:36
6535
原创 双链表练习
#include #include #include #include struct list_head { struct list_head *next, *prev;};typedef struct stu{ int no; int addr; char phone; struct list_head list; }stu
2013-06-28 22:29:10
708
原创 MMC 驱动分析
分析//driver/mmc/host/davinci_mmc.cstatic int __init davinci_mmcsd_init(void) //注册一个平台驱动 return platform_driver_probe(&davinci_mmcsd_driver, davinci_mmcsd_probe); /* temporary section vi
2013-06-24 07:39:10
3021
转载 学习推荐
编程类类Unix系统的编程书籍里,最经典的莫过于简称为APUE的《Advanced Programming in the UNIX Environment》(中译名是“Unix环境高级编程”),这本书被广大Unix程序员(包括Linux)捧为“圣经”。借用葛大爷的广告词:“这就像进馆子一样,一条街上,哪家人多我进哪家”。APUE对类Unix系统的编程接口讲解的非常全面详细,对于这本
2013-06-05 23:53:30
560
转载 DEVICE_ATTR 和 sysfs 的东西(转)
说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__ATTR(_nam
2013-05-30 08:41:04
716
原创 Kernel 下队列详解
1. 前言工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法.以下代码的linux内核版本为2.6.19.2, 源代码文档主要为kernel/workqueue.c.2. 数据结构/* include/linux/workqueue.h */// 工作节点结构struct work_struct { // 等待时间 un
2013-05-18 23:46:56
890
原创 ubuntu 内核编译出错
内核编译 make[2]: *** [arch/arm/boot/compressed/piggy.lzo.o] Error 1 解决方法: sudo apt-get install lzopubuntu7.01 键盘 方向键盘错乱 解决方法:
2013-05-18 10:39:41
1149
原创 INIT_DELAYED_WORK 定时器中断函数的调用
定义全局变量:#ifdef TPD_ESD_PROTECT#define TPD_ESD_CHECK_CIRCLE 2000static struct delayed_work gsl_esd_check_work;static struct workqueue_struct *gsl_esd_check_workqueue = NULL;#endif初始化:#if
2013-02-25 19:14:11
7060
转载 idr 讲解
idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制.这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁.现在,在内核的很多地方都可以找到idr的身影.idr机制适用在那些需要把某个整数和特定指针关联在一起的地方.举个例子,在I2C总线中,每个设备都有自己的地址,要想在总线上找到特定的设备,就必须要先发送该
2013-01-14 14:23:11
1732
转载 Linux音频设备驱动
Linux音频设备驱动 (2012-02-23 10:03) 标签: Linux 音频 设备驱动 分类:学习心得 在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐
2012-11-07 07:21:01
1090
原创 TSLIB移植
sudo apt-get install autoconfsudo apt-get install automakesudo apt-get install libtool 编译:tar xzf tslib-1.4.tar.gzcd tslib./autogen.sh mkdir tmpecho "ac_cv_func_malloc_0_nonnull=ye
2012-10-27 15:11:52
380
转载 linux 用户空间 和 内核空间 延时函数
用户空间:1.unsigned int sleep(unsigned int seconds); sleep()会使当前程序休眠seconds秒。如果sleep()没睡饱,它将会返回还需要补眠的时间,否则一般返回零。2.void usleep(unsigned long usec); usleep与sleep()类同,不同之处在于休眠的时间单
2012-10-22 15:02:08
617
原创 nandflash学习经历
经过一段时间的奋斗, 终于对nandflash的框架有点了解!首先nandflash的框架: APP: open read write ---------------------------------------------------------------------- vfs: sys_open sys_read
2012-09-25 14:37:21
1119
转载 程序员切记问别人问题怎么最简洁
由于一直从事技术和平台产品方面的工作,我们部门经常会收到公司内外同事和同仁的问题邮件,有些好的问题能让你发现自己技术上的缺陷、产品的bug或提升的空间,去思考、回答和解决这样的问题真是一件让人愉悦,充满挑战和成就感的事情。但是非常遗憾的是,这样的好问题却是凤毛麟角。我经常会被一些莫名其妙的问题搞的啼笑皆非,比如:程序运行过程中突然内存溢出,该如何解决?如何配置JVM的虚拟机参数?程序部署到
2012-09-25 00:14:47
639
转载 解决VMware Taking ownership of this virtual machine failed
一次crash可能会造成虚拟机锁死的情况发生,这时点击take ownership 可能会提示如下字眼:Taking ownership of this virtual machine failed. The virtual machine is in use by an application on your host computer.解决方法是删除虚拟机目录下的所有.lck文件夹。
2012-09-01 23:01:21
571
转载 ubuntu下搭建ftp服务器vsftpd,cuteFTP登录该服务器
概要: 本文主要介绍ubuntu下如何搭建服务器vsftpd,并用cuteFTP来登录该服务器时遇到的问题及解决办法catalogue:1.ubuntu下如何搭建服务器vsftpd2.cuteFTP来登录该服务器,及当中遇到的问题及解决办法2.1 服务器登录不上,原因是vsftpd服务器没有开启,命令sudo service vsftpd restart后, 提示restart:Unkn
2012-08-17 11:22:03
1726
转载 用secureCRT通过SSH连接你的Linux(本文基于Ubuntu 10.04)
相信现在有很多学习或者工作需要使用或者是用VPS主机的Linux的人吧..单纯的工作学习可以直接硬盘上安装一个比较适合的Linux系统,但是我们大多时候可能还是需要工作在Windows的平台下(很多情况也是无奈啊),所以虚拟机就成了我们使用Linux的最佳选择。这是又出现了一个新的问题,虚拟机太占资源啊,而且我们可能仅仅是使用Linux环境编译运行下软件,分给虚拟机太多的内存又不值得,来回切换
2012-08-17 11:21:17
924
转载 linux 内核dev_dbg打开
linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用 printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1、打开调试开关:你调试的文件中必然包含了,或者《linux /paltforam_device.h》,后者包含了前者,在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如
2012-08-15 16:24:10
1792
原创 request_mem_region 申请内存函数讲解
request_mem_region这里我们看到的那个 request_mem_region 是申请 I/O 内存用的 . 申请了之后 , 还需要使用 ioremap 或者 ioremap_nocache 函数来映射 .对于 request_region, 三个参数 start,n,name 表示你想使用从 start 开始的 size 为 n 的 I/O port 资源 ,name 自然就是
2012-08-14 22:54:40
703
转载 DM9000网卡寄存器简介
原文地址http://blogold.chinaunix.net/u3/105531/showart_2164937.html网络控制器选用DAVICOM公司的DM9000快速以太网控制处理器,合成了MAC,PHY,MMU。该处理器配备有标准10M/100M自适应,16K大容量的FIFO,4路多功能GPIO,掉电,全双工工作等功能。物理层支持以太网接口协议。由于数据有时是以猝发形式收到的,
2012-08-13 23:20:41
3722
原创 .config 文件和linux系统的关联
Kconfig文件的作用内核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。在内核编
2012-08-06 07:26:04
641
原创 用 Core dump 实现一步调试到错误地方
(1) ulimit -c unlimited 把权限改为 不限定 , (2) 测试程序: #include int main(int argc, char **argv){ int *p = NULL; printf("Hello World!\n"); *p =0x12; print
2012-08-04 15:40:07
1558
转载 arm-linux GDB Server 环境搭建
在搭建gdb调试环境时,本来以为是件很简单的事,可是出现了,几个错误,很是郁闷,弄了几个小时,现在把我遇到的问题及解决办法列出来,还有整个安装过程,如下: 在make时遇到的问题:1、error: no termcap library found2、error: makeinfo is required for compilation解决办法:sudo apt-get
2012-08-04 15:21:33
662
转载 关于linux驱动(应用)程序头文件使用
驱动程序:#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-2.6.3
2012-07-30 16:49:57
1155
转载 LCD 应用程序
#includeunistd.h>#include #includefcntl.h>#include linux/fb.h>#include sys/mman.h>int main(){ int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo
2012-07-30 16:46:49
411
转载 linux内核及驱动开发中有关__init,__exit和__initdata的用法
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性或定义的函数或数,__attribute__主要用于改变所声明据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对
2012-07-27 10:49:16
540
转载 LCD 驱动分析
s3c2410_lcd & frame buffer 驱动分析int __init s3c2410fb_probe(struct device *dev){struct s3c2410fb_info *info;struct fb_info *fbinfo; struct platform_device *pdev = to_platform_device(dev);
2012-07-22 11:54:15
571
转载 Linux LCD 驱动程序
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb_set
2012-07-22 11:49:58
488
转载 BusyBox 版本1.10-2
BusyBox 版本1.10-2用户在console下输入reboot命令,busybox会调用到halt_mainint halt_main(int argc ATTRIBUTE_UNUSED, char **argv){...../* Perform action. */if (ENABLE_INIT && !(flags & 4)) {if (ENABLE
2012-07-19 16:02:19
732
转载 S3C2440上LCD驱动(FrameBuffer)实例开发讲解
标签:内核 驱动 FrameBuffer休闲 职场一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应
2012-07-19 15:58:03
669
转载 Qt绘图,显示图片图像,平移,缩放,旋转和扭曲图片的方法
2010-12-28 16:38转载自 huangwen2003最终编辑 huangwen2003声明:本文原创于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。现在我们来实现在窗口上显示图片,并学习怎样将图片进行平移,缩放,旋转和扭曲。这里我们是利用QPixmap类来实现图片显示的。
2012-07-16 07:52:38
7823
转载 Linux USB驱动框架分析
2009-05-21 16:47Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程
2012-07-13 11:00:26
1060
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人