自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 并行与并发理解

“并行”是指无论从微观还是宏观,二者都是一起执行的。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。从宏观外来看,好像是这些进程都在执行。这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。从以上本质不难看出,“并发”执行,在多个进程

2012-04-19 10:59:24 690

转载 安装交叉调试器gdb,编译出错cc1: warnings being treated as errors

安装交叉调试器ARM-GDB(解决cc1: warnings being treated as errors)1,下载GDB源码包并解压;2,./configure --target=arm-linux --prefix=/opt/arm-gdb配置--target和--prefix,指定目标板体系结构和安装路径;3,make我使用的GCC版本是4.3.3,在编译过程中报错:

2012-04-16 15:33:29 8745

转载 搭建交叉调试环境arm-linux-gdb与gdbserver

操作系统:Ubuntu9.04开发板:博创2410s交叉编译工具:arm-linux-gcc-4.1.1gdb+gdbserver 是调试目标板的常用方法.网络环境如下:HOST 192.168.1.123  Target: 192.168.1.21NFS共享目录: mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.16

2012-04-16 15:28:26 604

转载 #error预处理

编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它干嘛呢?其目的就是保证程序是按照你所设想的那样进行编译的。下面举个例子:程序中往往有很多的预处理指令#ifdef XXX...#else...#endif      当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时

2012-04-13 17:21:33 336

原创 应用程序调用驱动中的write方法失败

今天在改驱动时,遇到个问题:应用程序中使用系统调用函数write,调用驱动中的write方法,返回值一直是 -1 ,驱动中的方法也未被调用。最终发现问题根源:应用程序中 fd = open("/dev/***", 0);其中的文件打开方式为0, 表示是O_RDONLY方式,此时无法进行write操作。

2012-04-10 16:17:53 771

转载 内核里面writel是如何实现的

在邮件列表里讨论了一下writel是如何实现的,这个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据。 在arch/alpha/kernel/io.c中有188 void writel(u32 b, volatile void __iomem *addr)189 {190     __raw_writel(b, addr);191     m

2012-04-06 10:59:28 598

转载 系统初始化函数集(subsys_initcall)和初始化段应用

前言:前段时间做一个项目需要设计一个动态库,并希望在加载库的同时自动执行一些初始化动作,于是联想到了linux内核众子系统的初始化,于是研究之,并在过这程中发现了初始化段的存在,利用初始化段实现了该功能。工作一年,笔记积累多了,慢慢变得杂乱无章,于是开博,一方面整理笔记,梳理知识,另一方面和大家交流,共同进步。keyword:subsys_initcall, init, init_call

2012-04-06 10:36:25 319

转载 驱动案例三:platform按键驱动(三、应用程序)

app-button.c#include #include #include #include #include #include #include #include #include #include int main(void){ int buttons_fd; int key_value; buttons_fd = open("/d

2012-04-01 17:21:31 329

原创 驱动案例三:platform按键驱动(二、驱动)

plat_buttondriver.c#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2012-04-01 17:19:27 486

原创 驱动案例三:platform按键驱动(一、设备)

plat_device.c#include #include #include #include #include #include #include #include #include  static struct resource s3c_buttons_resource[] = { [0]={  .start = S3C24XX_PA_GP

2012-04-01 17:09:36 401

转载 s3c2410_gpio_cfgpin函数解析

函数原型:s3c2410_gpio_cfgpin(unsigned int pin,unsigned int function)位置:/linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c函数内容:void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)

2012-04-01 16:56:36 424

转载 驱动案例二:mini2440 LED驱动 (用封装函数 s3c2410_gpio_*** 访问CPU寄存器;混杂设备驱动)

memdev.h#ifndef _MEMDEV_H_#define _MEMDEV_H_#include #define MEMDEV_IOC_MAGIC  'k'#define MEMDEV_IOCON   _IO(MEMDEV_IOC_MAGIC, 1)#define MEMDEV_IOCOFF _IO(MEMDEV_IOC_MAGIC, 2)#define MEM

2012-04-01 16:36:30 426

空空如也

空空如也

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

TA关注的人

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