博文

Linux 资 源 链 接(2006-09-28 22:25:00)

摘要: Linux 资 源 链 接 Linux相关的资源网站,并不断对其进行更新。 Sourceforge LinuxForum uClinux官方网站 Qt/Embeded BusyBox Microwindows uClibc LinuxToday LinuxDevices Redhat Linux                      ......

阅读全文(2297) | 评论:0

11种经典软件滤波的原理和实现(2006-09-24 23:07:00)

摘要:11种经典软件滤波的原理和实现  

1、限幅滤波法(又称程序判断滤波法)
    A、方法:
        根据经验判断,确定两次采样允许的最大偏差值(设为A)
        每次检测到新值时判断:
        如果本次值与上次值之差<=A,则本次值有效
        如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
    B、优点:
        能有效克服因偶然因素引起的脉冲干扰
    C、缺点
        无法抑制那种周期性的干扰
        平滑度差
   
2、中位值滤波法
    A、方法:
        连续采样N次(N取奇数)
        把N次采样值按大小排列
        取中间值为本次有效值
    B、优点:
        能有效克服因偶然因素引起的波动干扰
        对温度、液位的变化缓慢的被测参数有良好的滤波效果
    C、缺点:
        对流量、速度等快速变化的参数不宜

3、算术平均滤波法
    A、方法:
     &nbs......

阅读全文(100) | 评论:0

C54X DSP 的基本知识点(2006-09-24 14:22:00)

摘要:C54X DSP 的基本知识点  1、DSP芯片内部采用改进的哈佛结构,允许同时取指令和取数据,而且还允许在程序空间和数据空间之间相互传送数据。
所谓哈佛结构,是将程序和数据的存贮空间分开,各有各的地址总线和数据总线。这样同一条指令可以同时对不同的存贮空间进行读操作或写操作,从而提高了处理速度。
和哈佛结构相配合的就是流水线操作。如果一条指令仅仅对一个数据空间操作,哈佛结构就失去其存在的意义。而DSP指令又不可避免地需要一些单操作数指令。
所谓流水线操作,就是将各条指令执行过程的几个阶段(取指、译码、取操作数、执行)重迭进行,执行完第一条指令的第一步后,紧接执行该指令的第二步,同时执行下条指令的第一步,使得指令执行加快,使大多数指令都可以在单个指令周期内完成。
2、DSP芯片内部采用多总线结构,´C54X内部有8条16位总线,即1条程序总线,3条数据总线,和4条地址总线。程序总线PB传送取自程序存贮器的指令代码和立即操作数或系数表中的数据;数据总线CB和DB传送读自数据存贮器的操作数;数据总线EB传送写到存贮器的数据;地址总线传送执行指令所需的地址。
3、DSP执行一条指令,需要经过取指、译码、取操作数和执行等几个阶段。由于采用流水线结构,使指令执行的这几个阶段重迭进行。´C54X有一个6级深度的流水线,在任何一个机器周期内,可以有1~6条不同的指令在同时工作,每条指令工作在不同级的流水线上。
4、´C54X可寻址64K字程序空间,64K字数据空间,64K字I/O空间,总共可寻址192K字空间,而´C548和´C549的程序空间可扩展到8M(即8192K)字。
5、´C54X中,内部存贮器的形式有DARAM、SARAM和ROM三种,RAM(包括DARAM和SARAM)总是安排到数据存贮空间,也可以构成程序存贮空间;ROM一般构成程序存贮空间,也可部分地安排到数据存贮空间。所谓双寻址RAM(DARAM)就是每个机器周期内可以进行两次存取操作的RAM存贮器,而单寻址RAM(SARAM)就是每个机器期间内只能进行一次存取操作的RAM存贮器。
6、在处理器工作方式状态寄存器PMST中有3个状态位MP/ 、OVLY和DROM,用来安排´......

阅读全文(440) | 评论:0

三种主流嵌入式图形用户界面的移植及性能比较(2006-09-22 17:47:00)

摘要:三种主流嵌入式图形用户界面的移植及性能比较 引言 与通用的GUI系统相比,嵌入式系统下对GUI基本要求包括:轻型、占用资源少、高性能、高可靠性和可配置。目前,面向嵌入式Linux系统的有代表性的GUI系统有北京飞漫软件公司的MiniGUI、美国Century软件公司的MicroWindows、挪威Troltech公司的Qt/Embedded。本文对这三种主流的GUI系统进行了移植,并对它们的性能进行了比较。   三种嵌入式GUI的移植 采用的项目平台HHARM2410-FEC-R1开发套件,采用203MHz 的ARM920T 内核的处理器S3C2410。 HHARM2410-FEC-R1 套件由核心板和底板(外设板或称基本板)组成,核心板上集成Samsung 公司S3C2410 处理器,64MB SDRAM以及16MB 的FLASH(闪存),为我们进行嵌入式GUI研发提供了足够的空间。底板上则提供以下外设接口:一个四线RS-232 串口(COM1),一个10M/100M自适应以太网接口,一个TFT LCD接口, 一个触摸屏接口。核心板和底板配合即构成一个最小的完整应用系统。 移植过程中我们采取了宿主机和目标板的开发模式。宿主机是一台运行Linux 的PC 机服务器,目标板即开发板。先在宿主机上调试通过后,再移植到目标板上。 移植工作主要集中在两个方面: 在华恒开发板附带的软件包中,已经包括有了交叉编译所需要的二进制工具Binutils、标准C函数库libc以及生成ARM平台代码的x86交叉编译器gcc、g++等工具软件包。将这些工具软件安装到宿主机上,将该安装路径添加至PATH环境变量中去,以便shell能够找得到,这样就完成了交叉编译环境的设置。 接下来就可以将GUI运行所需要的资源文件和可执行文件都采取交叉的方式进行编译,然后将编译生成的文件添加到原来的文件系统中去,就可以将其下载到目标板上进行调试了。   下面着重对Mini GUI系统的移植进行介绍。   MiniGUI图形系统由函数库、资源、演示程序三部分组成,相应地在对MiniGUI进行移植时也要对这三部分分别进行移植。 MiniGUI使用了自由软件常用的“automake”和“autoconf”接口......

阅读全文(2981) | 评论:0

Linux/Unix环境下的make和makefile详解(转贴)(2006-09-22 17:26:00)

摘要:Linux/Unix环境下的make和makefile详解(转贴)
学习uclinux,我觉得要先学习make和makefile,我从网上找来几篇文章,与大家共享 Linux/Unix环境下的make和makefile详解  
Pathetique
  无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,
我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,
对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。
而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动
完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大
提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
  但令人遗憾的是,在许多讲述Linux应用的书籍上都没有详细介绍这个功能强大但又非常复杂的编译工具。在这里我就
向大家详细介绍一下make及其描述文件makefile。
Makefile文件
  Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile
文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。
makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的
界面修改 makefile 文件而已。
  在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件。如果要使用其他文件作为 makefile,则可利用类似下面的 make
 命令选项指定 makefile 文件:
  $ make -f Makefile.debug
  例......

阅读全文(2326) | 评论:0

uClinux中Makefile文件整体分析 (2006-09-22 17:24:00)

摘要:uClinux中Makefile文件整体分析
---------------------------------------------------------------------------------------
1、概述
~~~~~~~
uClinux/目录下的这个Makefile 是个总领式的文件,通过它又层层包含调用各个目录、子目录下面对应Makefile,就这样层层调用下去,从而完成整个软件系统的编译。
2、具体分析
~~~~~~~~~~
下面根据uClinux/Makefile 文件的内容(内容有删节)大致介绍一下整个编译的调用关系。 ----------------------------------------------------------------------------------------
include common.mk
---------------------------------------------------------------------------------------- 首先包含common.mk,它里面定义了一些通用的全局变量,例如:common.mk 文件中有如下内容:
.EXPORT_ALL_VARIABLES:
(相当于C 中的extern 关键字,表示下面的宏变量可以为其它文件所使用)
ROOTDIR = $(shell pwd)
TOOLS = $(ROOTDIR)/tools ----------------------------------------------------------------------------------------
.EXPORT_ALL_VARIABLES
---------------------------------------------------------------------------------------- 输出下面所有全局变量 ------------------------------------------------------------------------------......

阅读全文(2034) | 评论:0

LINUX基本操作命令(2006-09-22 17:24:00)

摘要: LINUX基本操作命令   基本操作命令
----------------------------------------------------------------------
----------------------------------------------------------------------
ls #以默认方式显示当前目录文件列表
ls –a #显示所有文件包括隐藏文件
ls –l #显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls --color=never *.so > obj #不显示文字颜色,将所有so文件记录到obj文件中 ----------------------------------------------------------------------
cd dir #切换到当前目录下的dir目录
cd / #切换到根目录
cd .. #切换到到上一级目录
cd ../.. #切换到上二级目录
cd ~ #切换到用户目录,比如是root用户,则切换到/root下 ----------------------------------------------------------------------
rm file #删除某一个文件
rm -fr dir #删除当前目录下叫dir的整个目录 ----------------------------------------------------------------------
cp source target #将文件source 复制为 target
cp /root/source . #将/root下的文件source复制到当前目录
cp –av soure_dir target_dir #将整个目录复制,两目录完全一样
cp –fr source_dir target_dir #将整个目录复制,并且是以非链接方式复制,当source目录带有符号链接时,两个目录不相同 -----------------------------------------------......

阅读全文(1382) | 评论:0

PCI总线接口芯片9050及其应用(2006-09-22 17:04:00)

摘要:PCI总线接口芯片9050及其应用 
 
1、引言
PCI总线是目前应用最广泛。最流行的一种高速同步总线,具有32bit总线宽度,总线时钟频率为0~3MHZ,最大传输速率可以达到132Mbyte/s,远远大于ISA总线5Mbyte/s的速度。而且,它不象ISA总线那样把地址寻址和数据读写控制信号都交给微处理器来处理,而是独立于处理器,所以它可以支持突发传送。PCI总线与CPU无关,与时钟频率也无关,因此它可以应用于各种平台,支持多处理器和并发工作。PCI的高性能、高效率以及与现有标准的兼容性和充裕的发展潜力,是其它总线听不能及的,被计算机界公认为是最具有潜力的局部总线标准。
虽然确这么多忧点,但是PCI总线协议比较复杂,因此它的接口电路实现起来也比较困难。它不但有着严格的同步时序要求,而且为了实现即插即用和自动配置,PCI接口还要求有许多的配置寄存器。对于一般的设计者来说,为了缩短开发周期,没有必要自己去设计所有的接口逻辑,只要利用通用PCI接口芯片就能很好的进行设计开发,大大减小了工作的难度。现在使用较多的是AMCC公司S59XX系列和PLX公司推出的PLX系列。下面将主要介绍PILX公司的PCI9050接口芯片。
2、PCI9050概述
PCI9050是PLX公司为扩展适配板卡推出的能提供一种混合的高性能PCI总线目标模式的接口芯片,可提供用于适配卡的小型高性能PCI总线目标接口。
 
 
PCI9050符合PCI2.1规范,支持多路复用和非多路复用的8位、16位和32位通用局部总线,总线的宽度由寄存器来决定。总线是否复用由MODE管脚来决定。
PCI9050的主要的特点:
(1)支持开发低成本的从模式适配器。PCI9050支持突发存储器映射和I/O映射方式在PCI总线和局部总线存取数据。双向FIFO可以用于零等待状态突发操作。PCI总线总是工作在突发方式,局部总线可以设置成突发方式或者连续单周期方式。
(2)产生中断。可以从两个局部总线中断输入生成一个PCI中断。
(3)总线驱动。PCI9050直接生成所有的控制、地址和数据信号,用于驱动PCI总线,不需要额外驱动电路。
(4)串行EEPROM接口。PCI9050有一个可选的串行EEPROM用来装载......

阅读全文(292) | 评论:0

在嵌入式系统中实现对U盘的操作 (2006-09-22 16:56:00)

摘要:在嵌入式系统中实现对U盘的操作 摘要:主要介绍在嵌入式系统中利用SL811HS对U盘操作的实现方法;简要介绍USB设备中的海量存储类、SL811HS的芯片特点及FAT文件系统。 关键词:USB U盘 FAT SL811HS 引 言   USB(通用串行总线)用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在中速和低速的外设。   随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起和控制。但是随着嵌入式产品应用领域的日益增长,USB外设的应用范围也随之扩大,为此在嵌入式系统中实现对USB外设控制也变得日益迫切。   本文针对USB外设中的U盘,说明如何在嵌入式系统中利用SL811HS实现对其的操作。 1 海量存储类   USB设备分为五个大类,即显示器(monitors)、通信设备(communications devices)、音频设备(audio)、人机输入(human input)和海量存储(mass storage)。   通常所用的U盘、移动硬盘均属于海量存储类。   海量存储类的规范中包括四个独立的子规范,即CBI Transprot、Bulk-Only Transport、ATA Command Block、UFI Command Specification。前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/状态,CBI传输协议则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFI协议则针对USB移动存储。   本设计中所使用的U盘遵循Bulk-Only传输协议和UFI命令规范。 2 实现方法 2.1 硬件设计   本设计采用SL811HS芯片完成对U盘的操作。SL811HS是Cypress公司推出的具有主/从两种工作模式的USB控制器,遵循USB1.1规范;可自动检测总线速率,支......

阅读全文(1672) | 评论:0

系统学习Linux 11点建议 (2006-09-22 16:39:00)

摘要: 系统学习Linux  11点建议[转贴]  文章来源:嵌入式资讯网    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。

一、从基础开始:
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux 就是希望构架网站,根本没有想到要先了解一下Linux 的基础。这是相当困难的。
二、Linux命令是必须学习
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子:Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last ......

阅读全文(1615) | 评论:0