- 博客(32)
- 资源 (5)
- 收藏
- 关注
原创 4020组播的探讨
晕死了,刚才发的一篇文章没了,csdn太挫了,好不容易自己写了一篇提交上去没反应了。 最近在测试sep4020的网络,由于以前在移植4020的网卡驱动很多还不是太懂其中的组播部分有很大一段,但也是直接仿照别人的驱动直接移植上去的,最近想测试下4020的组播是否支持,于是上网找了几篇文章看了下,然后开始设置。(1)首先当然是让linux内核支持组播协议了,在menuconfig中的网络协
2009-06-16 21:36:00 840
原创 网络编程常用函数集
inet_ntoa() 简述: 将网络地址转换成“.”点隔的字符串格式。 #include char FAR* PASCAL FAR inet_ntoa( struct in_addr in); in:一个表示Internet主机地址的结构。 注释: 本函数将一个用in参数所表示的Internet地址结构转换成以“.” 间隔的诸如“a.b.c.d”的字符串形式。请注意inet_
2009-06-16 21:02:00 547
原创 组播协议
一、组播协议的要素 通过和广播,单播的数据传输方式的比较,我们可以发现组播中最关键的两个部分:1. 组的管理和维护在组播这套协议中,在网络设备和所连接的子网需要有一套协议或机制来保证网络设备知道所连接的子网中,有多少台主机属于一个特定的组。2. 组播报文的路由要组播路由协议有什么用?(1)是发现上游接口,离源最近的接口。因为组播路由协议只关心到源的最短路径。(2)通过(
2009-06-16 19:35:00 1807 1
原创 广播 组播 单播
广播: 主机之间一对所有的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大
2009-06-16 19:30:00 621
原创 extern,头文件和ifndif宏
用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include (xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在#i
2009-06-15 10:38:00 2470 3
原创 time命令特殊用法
linux time 命令详解使用方式: time [options] COMMAND [arguments]说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 ti
2009-05-18 22:26:00 826
原创 busybox1.10.4制作文件系统
1)创建根文件系统的基本目录结构。我把这个过程做成了shell脚本(文件名为mkroot) ,很方便! #! /bin/sh echo "creatint rootfs dir......" mkdir rootfs cd rootfs echo "making dir : bin dev etc lib proc sbin sys usr"
2009-05-18 21:53:00 1369
原创 Linux shell脚本编写基础
在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入./smartzip就能运行脚本了。。每行命令开头处不用就空格也行。。 第1部分. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh
2009-05-14 15:53:00 29851 7
转载 shell脚本中一些特殊符号
1、{} 大括号:用法一:通配符扩展 eg: ls my_{finger,toe}s这条命令相当于如下命令的组合:ls my_fingers my_toeseg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,use
2009-05-14 15:44:00 2452
原创 Linux Shell : Test命令参数解析
格式: test conditionstest -n string : string 不为空 test -z string : string 为空test int1 -eq int2 : int1 == int 2test int1 -ne int2 : int1 != int2 test int1 -gt int2 : int1 > int2 test int1 -ge int2
2009-05-14 15:27:00 2368
原创 Sed学习笔记
Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。Table of Contents1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 8. 小技巧1. Sed简介sed是一种在线编辑器,它一次处理一
2009-05-13 14:51:00 541
原创 A zone is low on free memory--Linux下内存释放问题
最近在进行4020的SD卡测试时发现,如果长时间进行文件读写操作很容易出现如下提示:A zone is low on free memory!!上网查了下linux的内存和块设备的高速缓存问题,发现linux这块还真有文章:经常弄arm-linux的人们会注意到,当我们在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.
2009-05-12 18:30:00 1472
原创 implicit declaration of function 这种警告问题的原因及解决方法
最近在改进SD卡的SEP4020驱动时,在改掉所有的warning时老报一个implicit declaration of function 的警告错误,上网查了下原因,原来有两种情况会产生这种情况1 没有把函数所在的c文件生成.o目标文件2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明[root@mail linux]# make CHK include
2009-05-11 15:48:00 93529
原创 autoconf 的使用详解(2)
每个configure.scan文件都是以AC_INIT开头,以AC_OUTPUT结束。我们不难从文件中看出confiugre.in文件的一般布局:AC_INIT测试程序测试函数库测试头文件测试类型定义测试结构测试编译器特性测试库函数测试系统调用AC_OUTPUT上面的调用次序只是建议性质的,但我们还是强烈建议不要随意改变对宏调用的次序。 现在就开始修改该文件:$mv co
2009-05-07 21:00:00 1400
原创 autoconf 的使用详解(1)
最近在编译yabasic时老在configure时老过不过去,很受打击,于是决定学习下这个autoconf的过程,网上看了些资料,再找个simple代码改下,在linux下编译出来,有了初步的结果,现在链接这块还有不少问题。 引子 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make
2009-05-07 16:25:00 2667
原创 fedora 7 下卸载软件
Linux 中如何卸载已安装的软件. Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序” 来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。它可以用来建立、安装、查询、更新、卸载软件。该工具是在命令行下使用的。在Shell的提示符后输入rpm,就可获得该命令的帮助信
2009-04-27 22:11:00 1736 2
原创 Linux任务切换代码(switch_to)详解
Copyright 2009 (c) benzus以下代码来自Linux-1.0内核 include/linux/sched.h 文件。(注意到Linux 0.11版的内核基本上也同样是这段代码,所以本文也同样适用于0.11内核)01 #define switch_to(n) { / 02 struct (long a,b;} __tmp; / 03 __asm__("cm
2009-04-22 16:01:00 3672 15
原创 内核处理资源竞争的方法
为什么Linux 内核里面很多代码为了处理race condition(竞争条件),都加上了诸如cli sti这样的开关中断指令,这个问题貌似很不值得一提。在wait_on_buffer函数(如下代码所示)中,开关中断仅仅就是为了避免竞争条件和中断对临界代码的干扰?static _inline void wait_on_buffer(struct buffer_head * bh){
2009-04-22 15:44:00 701
原创 Linux的时间
好久没管理博客了,上次打开博客速度太慢,都不想用博客了,今天上去发现登陆速度很快,很欣慰啊。今天看了下Linux时钟的概念,现在总算对Linux时钟算是比较懂了。通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对时钟滴答
2009-04-22 15:19:00 735
原创 SEP4020的USB DEVICE 在linux下驱动的实现(1)
今天是3月31号,这个月的主要收获是编写了一个热敏打印机驱动和4020的usb device的驱动,热敏打印机驱动倒没什么难度就是一个简单的字符型设备,三下五去二就把它给干掉了,但usb gadget的驱动本来以为也不会太难,但最后老是出现问题一大堆,大概从3月8号开始弄一直到3月27号才弄的差不多,花了三周时间,学到的东西也不少从c语言本身到usb的协议到scsi硬盘协议这些都一路趟过来,下面稍
2009-03-31 20:05:00 967 1
原创 Linux下转换字符集(UTF8转换)(转)
在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h,使用前需包含之。#include iconv函数族有三个函数,原型如下:(1) iconv_t iconv_open(const char *tocode,
2009-03-03 14:14:00 3491
原创 字符编码笔记:ASCII,Unicode和UTF-8(转)
今天中午,打印机的中文老打不出来,估计是编码转换不对,于是先上网查了两篇资料,转载在此:Unicode和UTF-8之间的关系:1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态
2009-03-03 14:05:00 1230
原创 typeof在linux中妙用
今天偶然又看到了typeof这个东西,只知道它大概是返回变量的类型,后来上网查了下发现这个关键字在linux中用的非常多, 这里大概叙述了typeof是一个什么东西,怎么用,实际上可以用简单的话来重述。如果你对sizeof很熟悉的话,那么大可进行类推,sizeof(exp.)返回的是exp.的数据类型大小,那么typeof(exp.)返回的就是exp.的数据类型。值得注意的是在上面的话里我们可以看
2009-02-23 16:02:00 8693 7
原创 FAT16及32文件系统的学习(2)
表2 FAT32分区的扩展BPB字段 字节位移字段长度(字节)典型取值字段名称和定义0x4010x80物理驱动器号( Physical Drive Number) 与BIOS物理驱动器号有关。软盘驱动器被标识为0x00,物理硬盘被标识为0x80,而
2009-02-23 11:16:00 1306
原创 FAT16及32文件系统的学习(1)
最近在搞SD卡的linux驱动,在调试过程中老发现我对SD卡写入文件后再进SD卡是发现文件名错误如下所示:/mnt # ls -lls: ./ pf.: No such file or directory-rwxr-xr-x 1 root root 566 Jan 1 00:00 pf-rwxr-xr-x 1 root root
2009-02-23 11:07:00 1153
原创 函数指针的妙用
今天上www.armfans.net网站上浏览帖子的时候,看到一个很好玩且非常有学习意义的帖子,将的是c中函数指针的妙用,现将内容转录如下一小段精彩的 C语言,1和2实现相同的功能,欢迎大伙跟帖呵(特别感谢trio老师)1 void (*theUboot)(void); 。。。。 theUboot = (void (*)(void))(0x30700000); *th
2009-02-22 21:32:00 1527 1
原创 (转)拨号时提示找不到netcfg.hlp文件
出现这个问题很有可能是精简系统把帮助文件都删除了的,如果你的网络连接没问题了,这个提示自然也就消失了,没大问题的。这个很解决办法也比较简单,方法有三:一、如果你手头有XP安装盘的话,那就到I386目录里找到netcfg.hlp文件复制到你电脑C盘 Windows/help 目录下,然后重启下电脑即可。二、可以到其它电脑的 Windows/help 目录下将netcfg.hlp这个
2009-02-21 18:01:00 49540 1
原创 nfs文件系统不能进行写操作
今天看到leeming在sep4020的板子上挂nfs网络文件系统,能挂起来,但要创建一个文件夹却报错# mkdir zlmnfs: Read-only file system 最后查出来发现是/etc/export文件写错了/nfs 192.168.0.2 (rw,sync,no_root_squash)红色部分中间多了一个空格,去掉空格,就OK了,呵呵
2009-02-19 16:41:00 945 1
原创 移植MiniGUI的调试记录
将minigui移植到目标上:1,复制libc,ld等工具到/lib中;2,复制库文件将库文件拷贝到/lib下,资源文件到/lib/minigui下,修改/usr/local/etc/Minigui.cfg将所有/usr/local/lib 替换成/lib3,建立mknod fb c 29 0/dev/input下建mknod mice c 13 63Tslib交叉编译环境问题心得 Q1:在
2009-02-19 08:53:00 2403
原创 Linux USB驱动框架分析(转)
Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的
2009-02-13 20:28:00 693
原创 window的hiberfil.sys和pagefile.sys作用
今天突然发现C盘空间严重不足,进C盘看到两个很大的文件:hiberfil.sys和 pagefile.sys ,这两个文件是干什么用的,能否删除?上网查阅结果如下: A:“hiberfil.sys”是系统休眠文件,其大小和电脑的物理内存一样大,它可以删除(但不能手动删除),只要在“控制面板”中打开“电源选项”,之后在电源管理对话框的“休眠”标签下,去掉“启用休眠”前的勾,休眠文件就会自动删除。
2009-02-13 12:11:00 755
原创 minigui-1.3.3移植到SEP4020EVB详解
在这里只讲怎样将minigui-1.3.3移植到开发板EVB-SEP4020上去,在pc上安装minigui-1.3.3不用讲,这里我用到的交叉编译器是arm-linux-gcc3.4.1MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上都有这些库文件,所以不需要安装,可是现在要交叉编译了,交叉编译器可是不带这些库文件的,所以我们得首先自己编译这些库文件装到交叉编译器中去。注意一点:
2009-02-11 14:14:00 791
kernel里面的中断代码分析
2009-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人