- 博客(37)
- 收藏
- 关注
原创 tftp 使用(busybox)
最近,在弄那套嵌入式板子,对其中的tftp用法有点感触,想写下来,希望对以后碰到这种问题的朋友(也包括自己)有点帮助。 一 对在bootload里面用tftp更新系统时,一般的说明文档里有怎么用这个命令,主要是电脑上的服务器怎么设置。安装好后,修改相应的配置文件,然后启动xinetd服务, service xinetd start最后,关闭防火墙,service iptables s
2008-07-21 14:41:00
4838
转载 usb基础知识
USB的重要关键字:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。3、上行、下行:设备到主机为上行,主机到设备为下
2008-05-23 16:13:00
853
转载 Linux USB驱动框架分析
Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的设备
2008-05-16 14:45:00
752
转载 摄像头驱动实现源码分析
Spac5xx的实现是按照标准的USB VIDEO设备的驱动框架编写(其具体的驱动框架可参照/usr/src/linux/drivers/usb/usbvideo.c文件),整个源程序由四个主体部分组成:设备模块的初始化模块和卸载模块,上层软件接口模块,数据传输模块。具体的模块分析如下:一. 初始化设备模块:该驱动采用了显式的模块初始化和消除函数,即调用module_i
2008-05-16 14:44:00
957
原创 inline 关键字 (转载)
在C 中,为了解决一些频繁调用的小涵数大量消耗栈空间或是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程式的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足所造成的程式出错的问题,涵数的死循环递归调用的最终结果就是导致栈内存空间枯竭。 下面我们来看一个例子
2008-05-16 10:35:00
723
原创 想对grub说几句
想对grub说几句,爱你不容易啊,这几天电脑突然启动不了,就停在grub>处了,我以前也遇到过这种情况,那时候都是重装系统,哎,重装系统很麻烦时间的,再说刚好系统里还有些有用的资料。所以一定不能重装。但我手边又没有安装的光盘,这可咋办呢。刚好在网上有一帮朋友,就问问了,得到的回复都是模糊的 。所以最好的方法就是上网搜搜相关资料了。其中,也找到了几个grub有用的命令了。 首先声明,我的电脑是双系
2008-04-16 08:53:00
815
原创 我的一个数组字符排序(输入可以用回车结束)
这几天,我写了一个用数组指针来排序的程序。因为用数组指针可以提高程序执行的时间,因为这可以不必移动原来的 数值内容。而只要用一个数组指针来指向就可以了。 下面是我用gets和scanf来分别做的代码。会发现有很多的不同。1 的代码如下:# include # include int main(){ char aa[10][20] ,*p[10],*temp; int k,j,i
2008-01-24 14:44:00
2472
2
原创 sizeof 和 strlen区别
今天,看书发现, sizeof 和 strlen居然是不一样的(sizeof 会计算字符长度后,会在加一个终止字符null,所以长度会比实际长度长一个。strlen计算出的是真正的长度。), 才发现的,都不知道以前学c语言时,学的好简单阿,下面是我的一个例子。呵呵,仔细发现,c语言真是博大精深阿,好好学了。#include #include int main(){ int i; cha
2008-01-14 14:35:00
930
原创 # 的用法(c语言中) 字符串创建运算符
今天,看书时看到一个在(c语言中) 字符串创建运算符# ,挺有用的,比如我要创建一个字符串的变量,xxx,而我经常要打印“xxx”,这个字符串创建运算符 就非常有用了,但好像只能在宏定义处用,而不能在函数中用,下面是我写的一个测试的例子。#include #include #define xianshi(name) pr(#name)void pr(char *x){ printf("
2008-01-13 16:21:00
3101
翻译 setjmp和longjmp的用法
好久没来写博客了,因为感觉一直没什么好写的,不过我现在在看apue这本书了,感觉挺好的,可以提高很多的知识。 比如,我下面看到的这对函数就挺有用的,我把他从别处复制过来,好加深印象。在此先谢谢原创的作者了。原文如下:与刺激的abort()和exit()相比,goto语句看起来是处理异常的更可行方案。不幸的是,goto是本地的:它只能跳到所在函数内部的标号上,而不能将控制权转移到所在程序的任意地
2008-01-13 15:32:00
3660
原创 我的学习计划
1 尽快看完linux 0.11 内核。并且在其中穿插看linux c 程序编程。了解一些应用程序如进程编程等。2 看一下深入理解linux内核。并了解linux内核的移植和裁减的问题。 3 学习dsp,并同时学习视频的编/解码技术等。图书馆 有本书 Visual C++实现MPEG/JPEG编解码技术 4 学习usb技术
2007-11-28 14:26:00
962
原创 write的奥秘(转贴)
首先要感谢本文作者 coly(李勇),他 解决了我当初的疑惑。下面是他的原文:在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代
2007-11-02 21:07:00
2513
原创 scanf 和 printf的一般用法
一、printf函数调用的一般形式 printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为: printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式。 格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符
2007-11-01 14:35:00
24819
转载 用Firefox看CHM电子书
不必诧异,这是真的。只要你安装了 CHM Reader 这个 Firefox 扩展,你一样可以办到。 下载 CHM Reader 扩展。 CHM Reader (一个Firefox扩展)CHM Reader 是一个 Firefox 扩展,安装后 Firefox 可以直接开启 .chm 文件。中文支持很好,使用也很方便。现在有FreeBSD、Linux、WINNT几种版本。 在mozilla网站
2007-10-31 21:24:00
1690
原创 关于short中不能装载模块的问题
如同上所说, 当加入模块时,提示不能装载模块,用dmesg命令看了后如果发现比如某个端口地址申请不到。下面就主要是解决这个问题的。 1 找出是那个程序占用了这个端口。如下: [root@localhost short]# cat /proc/ioports0000-001f : dma10020-0021 : pic10040-0043 :
2007-10-31 14:57:00
1272
转载 sscanf函数的用法
sscanf函数keywords: %[a-z] sscanf delimit 很久以前,我以为c没有自己的split string函数,后来我发现了sscanf;一直以来,我以为sscanf只能以空格来界定字符串,现在我发现我错了。 sscanf是一个运行时函数,原形很简单:int sscanf(const char *buffer, const char *form
2007-10-30 11:09:00
1012
原创 关于main参数和inp.c代码阅读的一点笔记
源代码如下:/************************************************************************* *fileName: test.c *description: test the scull.c *author: Kevin *create time: 2007-9-
2007-10-30 10:19:00
1067
转载 Linux与硬盘分区
通常,我们的硬盘上已被Windows所占据,而现在要让Linux入住,就得为它腾出一定的硬盘空间。所以我们不得不面对“分区”这一复杂的概念。 为了实现这一目标,通常可以通过以下三种方法: 1)将原来最后一个逻辑分区上的数据全部移到其它分区中,将该逻辑分区用分区工具删除,将这部分空间给LINUX使用。 这种方法很简单,只需使用FDISK将最后一个逻辑分区删掉就可以了。无需多说。 2)重新将硬
2007-10-28 21:05:00
991
转载 Linux的目录树
目录树可以分为小的部分,每个部分可以在自己的磁盘或分区上。主要部分是根、/usr 、/var 和 /home 文件系统。每个部分有不同的目的。 每台机器都有根文件系统,它包含系统引导和使其他文件系统得以 mount 所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。还应该包括修复损坏系统、恢复备份等的工具。 /usr 文件系统包含所有命令、库、man 页和其他一般操作中所需的不改变的文件
2007-10-28 20:48:00
711
转载 Linux下的likely,unlikely宏
Linux 2.6下经常见到这两个macro,例如: -------------------------------------------------- if (likely(sndcmd)) { chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page); sndcmd = 0; } --------------------------------------
2007-10-28 20:29:00
1016
转载 想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚 蠢的问题吗?如要你答出某个字符的ASCI
2007-10-27 22:08:00
778
原创 对jiq中一段程序以及prepare_to_wait的理解
其中一个程序的代码如下:static int jiq_read_wq(char *buf, char **start, off_t offset, int len, int *eof, void *data){ DEFINE_WAIT(wait); jiq_data.len = 0; /* nothing pri
2007-10-27 21:26:00
5619
转载 strace 用法
strace 命令 用途:打印 STREAMS 跟踪消息。语法:strace [ mid sid level ] ... 描述:没有参数的 strace 命令将所有的驱动程序和模块中的所有 STREAMS 事件跟踪消息写到它的标准输出中。 这些消息是从 STREAMS 日志驱动程序中获取的。如果提供参数,它们必须是在三元组中。每个三元组表明跟踪消息要从给定的模块或驱动程序、子标识(
2007-10-26 16:27:00
2854
原创 linux rar
Linux里默认情况下并没有安装解压.rar文件的程序,因为RAR软件是收费的,不过,我们可以到www.rarsoft.com/"> face=Verdana color=#666666>http://www.rarsoft.com 下载安装RARfor Linux 程序。它有40 天的免费试用期。 软件下载安装后生成一个压缩程序rar 和一个解压缩程序unrar。我们可以用下面的命令解压
2007-10-26 15:38:00
1212
原创 对ldd3 中jiq程序的一点笔记
1 问题:为什么jitimer只打印了两行,而jiqtasklet却打印了多行?原因就是一开始对interruptible_sleep_on()这个函数不理解。他其实就是休眠函数,最综又通过wake_up_interruptible()函数唤醒。详细解答如下:jitimer是采用了定时器的,而定时器只是在jiffies寄存器到达expires值时启用,如果不修改expires值的话定时器执行
2007-10-25 21:02:00
1215
原创 关于ldd3中的ioctl的调用
这几天终于把scull程序弄好了,重点是知道ioctl怎么用了,主要是要自己写一个头文件定义一些操作,这个应该是 和scull.h中定义的一模一样的。然后再在自己的应用程序中包含这个头文件,我的头文件名字为sculltest.h。具体的,我的应用程序编写如下: #include #include #include #include #include #include #in
2007-10-22 17:03:00
763
转载 正确安装mplayer
让Mplayer成为Linux系统下的万能播放器 1.下载相关codes ( http://www.mplayerhq.hu/MPlayer/ ) 主要都在这里 Mplayer-1.0rc1.tar.bz2(主程序)( h
2007-10-19 19:16:00
1059
原创 fc5 下挂载 windous 分区
1 首先建立一个挂载的节点。如下[root@localhost /]# mkdir /mnt/winE2 用mount命令,如下我挂载我的e盘。[root@localhost /]# mount -t vfat -o iocharset=utf8 /dev/hda6 /mnt/winE前面还有一个命令用于查询 fdisk -l 如:[root@localhost ~]# fdisk -lDi
2007-10-18 22:23:00
644
原创 xmms 在fc5 下的安装
首先,在应用程序添加/删除里找到xmms相应的包(在视频里与xmms相关的都加上)。 然后去下一个mp3的插件,因为mp3是有专利的。然后就差不多了 吧。遇到什么问题时要多上网查查原因,因为在你之前,肯定有很多人碰到了这个问题了,所以上网查是很方便快捷的。呵呵,加油! 让我站在巨人的肩膀上比巨人更高吧
2007-10-18 21:51:00
686
转载 装中文pdf的 一些过程(包括一些小问题)
1,下载软件,我下载的是:AdobeReader_chs-7.0.5-1.i386.rpmhttp://www.adobe.com/tw/products/acrobat/readstep2.html2 安装[root@localhost ~]# ls1.rar Desktop install.log.old
2007-10-18 16:12:00
846
转载 linux下u盘使用(转贴)
方案一: Linux不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别。USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询。 在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下: m
2007-10-18 11:09:00
2177
原创 GDB概述
GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义
2007-10-18 11:07:00
4830
3
转载 Linux服务器网卡ip配置攻略
网 卡是Linux服务器中最重要网络设备。据统计,Linux网络故障有35%在物理层、25%在数据链路层、10%在网络层、10%在传输层、10%在对 话、7%在表示层、3%在应用层。由此可以看出,网络故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。对应于实际网络也就是使用的网卡、 网络线缆交等设备故障。 在Linux 网络设备在配置时被赋予别名,该别名由一个描述性的缩略词
2007-10-16 15:16:00
2621
转载 一些好用的链接
http://www.embedworld.com/http://c-faq.com/Cross-Referencing Linux(基于lxr的linux源码阅读,emacs的etags不好使的时候用它)http://lxr.linux.no/source/优龙科技http://www.ucdragon.com/华恒公司的主页,里面有很多的相关资料,有待大家去发现http://www.hhcn.
2007-10-10 15:40:00
15270
原创 linux 内核源代码学习
找到一个内核源代码在线学习的链接http://lxr.linux.no/ident?v=2.6.11&i=completion。比较方便。gogo加油!
2007-09-07 21:49:00
975
原创 ldd3开始学习(修改)
ldd3 的 源码树建的真烦,搞了好久都没有弄出来,不过很高兴,今天终于弄出来了,心里面真高兴,而且是最戏剧性的是我正打算看 ldd2 了 ,而且我系统盘和书都找好了。正当我用 2.6 的内核最后一次编译的时候,却给我弄成功了 ,你可知道我这个可是弄了一个多星期阿(可能是我太笨了),发誓一定要把这本书学好,不然对不起这次的经历阿,千万不要放弃,gogo 加油! 我大致记下这次的 步骤,以防以后
2007-09-06 13:04:00
2172
原创 ldd3 第三章学习感想(1)
花了两天的 时间把ldd3上的第三章看完了 ,而且还用书上的 例子进行了 调试,不错,例子都调过了,呵呵,书上的 代码都看过了,不过例子代码还没有看完,我想起来了,那上面包含了管道的知识,这应该是 第六章的 知识吧。这段时间总感觉自己linux有些命令不大会,我也不管了,反正到时候边学边用了,只是不懂的 时候多到网上找找就好了。呵呵,脚本和.c程序都是要先编译后,然后用./运行程序名就可
2007-09-04 20:10:00
999
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人