在路上...

The development of life
我们一直都在努力,有您的支持,将走得更远...

站内搜索: Google

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2009年9月2日

摘要: register i = rEP3_DMA_CON; for(i=0;i<10;i++);/* register是variable的一种存储类型,叫做寄存器型。一个变量要是被定义为这种类型,他就会被存储在通用寄存器中,所以存储速度快。这种类型的好处就是: 如果你需要频繁地使用该变量,可以避免多次从内存里进行存储,从而提高了运行效率.对编译器只是一种提示,是不是register还看编译器怎么... 阅读全文
posted @ 2009-09-02 23:16 palam 阅读(613) 评论(0) 推荐(0) 编辑

摘要:   多线程编程是一个很有意思也很有用的技术,使用多线程技术的网络蚂蚁是目前最常用的下载工具之一,使用多线程技术的grep比单线程的grep要快上几倍,类似的例子还有很多。希望大家能用多线程技术写出高效实用的好程序来 阅读全文
posted @ 2009-09-02 23:15 palam 阅读(283) 评论(0) 推荐(0) 编辑

摘要: /*守护进程实例子*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/types.h>#include <unistd.h>#include <sys/wait.h>#define MAX... 阅读全文
posted @ 2009-09-02 23:13 palam 阅读(1045) 评论(0) 推荐(0) 编辑

摘要: //守护进程的调试方法是通过linux的syslog即系统日志服务来实现的。程序运行信息将输入到"/var/log/messages"//系统日志文件中。syslogd的配置文件为/etc/syslog.conf。该机制提供了三个syslog函数分别为openlog/syslog/closelog//openlog:用于打开系统日志服务的一条连接//syslog:向日志文件中写入消息//close... 阅读全文
posted @ 2009-09-02 23:11 palam 阅读(730) 评论(0) 推荐(0) 编辑

摘要: 本文出自:BBS水木清华站 作者:Mccartney (coolcat) (2002-01-29 20:28:07)3 使用同步对象来编程 本章定义了四种可用的同步类型,并且讨论实现同步的注意事项。 互斥锁(mutex) 条件变量(condition variable) 多读单写锁(multi-read,single-write lock) 信号量(semophore) 进程间同步(process... 阅读全文
posted @ 2009-09-02 23:11 palam 阅读(234) 评论(0) 推荐(0) 编辑

摘要: 什么是Shell? shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。 shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell也能被系统中其他有效的Linux 实用程序和应用程序(utilitie... 阅读全文
posted @ 2009-09-02 23:09 palam 阅读(612) 评论(0) 推荐(0) 编辑

摘要: 结合阻塞与非阻塞访问、poll函数可以较好地解决设备的读写,但是如果有了异步通知就更方便了。异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上"中断"地概念,比较准确的称谓是"信号驱动(SIGIO)的异步I/O"。  我们先来看一个使用信号驱动的例子,它通过signal(SIGIO, input_handler)对STDIN_FILEN... 阅读全文
posted @ 2009-09-02 23:08 palam 阅读(395) 评论(0) 推荐(0) 编辑

摘要: 【fcntl系统调用】 功能描述:根据文件描述词来操作文件的特性。 用法: int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock); 参数: fd:文件描述词。 cmd:操作命令。 arg:供命令使用的参数。 lock:同上。... 阅读全文
posted @ 2009-09-02 23:06 palam 阅读(8057) 评论(1) 推荐(0) 编辑

摘要: kpp.c---------------------------------------------#include <linux/kernel.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/slab.h>#include <linux/init.h>#in... 阅读全文
posted @ 2009-09-02 23:05 palam 阅读(1097) 评论(0) 推荐(0) 编辑

摘要: const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to cp is a cons... 阅读全文
posted @ 2009-09-02 23:04 palam 阅读(465) 评论(0) 推荐(0) 编辑

摘要: 1.用 cat /proc/devices 可以查看当前已经使用的设备对应的主设备号 cat /proc/interrupts 查看记录那个设备在使用那个中断号 cat /proc/tty/drivers 可查看当前系统中所有tty设备的相关信息 arm-linux-gcc -v 2.在控制平台从用户到超级用户的切换命令 : su -root3.将bin目录添加到环境变量中去:export PA... 阅读全文
posted @ 2009-09-02 23:02 palam 阅读(255) 评论(0) 推荐(0) 编辑

摘要: tar.tar文件解压:首先用file命令查看文件类型(可能是bz2或者gz),命令格式:file filename.tar.tar我以MPlayer-0.91.tar.tar为例:[root@localhost ~]# file MPlayer-0.91.tar.tarMPlayer-0.91.tar.tar: bzip2 compressed data, block size = 900k由b... 阅读全文
posted @ 2009-09-02 23:01 palam 阅读(3947) 评论(0) 推荐(0) 编辑

摘要: 先用$ gzip -dv *命令解压,然后用 $ tar xvf *命令解压,---------------安装6.21.1. 安装 Ncurses 1.准备编译 Ncurses : ./configure --prefix=/usr --with-shared --without-debug2.编译软件包:make这个软件包没有附带测试程序。3.安装软件包:make install4.赋予 nc... 阅读全文
posted @ 2009-09-02 22:05 palam 阅读(605) 评论(0) 推荐(0) 编辑

摘要: 一、GPIO寄存器定义1.#define GPCON(x) __REG2(0x56000000, (x) * 0x10) 这句是定义2410的GPIO的控制寄存器,注意:__REG2的参数是寄存器的物理地址,这个物理地址经_REG2宏转换为虚拟地址,对照2410的手册可以得到一下对应关系:GPCON(1) ------ PORT A 0x56000000GPCON(2) ------ PORT B... 阅读全文
posted @ 2009-09-02 22:04 palam 阅读(521) 评论(0) 推荐(0) 编辑

摘要: 软件准备:gcc-3.2.2-5.i386.rpm :用来编译ncurses-5.6.tar.gz:用来配合make menuconfig 命令配置内核bison-2.4.tar.gz :语法解析器flex-2.5.35.tar.bz2 :词法解析器m4-1.4.9.tar.gz: modutils-2.4.26.tar.bz2 : module-init-tools-3.2.2.tar.bz2:... 阅读全文
posted @ 2009-09-02 22:01 palam 阅读(332) 评论(0) 推荐(1) 编辑

摘要: 0.包含头文件:#include <linux/timer.h>1.定义时间结构体变量:static struct timer_list kbd_timer;2.初始化时间结构体变量:init_timer(&kbd_timer);3.指定定时器超时服务函数:void kbd_timer_handler(unsigned long){...}kbd_timer.funciton ... 阅读全文
posted @ 2009-09-02 21:40 palam 阅读(646) 评论(0) 推荐(0) 编辑

摘要: 一、linux保存环境变量的文件位于/etc/profile,当你打开此文件可以看到各种环境变量,,当然你可以直接在修改这个文件,保存后注销系统,然后再重新登陆,即会生效,二、下面介绍的是用命令的方式设置环境变量,这是linux的方便之处哦,个人认为,并不代表大多数人意见,主要命令:export,set,env;1.举个简单例子:# export JOHNSCC="Hello!" //格式: ex... 阅读全文
posted @ 2009-09-02 21:40 palam 阅读(328) 评论(0) 推荐(0) 编辑

摘要: va_list ap; //声明一个变量来转换参数列表 va_start(ap,fmt); //初始化变量 va_end(ap); //结束变量列表,和va_start成对使用 可以根据va_arg(ap,type)取出参数 已经经过调试成功的输出程序#include<stdio.h>#include <stdarg.h>#define bufsize 80char buf... 阅读全文
posted @ 2009-09-02 21:39 palam 阅读(788) 评论(0) 推荐(0) 编辑

摘要: ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要... 阅读全文
posted @ 2009-09-02 21:37 palam 阅读(725) 评论(0) 推荐(0) 编辑

摘要: 我所使用的内核是2.4.20-8。问题出现在request_irq后立即产生中断,分析后发现原因是上次的中断申请标志没有被清除所导致的。经过查看源代码(如代码段1.0)发现只有在 do_IRQ(……)函数中清除中断标志,而这个函数是中断开放时才被调用。因此我们不能忽略申请中断后,所产生的每一次中断。view plaincopy to clipboardprint?代码段 1... 阅读全文
posted @ 2009-09-02 21:35 palam 阅读(1432) 评论(0) 推荐(0) 编辑