- 博客(85)
- 资源 (42)
- 收藏
- 关注
转载 利用Ping拨打测试实现数据网端到端的带宽测试
随着中国移动各种数据业务的开展,对于端到端用户的服务质量保证得到了越来越多的重视。很多业务的开展都要得到足够的端到端可用带宽的保证,对于运营商来说,核心运营网络优化工作的基础必然是基于端到端的带宽测量。对现有实际带宽容量的测量不仅对于评估网络工程质量有一定的意义,而且还影响到网络扩容以及资源利用率。市场上现有网管产品在带宽测量上功能较单一,价格也非常昂贵,不适合集中网管的要求。针对这一需求,目前在
2009-12-13 19:58:00 6498
转载 常用的DOS命令
net use //ip/ipc$ " " /user:" " 建立IPC空链接 net use //ip/ipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: //ip/c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为 H: net use h: //ip/c$ 登陆后映射对方C:到本地为H: net use //ip/ipc$ /del
2009-07-16 20:18:00 1184
原创 linux设备驱动的周期事件
带有定时器/线程的周期事件的驱动结构与带有中断的驱动程序结构类似,只是把其中的中断处理函数换成定时器或线程处理函数,其模型如下图所示。周期性事件处理有两种:定时器和线程。使用定时器处理周期性事件#include 定义定时器struct timer_list { struct list_head list; // 用来形成链表,由内核管理
2009-06-10 22:15:00 1654
原创 linux设备驱动的中断与并发请求事件
设备驱动的中断事件处理如下图所示,他与普通驱动的不同之处在于多了个数据缓冲区,驱动程序对上层提供的read/write方法并不直接完成硬件的数据操作,中断处理程序也是相对独立,他们通过缓冲区交换数据。而数据缓冲区的数据可通过FIFO进行读和写的操作,但每次只能进行读或者写的操作,两者不可同时进行,这就又涉及到了并发请求。并发请求类似信号量中的PV操作,对数据缓冲区的读写就
2009-06-10 21:12:00 5267
原创 linux字符设备驱动程序设计概述
字符设备是最基本、最常用的设备。概括的说,字符设备驱动主要要做三件事:1、定义一个结构体static struct file_operations变量,其内定义一些设备的打开、关闭、读、写、控制函数;2、在结构体外分别实现结构体中定义的这些函数;3、向内核中注册或删除驱动模块。具体如下:字符设备提供给应用程序流控制接口有:open/close/read/write/ioctl,添加一个字符设备
2009-06-10 19:36:00 2670 1
原创 linux设备驱动概述
应用程序与库函数、内核、驱动之间的关系应用程序、库、内核、驱动程序的关系:应用程序调用应用程序函数库完成功能、应用程序以文件形式访问各种资源、应用程序函数库、部分函数直接完成功能、部分函数通过系统调用。 由内核完成内核处理系统调用。 调用设备驱动程序,设备驱动直接与硬件通信。 它们之间的关系如下图所示 设备类型:常见的设备有三类:字符设备、块设备、网络设备。字
2009-06-08 14:45:00 2134
原创 半导体存储器
半导体存储器 一 半导体存储器概述 半导体存储器是微型计算机的重要组成部分,是微型计算机的重要记忆元件,常用于存储程序、常数、原始数据、中间结果和最终结果等数据。下面首先介绍几个与半导体存储器有关的概念。 位(bit):计算机中表示信息的基本单元是位,它用来表达一个二进制信息“1”或“0”。在存储器中,位信息是由具有记忆功能的半导体电路(如触发器)实现的。 字节(Byt
2009-05-22 12:25:00 7491
转载 Linux内核Makefile浅析
Linux内核Makefile浅析 1. 配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:1. Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 2. 配置文件(config.in):给用户提供配置选择的功
2009-05-21 20:18:00 5462
原创 向内核中添加驱动
本文为《编译S3C2410的kernel》的续 这里以最简单的驱动为例:网卡驱动。步骤一: 准备网卡驱动程序,enc28j60.c、enc28j60.h。步骤二: 在内核的驱动目录下建立ncard的文件夹 # cd /home/su/kernel/drivers # mkdir ncart把网卡
2009-05-21 20:15:00 2915
原创 用vivi模拟向内核中加入自己的驱动模块
本文为《向vivi中添加自己的命令》的续写 由于vivi和Linux的配置机制相同,而且vivi的编译时间比linux少的多,为了节省时间我们以vivi为例,加入自己的模块。内核模块的加入与vivi的相当,这里以test.c等程序来模拟内核模块下的驱动程序,除此之外,两者大概要做的都是:修改顶层vivi/Makefile、修改vivi/drivers/Makefile、修改vivi/
2009-05-21 19:04:00 1101
原创 编译S3C2410的kernel
1、 首先准备内核源文件linux-2.4.18-rmk7-pxal-mz4.tar.bz2,其是三星公司提供的sdk15-S3C2410-tk-20030630.iso镜像内的一个压缩包。相关的内核源文件压缩包可到www.arm.linux.org.uk/developer/下载本文件名代表的意思是,以2.4.18版本为基础修改的内核,在第7次发行时,MIZI公司的开发者们以这个
2009-05-21 18:48:00 1292
原创 向vivi中添加自己的命令
相关原理:相关机制及初始化的实现在lib/command.c中完成的。包括:添加命令、查找命令、执行命令、解析命令。具体命令执行的核心函数在相应的模块里实现。这样就形成了两层的软件架构:顶层管理层——command.c、底部执行层——相应命令的执行函数。核心数据结构user_command。typedef struct user_command {const char
2009-05-21 17:22:00 994
原创 使用Busybox制作根文件系统
选定 busybox-1.9.2.tar.bz2 这个版本, 以静态方式编译, 即生成的 busybox 不需要共享库的支持就能运行。这样做我们就不需要布署程序库了。缺点是自己写的 arm-linux 程序在这个根文件系统中是不能运行的,因为缺少共享程序库的支持。不过不用担心,通过在目标机里以挂接 NFS 的方式, 将宿主机的 arm-linux-gcc 编译器的库文件挂到 arm-linux 的
2009-05-21 16:00:00 8575
原创 Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符“include”、“-include”和“sinclude” 如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜索
2009-05-20 08:11:00 46870 5
原创 Makefile中自动化变量
模式规则中,规则的目标和依赖文件名代表了一类文件名;规则的命令是对所有这一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去意义。那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点。假如你需要书写一个将.c文件编译到.o文件的模式规则,那么你该如何为gcc书写正确的源文件名?当然了,不能使用任何具体的文件名,因为在每一次执行模式规则时源文件名都是
2009-05-19 21:56:00 3654
原创 Makefile中的隐含变量
隐含规则中所使用的变量(隐含变量)分为两类:1. 代表一个程序的名字(例如:“CC”代表了编译器这个可执行程序)。2. 代表执行这个程序使用的参数(例如:变量“CFLAGS”),多个参数使用空格分开。当然也允许在程序的名字中包含参数。但是这种方式建议不要使用。以下是一些作为程序名的隐含变量定义: 代表命令的变量AR 函数库打包程序,可创建静态库.a文档。默认是“ar”。
2009-05-19 21:54:00 2341
原创 Makefile中的模式规则
模式规则模式规则类似于普通规则。只是在模式规则中,目标名中需要包含有模式字符“%”(一个),包含有模式字符“%”的目标被用来匹配一个文件名,“%”可以匹配任何非空字符串。规则的依赖文件中同样可以使用“%”,依赖文件中模式字符“%”的取值情况由目标中的“%”来决定。例如:对于模式规则“%.o : %.c”,它表示的含义是:所有的.o文件依赖于对应的.c文件。我们可以使用模式规则来定义
2009-05-19 21:41:00 12256
原创 Makefile中的标准目标名
所有GNU发布的软件包的Makefile中,必须包含以下这些目标: all 此目标的动作是编译整个软件包。“all”应该为Makefile的终极目标。该目标的动作不重建任何文档(只编译所有的源代码,生成可执行程序);Info文件应该作为发布文件的一部分,DVI文件只在明确指定的时候才应该被重建。缺省情况下,对所有源程序的编译和连接应该使用选项“-g”,是最终的可执行程序中包含调试
2009-05-19 21:30:00 6440
原创 GNU开发工具简介(二)
第三节 链接器ld ld软件的作用是把各种目标文件(.o文件)和库文件链接在一起,并定位数据和函数地址,最终生成执行程序。ld软件识别一种用链接命令语言(Linker Command Language)表示的链接描述(Linker Script)文件来显式地控制链接的过程。通过BFD(Binary Format Description)库,ld可以读取和操作COFF、ELF、a.out等
2009-05-18 20:17:00 1866
原创 GNU开发工具简介(三)
第四节 链接 链接就是将不同部分的代码和数据收集和组合成一个单一文件的过程,这个文件可以被加载到存储器并执行。链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是程序被加载器加载到存储器并执行时;甚至执行于运行时,由应用程序来执行。在早期的计算机系统中,链接是手动执行的,在现代系统中,链接是由叫做链接器的程序自动执行的。 链接器在
2009-05-18 19:45:00 2082
原创 GNU开发工具简介(一)
第一节 GNU Tools开发工具简介 GNU开发工具为了有效地进行嵌入式开发,至少需要了解和掌握如下几类工具:编译开发工具:即能够把一个源程序编译生成一个可执行程序的软件,如gcc等。调试工具:即能够对执行程序进行源码或汇编级调试的软件,如gdb等。软件工程工具:用于协助多人开发或大型软件项目的管理的软件,如make、cvs等。 具体来说,我们需要对如下软件
2009-05-18 19:19:00 4584 2
原创 Binutils常用工具部件简介
Binutils是GNU(ftp://ftp.gnu.org)工具之一,主要是二进制代码的处理维护工具。其工具部件简介如下:add2line:将地址转换成文件名或行号对,以便调试程序。 ar:从体系文件中创建、修改、扩展程序代码。 as:生成汇编程序代码。 c++filt:建立低级语言和用户级语言的名称符号联接,并保持它们的相互关系。 gasp:汇编宏处理器。 ld:
2009-05-18 19:13:00 964
转载 定制ARM For Linux交叉编译工具详细介绍
1、 ToolChain 简介 ToolChain包含许多部件:主要之一是GCC,它可以是本机编译工具或交叉编译工具,GCC由Binuitls工具支持,Binutils是二进制代码维护工具,这些部件是编译程序的必要工具,同时他们也需要C库(glibc)支持。认真考虑一下:定制一套编译工具并不是想像中的易事!如果你还想继续看下去,必须具备如下技能: 熟悉Linux环境 熟悉Linu
2009-05-18 19:10:00 1771
原创 浅析vivi的Makefile
#定义版本信息的四个变量:发行版本号、版本号、补丁程度、次版本号VERSION = 0 PATCHLEVEL = 1 SUBLEVEL = 4 #发行版本号由 版本号:补丁程度:次版本号 组成VIVIRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL) #定义针对arm平台#“
2009-05-18 18:23:00 1706
原创 minicom 的配置
minicom的配置 STEP 1:输入minicom启动,或者输入minicom –s直接进入设置模式。或者进入minicom后按ctrl+A, Z , O,进入设置模式。 STEP 2:选择串口:选择菜单中的“Serial port setup”,按回车,再按“A”,以设置“Serial Devece”,如使用串口1,则输入/dev/ttyS0,如使用串口2,则
2009-05-15 10:01:00 1733
转载 VIVI 常用命令
VIVI 常用命令资料来源:互连网编辑整理:马晨元编辑日期:2008-4-2Email:mcy2000@21cn.comQQ:12282568VIVI 常用命令vivi 是韩国Mizi 公司开发的BootLoader,适用于ARM9 处理器。vivi 有两种工作模式,启动加载模式可以在一段时间后(这个时间可更改)自行启动Linux 内核,这是vivi 的默
2009-05-14 17:59:00 1302
转载 pragma指令简介
pragma指令简介在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。一.message参数message它能够在编译消息输出窗口中输出相应的消息,这对于源代码信息的控制非常重要的,使用方法为:#pragma message(“消息文本”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。当我们在程序中定义了
2009-05-14 17:06:00 654
转载 GCC编译c程序的工作过程
在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它
2009-05-14 17:03:00 3370 1
转载 vivi中bon和part的区别
vivi中bon和part的区别: 1、vivi(bootloader)启动后可使用命令:part show查看mtdpart信息;bon part info查看bon分区信息。 2、vivi中的bon分区相关:vivi启动linux时会将linux_cmd_line(其在vivi内核的位置为: vivi/arch/s3c2410/smdk.c中的:c
2009-05-14 17:01:00 1331
原创 SecureCRT的配置
SecureCRT的配置 第一次运行SecureCRT会弹出对话框Quick Connect,设置如下:Protocol选择SerialPort选择COM3(4)Baud rate选择115200Data bits选择8Parity选择NoneStop bits选择1去掉Flow Control的所有选项点Connect后,可以与开发板通过串口进行通信
2009-05-14 17:00:00 3010 1
原创 xp下超级终端的配置
超级终端的配置: STEP 1:运行/附件/通讯/超级终端,建立一个通信终端。 STEP 2:输入终端名称:armtarget,选择一个图标。点确定,进入下一步。 STEP 3:选择ARM开发板实际连接的PC机串口(如COM3),按确定后出现属性对话框,设置通信和格式和协议,这里设置如下:每秒位数:115200数据位:8奇偶较验:无停止位:
2009-05-14 16:57:00 2816 3
原创 vivi的配置与编译
vivi的配置与编译 STEP 1:将MIZI 工具包的vivi-20030629.tar.bz2拷贝到工作目录下并解压,生成vivi目录。 STEP 2:进到vivi 目录# cd vivi修改/vivi/Makefile里的一些变量设置:# vi Makefile....LINUX_INCLUDE_DIR = ../kernel/incl
2009-05-14 16:53:00 1379 1
原创 嵌入式系统的开发流程
嵌入式系统的概念:以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统与普通PC机的对比:软件上的对比:名称嵌入式系统PC引导代码Bootloader引导,针对不同电路进行移植主板的BIOS引导,无须改动
2009-05-14 16:44:00 9276
原创 什么是嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制
2009-05-12 12:12:00 1087
原创 三种常用的嵌入式操作系统特点与性能对比
· PALM OS Palm是3Corn公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口;利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有极强开放性的系统,现在有大
2009-05-12 12:05:00 5918
转载 exit()与_exit()在linux进程控制中的区别
linux进程控制-exit()#includevoid exit(int status);不像fork那么难理解,从exit的名字就能看出,这个系统调用是用来终止一个进程的。无论在程序中的什么位置,只要执行到exit系统调用,进程就会停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。请看下面的程序:/* exit_test1.c */#includemain(
2009-05-10 12:43:00 1872
转载 C语言中关键字extern的作用
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组: char a[6]; 在另外一个文件里用下列语句进行了声明: extern ch
2009-05-09 13:56:00 23440 2
转载 linux网络应用的常用命令
转自:http://www.wantso.com/ShowArtitle.ASP?art_id=8331&cat_id=16常用网络命令 在Red Hat Linux 7.1系统提供了与网络相关的工具,掌握好这些工具是十分必要的: 第一类:设置工具 1.netconf: netconf是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。它可以在con
2009-05-09 13:49:00 1048
原创 基于TFTP传输协议的客户端编程
TFTP协议 1. 目的TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位
2009-05-05 17:53:00 3276
原创 编写简单的网络版shell命令解释器
项目名称:网络版shell命令解释器主要目的:练习socket 编程实现功能:可利用windows 的telnet远程登录服务进到 linux 系统,运行自己编写的shell 命令解析器,进行一些简单的内部命令和外部命令的操作,并把操作的命令和运行的结果显示在windows 的telnet 终端上源代码在http://download.csdn.net/sour
2009-04-30 19:00:00 1332
MiniGUI-1.3 安装包
2009-04-25
Windows 编程模型
2009-04-23
构建嵌入式LINUX系统
2009-05-17
cygwin part 3
2009-05-12
cygwin part2
2009-05-12
cygwin part1
2009-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人