转载--Linux经典书籍博物馆展览 2009-05-18 11:24
posted @
2009-06-11 21:29 MEYE 阅读(507) |
评论 (0) |
编辑 收藏
Linux C Function参考手册
Linux C Function参考手册一本深入详细介绍Linux C 函数的书。。
有用的朋友可以看下.
附件: [Linux C Function参考手册]
LinuxC-Function.pdf (2008-7-2 09:04, 926.65 K)
http://bbs.lupaworld.com/attachment.php?aid=7508
http://v.youku.com/v_show/id_XMzM5MTI0NTY=.html
posted @
2008-07-06 14:58 MEYE 阅读(822) |
评论 (1) |
编辑 收藏
http://www.kenengba.com/post/402.html
20多个在线操作系统(webOS)一览
写于
2008-03-21 – 2:18 下午 | 作者:Jason Ng | 类别 »
互联网络 |
之前我介绍了很多在线软件,而说到在线软件,不能不提在线操作系统(WebOS),相比起单个的在线软件,在线操作系统功能更全面,所有功能都是基于浏览器(如果你所在的地方禁用的MSN,不妨尝试使用WebOS来登录)。有人相信webOS会成为未来的主流,因为和在线软件一样,你能在任何地方连接到自己的工作平台和文件存储。这里介绍20多个WebOS,其中有不少是提供中文界面的。
1、I-Cube
提供1G的在线存储和文件共享,多媒体支持和一些常用办公工具。同时拥有一个email客户端和编程开发工具。
2、EyeOS
EyeOS是一个开源软件,可以下载使用也可以在其服务器上在线使用。拥有丰富的网络程序以及办公套件。个性化强度高。
3、eXo Enterprise WebOS
使用了大量的Web2.0元素构造,使用了大量的AJAX和Jacascript,因此它使用起来是相当方便的,即使在没有互联网连接的情况下也可以使用。
4、Zimdesk
Zimdesk提供的应用程序可以用琳琅满目来形容,从办公应用到多媒体应用,从文件管理到网络电视,又或者从RSS订阅到聊天工具,功能可谓是很好很强大。
5、Glide OS
一个需要flash支持的在线操作系统,除了提供Web入口之外,还提供移动网络入口。提供的程序和Zimdesk大同小异,不过有点杂乱。
6、WidgetPlus
顾名思义,这是一个以Widget为基础构成的WebOS,由于Widget的开放性,这个OS提供功能必将会越来越强大。
7、Peepel
与其说在线操作系统,不如说Peepel是一个在线办公应用,和Zoho,Google Docs是大同小异的。相比之下,我更喜欢Zoho。
8、Xindesk
一个免费在WebOS,支持所有的文件在线存储,日程管理,联系人资料等等。有点像Vista?
9、YouOS
YouOS是一个非常优秀的WebOS,使用JavaScript来与服务器交换数据,在进行下一步操作之前,上一步的操作会被记录,方便返回。另外,YouOS在在线协同操作方面做得非常优秀。
10、Widgetop
注意,你不能使用IE来登入这个WebOS!Firefox,Safari等都没有问题。即使是iPhone的浏览器也可以。由于又是基于Widget的,其扩展性是相当强的。
11、CorneliOS
12、JavaFlashBridge
13、Appmarks
一个用于iPhone和iPod Touch的在线操作系统, 事实上从外观看来也很有“水果商”的感觉。
14、Craythur
Craythur在界面设计上花了不少功夫,直观看起来和windows非常相似。
15、Desktoptwo
Desktoptwo不但拥有华丽的界面,其可操作性也是非常强大的,和其它很多webOS不同,它的所有应用程序都是用php语言编写的,并且都支持拖曳操作。
16、Ghost
此Ghost并非彼Ghost,这个是G.ho.st,但和赛门铁克的Ghost有几分相似,因为它也是经常做“备份”的操作。G.ho.st提供的功能也是相当强大的,而且界面看起来比较舒服。
17、Orca
OK,你的确很喜欢Vista,那么orca将会非常适合你。从截图你可以看出它有多像Vista,目前Orca的所有项目已经迁移到StartFoce上去。
18、SSOE
19、Purefect
20、Goowy
以上20个WebOS介绍摘译自My10sen。
21、TomOS
不能不提的中文webOS服务,很多功能都是符合中国人的使用习惯的,因此使用起来会非常得心应手。
22、Jooce
一个基于flash的webOS,支持的语言达10多种,当然其中包括中文。使用起来非常舒服,其速度也是相当可以的。但我在使用时总出现图片出错的情况,莫非我的图片是不雅照?
posted @
2008-03-26 11:40 MEYE 阅读(1154) |
评论 (0) |
编辑 收藏
Android平台介绍 http://www.loveandroid.com/
Google android介绍http://www.loveandroid.com/viewthread.php?tid=72&extra=page%3D2
http://topic.csdn.net/u/20080314/08/8eb27070-cc44-48be-af11-dc6da4023441.html
Android是什么? Android是一个针对移动设备的程序集, 其中包括一个操作系统, 一个中间件和一些关键性应用. 本文首先概览了Android SDK提供的工具和APIs, 当您在使用Java语言来开发Android平台的应用时您会用到它们.
特性
1.程序程序框架可重用及可复写组件组成
2.针对移动设备优化过的JAVA Dalvik虚拟机,采用流行的JAVA进行应用开发
3.整合浏览器, 该浏览器基于开源的WebKit引擎开发
4.提供了优化过得图形系统, 该系统由一个自定义的2D图形库; 一个遵循OpenGL ES 1.0标准(硬件加速)的3D图形库组成
5.使用SQLite来实现结构化数据的存储
6.媒体方面对一些通用的audio, video, 和图片格式提供支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7.GSM技术(依赖硬件)
8.蓝牙, EDGE, 3G和WiFi(依赖硬件)
9.Camera, GPS, 指南针, 和加速计 (依赖硬件)
10.非常丰富的开发环境, 包括一个设备模拟器, 调适工具, 内存和效率调优工具和一个Eclipse的插件
Android的结构
下图展示了Android 操作系统的主要组件结构. 每一部分都在下面的段落有详细介绍
1.应用程序 Android会附带一些核心的应用程序, 包括一个email客户端, 短信程序, 日历, 地图, 浏览器, 通讯录等.
2.所有的应用程序都是由Java语言完成的.
3.应用程序框架 开发人员可以跟那些核心应用一样, 拥有访问框架APIs的全部权限. 应用的系结构设计简化了各组件之间的重用;任何应用都可以分发自己的组件, 任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。这个机制对用户来说同样适用, 他们也可以替换组件.
隐藏在每个应用后面的是一套服务和系统, 其中包括:
1.一套表现丰富,扩展性很强的View, 通过这些View您可以创建包括list, grid, 文本框, 按钮, 甚至一个嵌入浏览器的应用
Content Providers, 通过它可以在某个应用内访问其他应用的数据(例如通讯录), 或者共享自己的数据
Resource Manager, 提供对静态资源的访问能力, 例如国际化文本和layout文件
Notification Manager, 通过该机制, 所有的应用都可以在状态栏显示自己的提醒信息
Activity Manager, 用于管理应用的生命周期, 并且提供了通用的向后导航功能
2.库 Android 包含一套C/C++库, 被用于Android 系统中的各种组件中. 这些功能通过Android 应用框架展现给开发人员. 下面列出一些核心库:
System C library - 实现了BSD-derived 的标准C系统库(libc), 用于嵌入式的基于Linux的设备
Media Libraries - 基于PacketVideo的 OpenCORE; 该库提供了对许多流行的音频和视频格式的播放回放和录制功能, 同样包括静态图片文件, 包括MPEG4, H.264, MP3, AAC, AMR, JPG, 和 PNG 等
Surface Manager - 用于管理不同应用对图形显示子系统和2D和3D图形层的访问
LibWebCore - 一个时尚的web浏览器引擎, 为Android浏览器和内嵌的web view提供实现
SGL - 隐藏的2D图形引擎
3D libraries - 基于OpenGL ES 1.0 APIs实现的库; 该库用于3D图形加速或提供高优化的3D软件光栅器
FreeType - 位图和向量模式的字体绘制
SQLite - 一个强大的, 轻量的关系型数据库引擎, 用于所有的应用
Android 运行时 Android包含一组核心库, 提供了Java语言核心库内的大部分功能.
3.每一个Android应用运行在自己的进程里, 用该应用自己的Dalvik 虚拟机实例. Dalvik 可以让一个设备高效的运行很多个VM. Dalvik 虚拟机执行Dalvik Executable (.dex)格式的文件, 该格式的文件经过优化 占用很小的内存. 该虚拟机是基于存储器的, 运行经过Java语言编译器的类, 这些类通过"dx"工具被转换成.dex格式.
4.Dalvik 虚拟机依赖Linux kernel 来实现一些潜在功能, 例如线程和底层内存管理.
5.Linux Kernel Android基于Linux version 2.6内核来提供系统的核心服务, 例如安全机制, 内存管理, 进程管理, 网络堆栈和驱动模块. 该内核还扮演着一个虚拟的中间层, 该层介于硬件和其余的软件堆栈.
posted @
2008-03-26 10:13 MEYE 阅读(1059) |
评论 (0) |
编辑 收藏
http://www.5xue.com/modules/wordpress/?p=213
一切成功都是“一三五八成功模式”,这是《一生的保证》这本书的核心脉络,也是我八年研究成功学得出的结论,那些成功的人没有谁离开了这模式。那么“八”是什么呢?
人
类的一切设想都必须基于材料来实现,成功也毫无例外需要材料。所谓实现就是转化,成功是什么东西转化来的呢?显然还是物质、能量、信息,因为这世界除此之
外再无别的东西。但是物质、能量、信息是从最基本的哲学层面来说的,它并不具备操作性。你这一辈子可操作的资源不过八种:财富资源、信息资源、能力资源、
品质资源、人际资源、健康资源、时间资源、空间资源。
一、积累财富。金钱不是万能的,没钱是万万不能的,一句话没钱决不会成功。从你降生一刻起,从你喝第一口奶始,
物质就开始左右着你的命运。你的成长、你的教育以及人生的一切收获都是财富投资的结果。在你不能独立之前,财富决定着你,在你独立于社会后,财富影响着
你,即使是成功的人也要为此耗掉半生精力。在这个多变的职业世界里,你不会永远在一个地方工作,在一个岗位上淋漓尽致地发挥自己,当你感到无法施展时,你
会辞职或创业,如果你事先储蓄了足够的钱,将给你的成功奠定坚实的基础。
二、吸收信息。是信息造就了我们人,当然也是信息造就了我们的成功。一切创造、认知、判断都来源于信息,成功就
是不断吸收知识信息变成积木,然后按照你的规则把它搭出来。但我们最最核心的信息是某一专业的系统信息,你必须学会本行业所需要的一切知识并有见解。每个
人在年轻时都可能有过彻夜不眠、刻苦攻读,这在20岁甚或30岁都没有问题,但到了35岁,就不应该再为学习基本技能而大伤脑筋了。35岁应该是专家了,
在学术上差不多是副教授,基本上完成信息的积累,35岁之后就应该勃发了,可惜的是,许多人到四十岁了在本行业还没入门,他们的知识太缺乏系统,缺乏深度
了。
三、训练能力。能力=知识+训练,这是我的一个简化公式,不是心理学上的专业名词解释。掌握知识与智力有关,不
同类型的智力遗传度在35%~96%之间,而且95%以上都是正常的,智商低于70的弱智儿童全人口只占3%,所以我们先天性地就获得巨大资源,但这还不
是一个人全部的心理资源,甚至也不是开发出来的资源。高智商的人解决问题容易一些,但不等于成功就容易一些,世上有多少事非智商180不能做呢?只要智力
正常,就足够成功了,关键有没有把知识发挥出来用到实处的能力。第四章节“十全四美”十四种能力总有某几种是你的优势,你要用得炉火纯青,所谓“样样通样
样松”“一招鲜吃遍天”。十八般武艺你总要精一样,到35岁还不知自己的长处和短处是相当麻烦的,但不管怎样基本能力如表达、沟通、收集信息等每天都要
练。各种能力都极大地依赖于后天锻练与发掘,这才是一个人真正的心理资源,它与外界一切资源一样是取之不尽的,一个人到底能干些什么,谁也不知道,即便是
爱因斯坦也只是用了他潜能的一小部分。
四、磨练品质。也是心理资源的一部分,它渗透到外面的部分就是人格魅力。一个人能不能把八大资源吸引到自己身
上,能否承托起八大资源的负载,又能否把资源用到极至,靠的就是他的品质。俗话说大事做人,做的就是品质。年轻时犯错误,可以说是不成熟,但人家不会说你
品质有问题,当被人说品质有问题时,一辈子都完了。“1358”里的五大品质已经说过了,此不多说,再强调一点到35岁还没有形成风格魅力、人格魅力,下
半子希望不大。
五、扩大人际。资源的配置是不平衡的,你所需要的许多资源都在别人手里,可在他手里并不当作资源,同样你身上闲
置的东西也可能是别人苦苦追寻的东西。社会分工越来越细,任何有价值的工作都不可能由一个人完成。如果到了35岁你仍未建立起牢固的人际关系网,那你就有
麻烦了。这个人际关系网包括你的朋友、亲人、同爱好、同事、行业的骄骄者、新闻媒介等,最低限度包括所有可以互相帮助的人。其中家庭是第一人际关系网,家
庭不保、情感生活不愉快的人很能有大发展。人际关系网不是一朝一夕就能建立起来的,它需要几年甚至十几年的培养,同时也需要终生的维护。臭清高是中国知识
分子的一大悲哀,至到现在还有许多人意识不到自己失败的原因。所有的资源都需要你拿出精力去获取去交换,也就是说资源背后是成本,人际成本是必须花的,甚
至还相当高昂,因为它比任何一种资源带来的回报都大。
六、保持健康。这是支撑我们一辈子的物质和能量资源。五十岁前用健康换金钱,五十岁后用金钱换健康,这是有道理
的。只有健康资源的连续可用,我们的成功才有保证。35岁身体开始走下坡路了,可以说下半辈子都是吃老本,如果没有老本吃,那就完了。考察成功人士,一个
显要特征就是精力充沛,他们把健康资源优势发挥到最大程度。可以说每个人都有深刻的体验,一生病我们所有的愿望都萎缩了,一旦精神好转,我们理想的云帆又
高扬起来。而还有一些人,终因健康资源的断缺而成为悲剧英雄。
七、珍惜时间。时间是老生常谈的两个字,因而也就成了视而不见的资源。一幢大楼,人们只知道它由砂、石、水泥、
钢筋砌成,却不知道还有六个月的时间也砌在里面了,如果只给你一天时间,这个世界将没有大楼。坏就坏在世上没有一天的时间,有的只是无穷无尽的时间,它不
需要再生,而是永生,所以我们不到生命的结束,意识不到它的荒废和飞逝。年轻时你还浪费得起,到35岁你还不能有效地利用时间,还在一切无聊与懒散中,还
在弥补35前的漏洞中,可真危险了。
八、扩展空间。人是动物,动物的优势就是能自由地利用空间。但并不是每个人都能意识到空间是他的资源。以商业为
例,竞争的较量来较量去最后都到空间上来了,国际资本的全球渗透到了空前地步,如果不开放空间,哪有什么跨国公司,哪有什么连锁企业?毫无空间概念、更无
空间资源概念的人,他们在心理上已经注定是没有多少成长要求的人,他们无所谓成长,当然也就无所谓成功。不知您们相不相信,我身边一些35岁的人还没出过
省,他们都是大学毕业哦。
八种资源大致可分对应的四组,它们在同一轴上是同向增减的互动关系,成功资源图也就是成功熵势图,以总面积表示。一切资源都可以相互转化,从图示上
也是如此,增加任何一个轴,增加的都是总面积,都反应在任何一个轴上,反之亦然。但任何资源都不可以相互替代,西谚云:The trouble
with being poor is taking up all your
time。善哉!金钱可以买时间,但金钱绝不能替代时间,人际可以弥补才能,但决不可以替代才能。资源不是平均分布,要想总面积最大,那就是全面发展的圆
周,可以像车轮一样飞奔,而奇形怪状则很难滚动起来。很多人寄望于一种资源,那就是能力资源里的智力因素,抱有希望或每每埋怨的也都是它,以为只要有了它
就万事大吉了,即使这一种资源也可能只用了五分之一,而其它的七又五分之四资源都被白白浪费了,所以你一生中实际资源利用率是四十分之一,2.5%,这就
是你的成功概率。而成功人士,都是珍惜资源,并且把资源使用到极至的人。摘自黄怀宁《一生的保证》。
posted @
2008-02-14 17:25 MEYE 阅读(576) |
评论 (0) |
编辑 收藏
[转:]http://blog.chinaunix.net/u/15586/showart.php?id=473344
推荐几款PYTHON编辑器:
推荐几款不错的python编辑器吧。这里推荐的几个并不是像vim,emacs一类的老牌编辑器,而是主要
针对python的编辑器。在我看来,我所需要的代码编辑器的功能,包括代码折叠,语法高亮,行号显示,代码提示,当然能够你IDE一样加入调试和执行功
能就再好不过了。今晚我介绍几款,这些功能上面参差不齐,希望对有需要的朋友有所帮助。
1.PythonWinEditor
如果你安装activePython或pywin32模块的话,这个编辑器一般默认情况下都会安装的。pythonwineditor其实非常不错,上述所说的四项功能一应俱全,而且会有调试功能。完全免费,算是这里面不错的选择了。
2.Editra
Editra在你安装最新版的wxPython的时候会有选项提示你是否安装,当然你也可以直接从他的站点下载独立安装。这个软件出来时间并不长,但是却很有趣。我说的功能也都有,代码提示功能更是让人喜爱,软件是用python和wxPython完成的,很不错。
3.KomodoIDE/Editor
ActiveState
现在专门针对开源脚本语言开发一些不错的应用。KomodoIDE是KomodoEditor的增强版本,当然是收费的,而
KomodoEditor却是免费的。虽然这款软件觉得占用内存比较大,但是软件的代码提示功能让你喜欢。感觉比上述两款的提示功能要强得多。
Editor没有调试和运行功能,而IDE则相对应的有这些功能。不过对于一般用户来讲,Editor也已经够用了。当然如果你想花点银子的话搞IDE的
话,也是物有所值的。
国内的python大牛limodo出的一个Ulipad,我就不多想介绍了。软件代码自动提示功能并不十分实善,而且感
觉一个编辑器挺占用内存的,这一点并不好,而且色彩上面用太亮眼的绿色在里面,有点难看了。就不太向大家推荐了。开源的世界是一个多彩的世界,你总能从里
面发现一些有趣的东西。我喜欢这些有趣的东西,python把我带来一个新境界,他让我看到更多更有趣的东西。你可以用python完成更多你想要做的
事,而且这一切基本上没有什么不可能的。随着你对这门语言的深入,你会爱上他,在我看来,现在许多应用层上的程序,python都能快速有效的完成,而且
你会觉得他很安全,辅助你思维更加清晰。python和许多语言的理念往往不同,通过C/C++语言,你会觉得你所要的许多功能你所想到的第一件事是怎么
实现这一功能,你想要做一件事,往往需要自己写许多代码就会帮你实现;而python则不同,你想到的一件事是有什么模块可以帮我实现。前两天看见一个T
恤写着“生命短暂,我用python“。是呀,用python不需要费太多的脑子,因为已经帮你想好和做好了你想要实现的功能。你只需要轻松调用就可以
了。用python你不必花费太多的心思在怎么实现上面,而是花更多的心思在问题的解决思路上面。虽然我在07年的11/12月份才开始接触这门语言,但
是,却深深的喜欢上了她。python的世界是自由的,但代码是工整的;python是包容的,可以容纳下你想要的任何功能,我爱开源,我爱
python.
用python进行GUI开发的选择:
用python进行GUI开发的选择
Python最大的特点就在于她的快速开发功能。作为一种胶水型语言,python几乎可以渗透在我们编程过程中的各个领域。这里我简单介绍一下用python进行gui开发的一些选择。
1.Tkinter
Tkinter
似乎是与tcl语言同时发展起来的一种界面库。tkinter是python的配备的标准gui库,也是opensource的产物。Tkinter可用
于windows/linux/unix/macintosh操作系统,而且显示风格是本地化的。Tkinter用起来非常简单,python自带的
IDLE就是采用它写的。除此外,tkinter的扩展集pmw和Tix功能上都要相对它强大,但tkinter却是最基本的。我认为,在用python
做gui开发,tkinter是最基本的知识,所以这个环节是必须要学习的。你或许在以后的开发中并不常用tkinter,但是一些小型的应用上面,他还
是很有用的,而且开发速度也很快。
2.WxPython
WxWidgets应该算是近几年了比较流行的GUI跨平台开发技术了。
wxWidgets有不同的版本应用,有c++的,也有basic的,现在在python上面也有较好的移植。wxpython的功能上面要强于
tkinter,她提供了超过200个类,面向对象的编程风格,设计的框架类似于MFC。对于大型GUI应用上面,wxPython还是具有很强的优势
的。boa constructor可以帮助我们快速可视地构建wxwidgets界面。
3.PyQT
Qt同样是一种开源的GUI库,Qt的类库大约在300多个,函数大约在5700多个。Qt同样适合于大型应用,由它自带的qt designer可以让我们轻松来构建界面元素。
4.pyGtk
Gtk是linux下Gnome的核心开发库了。功能上面非常齐全。值得说明的是,在windows平台下gtk的显示风格并不是特别本地化。不过他带的glade的界面设计器还是可以帮你省不少事的。
5.Jython
尝试过用python访问java类库吗,那么就用jython吧。jython其实可以认为是另外一个python开发环境,基于java的,但是大多
数的CPython调用jython下还是可以的。你可以在jython环境下像使用java一样来通过python的语法来调用java语言,真的很
酷。
6.MFC
Windows Pywin32允许你像VC一样的形式来使用PYTHON开发win32应用。代码风格可以类似win32 sdk,也可以类似MFC,由你选择。如果你仍不放弃vc一样的代码过程在python下,那么这就是一个不错的选择。
7.PythonCard
PythonCard其实是对wxPython的再封装。不过封装的更加简单,使用起来觉得比wxPython更直观,也更简单化了。
8.Dabo
仍是一个基于wxpython的再封装库,没用过,不太了解。它提供数据库访问,商业逻辑以及用户界面。
9.AnyGui
通过底层的api来访问其它工具集,像tkinter,wxpython和qt.具体也没怎么用过。
10.WPY
MFC风格的Gui开发库,代码风格也类似于MFC,仅管如此,你依旧可以使用这个库来开发GUI应用,而不用担心平台移植的问题。她同样是一个跨平台的库。
11.IronPython
如果你要想开发.net下面的应用的话,那么IronPython就是你的选择,与jython有点类似,他同样支持标准的python模块,但同样增加
了对.net库的支持。你也可以理解为他是另一个python开发环境。你可以非常方便地使用python语法进行.net应用的开发,这一点听起来真的
挺有意思。
总之,介绍了这么多,我个人意见是,如果你是java用户,那么你就用jython吧,除了可以享受python的模块功能及语法
外,你可以找到许多java的影子;如果你是.net用户,那么就用iron python吧。如果你对Visual
C++很熟悉,那么你可以使用MFC,WPY或是wxPython,当然我更建议wxPython了。当然,我认为对于tkinter是每一个原来搞C的
人都应该了解和学习的GUI库,因为她很轻便,小型应用就可以使用她来搞定,而对于较大型应用可以采用pyGtk,pyQt,WxPython或
PythonCard来搞定,这样的话,既可以注重知识的衔接性,也可以快速进行软体的开发了。
基于Python的socket编程[原]
服务端:
#socket server端
#获取socket构造及常量
from socket import *
#''代表服务器为localhost
myHost = ''
#在一个非保留端口号上进行监听
myPort = 50007
#设置一个TCP socket对象
sockobj = socket(AF_INET, SOCK_STREAM)
#绑定它至端口号
sockobj.bind((myHost, myPort))
#监听,允许5个连结
sockobj.listen(5)
#直到进程结束时才结束循环
while True:
#等待下一个客户端连结
connection, address = sockobj.accept( )
#连结是一个新的socket
print 'Server connected by', address
while True:
#读取客户端套接字的下一行
data = connection.recv(1024)
#如果没有数量的话,那么跳出循环
if not data: break
#发送一个回复至客户端
connection.send('Echo=>' + data)
#当socket关闭时eof
connection.close( )
|
客户端:
import sys
from socket import *
serverHost = 'localhost'
serverPort = 50007
#发送至服务端的默认文本
message = ['Hello network world']
#如果参数大于1的话,连结的服务端为第一个参数
if len(sys.argv) > 1:
serverHost = sys.argv[1]
#如果参数大于2的话,连结的文字为第二个参数
if len(sys.argv) > 2:
message = sys.argv[2:]
#建立一个tcp/ip套接字对象
sockobj = socket(AF_INET, SOCK_STREAM)
#连结至服务器及端口
sockobj.connect((serverHost, serverPort))
for line in message:
#经过套按字发送line至服务端
sockobj.send(line)
#从服务端接收到的数据,上限为1k
data = sockobj.recv(1024)
#确认他是引用的,是'x'
print 'Client received:', repr(data)
#关闭套接字
sockobj.close( )
posted @
2008-02-04 11:42 MEYE 阅读(957) |
评论 (0) |
编辑 收藏
Linux 平台上的C语言调试工具!
Debugging Tools for C on
Linux Platform
http://www.linuxgazette.com/node/view/8755
Submitted by Nikhil Bhargava on Tue, 02/17/2004 - 14:37. Articles | General Interest
This article talks about debugging tools for applications in C on Linux
platforms. Most of the tools are freely available on all major
platforms with very wide user support. The tools help in static
analysis of code as well as assist in dynamic evaluation of code.
Please
note that tools listed here are suggestions of the author. This list is
not a standard one. Changes have to be done in it depending upon the
nature, scope and details of the application to be developed.
Debugging Tools
1. Dmalloc
http://dmalloc.com/
The debug memory allocation or Dmalloc library is a freeware debugging
tool which has been specially designed as a drop in replacement for the
system's malloc, realloc, calloc, free and other memory management
routines while providing powerful debugging facilities configurable at
runtime. It makes changes during compile time and donot add runtime
changes in binary. These facilities include such things as memory-leak
tracking, fence-post write detection, file/line number reporting, and
general logging of statistics. The library is reasonably portable
having been run successfully on at least the following operating
systems: AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix,
Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware,
Windoze, and even Unicos on a Cray T3E. It has full support for
programs the debugging of POSIX threads.
The package includes the library, configuration scripts, debug utility application, test program, and documentation.
2. Valgrind
http://valgrind.kde.org/
Valgrind is a GPL distributed system for debugging and profiling
x86-Linux programs. I can also be helpful for programs for platforms
other than x86 since behavior of x86 binary is similar to other
binaries. The accompanying tools with Valgrind automatically detect
many memory management and threading bugs, avoiding hours of
frustrating bug-hunting, making programs more stable. It supports a
through detailed profiling to help speed up the programs.
The Valgrind distribution includes four tools: two memory error detectors, a thread
error detector, and a cache profiler.
3. Electricfence
http://rpmfind.net/linux/RPM/conecti...-2cl.i386.html
Electric Fence is a freeware library that can be used for C programming
and debugging. It can be linked at compile time and it will warn about
possible problems such as freeing memory that doesn't exist, etc. It is
basically a memory profiling tool. However currently it is available
only on HP-Unix platform (I am not very sure though).
4. GDB
http://sources.redhat.com/gdb
This is the Gnome Debugger which comes as a freeware support package
with freeware Linux distribution like Red Hat, Slacware, and Debian
etc. It has full support of many languages like C, C++, and Perl etc.
It helps to debug the binaries of these languages in modes like single
step, multiple step or complete run. It also has provisions of setting
break points and trace value.
It is helpful for stub testing, functional flow checking and bound checking.
Further this is readily available with all flavours of Linux andUnix platforms and is amply supported in user community.
5. Insight
http://sources.redhat.com/insight
Insight is a graphical user interface to GDB, the GNU Debugger written
in Tcl/Tk by at Red Hat, Inc. and Cygnus Solutions Insight provides all
features provided by GDB along with Graphical debugging interface
replacing traditional command based interface.
6. Memprof
http://www.gnome.org/projects/memprof
MemProf is a free ware memory Profiling and memory leak detection tool
which comes as an addendum to common Linux distributions. It can
generate a profile how much memory was allocated by each function in
the program. It can scan memory and find blocks that have been
allocated but are no longer referenced anywhere (dead code).
MemProf works by pre-loading a library to override the C library's
memory allocation functions and does not require recompiling the
program. One advantage MemProf has over some other similar tools that
are available is that it has a nice GUI front-end and is relatively
easy to use.
I am Nikhil Bhargava from Delhi, India. I am a Computer Engineer
currently working in C-DOT, India for past one year. Comments and
Suggestions are always welcome.
【硬件编程咨询】C语言资料大全
◆经典C源程序100例:http://post.baidu.com/f?kz=8618367
◆时钟的驻留程序:http://post.baidu.com/f?kz=10822377
◆数据结构暨若干经典问题和算法:http://post.baidu.com/f?kz=10922856
◆LIUXUY 磁盘系统源程序:http://post.baidu.com/f?kz=12973347
◆RLE压缩:http://post.baidu.com/f?kz=12592570
◆快速排序:http://post.baidu.com/f?kz=12262349
◆全排列的递归算法:http://post.baidu.com/f?kz=12248706
◆KMP字符串搜索算法:http://post.baidu.com/f?kz=12143581
◆C高效编程四招:http://post.baidu.com/f?kz=13192245
◆无栈非递归二叉树遍历:http://post.baidu.com/f?kz=12394188
◆跟我学NETBSD内核源码:http://post.baidu.com/f?kz=12201581
◆Linux源码:http://post.baidu.com/f?kz=12692827
◆C语言中不定参数的实现http://post.baidu.com/f?kz=19232306
◆一个有关 FreeBSD 的网站:http://post.baidu.com/f?kz=14828500
◆c51系列仿真器:http://post.baidu.com/f?kz=14332652
◆brainf*ck 语言的解释器http://post.baidu.com/f?kz=15998145
◆怎样用c写游戏:http://post.baidu.com/f?kz=5417859
◆本吧游戏编程相关:http://post.baidu.com/f?kz=11867577
◆简单的病毒程序:http://post.baidu.com/f?kz=5558054
◆迷宫游戏:http://post.baidu.com/f?kz=5781985
◆QQ好友管理程序:http://post.baidu.com/f?kz=5071518
◆销售监控程序:http://post.baidu.com/f?kz=6352894
◆简单的仓储管理系统:http://post.baidu.com/f?kz=7316990
◆简单的电话储存系统:http://post.baidu.com/f?kz=7257980
◆模拟电子时钟的程序:http://post.baidu.com/f?kz=7519467
◆计算任意一天是星期几:http://post.baidu.com/f?kz=8329211
◆打印任意月份日历:http://post.baidu.com/f?kz=8880741
◆分类记事本:http://post.baidu.com/f?kz=8154266
◆TC2编程图片处理利器:http://post.baidu.com/f?kz=11163580
◆printf写的游戏:http://post.baidu.com/f?kz=11162185
◆人机对战扑克游戏:http://post.baidu.com/f?kz=11366672
◆俄罗斯方块:http://post.baidu.com/f?kz=12145169
◆俄罗斯方块:http://post.baidu.com/f?kz=16028030
◆文本加密例程:http://post.baidu.com/f?kz=11968123
◆给一行文字设置密码加解密:http://post.baidu.com/f?kz=20205053
◆破解BIOS密码:http://post.baidu.com/f?kz=12230804
◆贪吃蛇1代:http://post.baidu.com/f?kz=30512251
◆完整的贪吃蛇游戏:http://post.baidu.com/f?kz=31119717
◆贪吃蛇:http://post.baidu.com/f?kz=19624003
◆学生成绩系统(C++版) http://post.baidu.com/f?kz=6640660
◆图书馆管理系统http://post.baidu.com/f?kz=22241061
◆图书管理系统http://post.baidu.com/f?kz=17682927
◆万年历http://post.baidu.com/f?kz=17197492
◆判断闰年http://post.baidu.com/f?kz=16137615
◆万年历http://post.baidu.com/f?kz=20493202
◆变化的同心圆http://post.baidu.com/f?kz=18056765
◆通讯录 http://post.baidu.com/f?kz=22775724
◆C语言通讯录(数组):http://post.baidu.com/f?kz=37202204
◆飞机票订购系统http://post.baidu.com/f?kz=21296518
◆又一个计算器:http://post.baidu.com/f?kz=24283347
◆一个级数:http://post.baidu.com/f?kz=16708781
◆四则运算计算器http://post.baidu.com/f?kz=22279483
◆二叉树排序树上实现学生信息管理http://post.baidu.com/f?kz=21436251
◆判断回文字符串:http://post.baidu.com/f?kz=21815959
◆教小学生算术:http://post.baidu.com/f?kz=22322599
◆六籽弹小游戏http://post.baidu.com/f?kz=17637684
◆黑白棋:http://post.baidu.com/f?kz=19624178
◆十个学生的成绩统计:http://post.baidu.com/f?kz=14787745
◆某一天是这一年的第几天:http://post.baidu.com/f?kz=13772082
◆局域网聊天的程序:http://post.baidu.com/f?kz=14413292
◆C编写简单的窗口界面:http://post.baidu.com/f?kz=3388604
◆哈希表实例:http://post.baidu.com/f?kz=13350908
◆随机生成的迷宫游戏:http://post.baidu.com/f?kz=11120413
◆炸弹超人游戏c语言简版:http://post.baidu.com/f?kz=37461531
◆用栈实现的迷宫寻径演示:http://post.baidu.com/f?kz=38578844
◆计算电脑开机时间:http://post.baidu.com/f?kz=38506368
◆C++编一个成绩管理课件:http://post.baidu.com/f?kz=3889433
◆一圈人报数问题问题:http://post.baidu.com/f?kz=3833415
◆又一报数出圈http://post.baidu.com/f?kz=17789700
◆约瑟夫环循环链表 http://post.baidu.com/f?kz=13750140
◆用c编一个分数计算器程序 :http://post.baidu.com/f?kz=3831746
◆命令行计算器:http://post.baidu.com/f?kz=8465088
◆乘法表:http://post.baidu.com/f?kz=11267637
◆学生管理系统:http://post.baidu.com/f?kz=5806073
◆学生成绩管理系统:http://post.baidu.com/f?kz=37076140
◆学生成绩管理系统:http://post.baidu.com/f?kz=5972675
◆学生成绩管理程序(链表):http://post.baidu.com/f?kz=6598859
◆统计学生成绩(8pm版)http://post.baidu.com/f?kz=14787745
◆打印九九表:http://post.baidu.com/f?kz=6059385
◆水仙花数问题:http://post.baidu.com/f?kz=11510377
◆打印2004年日历:http://post.baidu.com/f?kz=6469868
◆八皇后问题:http://post.baidu.com/f?kz=4456709
◆八皇后问题(do熊版):http://post.baidu.com/f?kz=8513222
◆汉诺塔问题:http://post.baidu.com/f?kz=7402377
◆统计不同字符个数:http://post.baidu.com/f?kz=7394163
◆统计单词数行数:http://post.baidu.com/f?kz=8211273
◆查找替换字符串并统计次数:http://post.baidu.com/f?kz=7335032
◆杨辉三角:http://post.baidu.com/f?kz=9299150
◆屏幕中间输出杨辉三角http://post.baidu.com/f?kz=12054232
◆矩阵转置:http://post.baidu.com/f?kz=9882271
◆输出用*组成的三角形:http://post.baidu.com/f?kz=8465901
◆输出一个菱形:http://post.baidu.com/f?kz=11879706
◆输出菱形http://post.baidu.com/f?kz=16465168
◆手把手教你写猜数游戏:http://post.baidu.com/f?kz=11205156
◆abort函数简介:http://post.baidu.com/f?kz=8610596
◆getchar与putchar:http://post.baidu.com/f?kz=7820387
◆scanf 讨论:http://post.baidu.com/f?kz=5305522
◆C语言输入输出讨论:http://post.baidu.com/f?kz=7586045
◆时间函数clock():http://post.baidu.com/f?kz=7867779
◆在规定时段自动关机:http://post.baidu.com/f?kz=7132544
◆getch防止程序运行一闪而过:http://post.baidu.com/f?kz=7360819
◆MALLOC FREE问题:http://post.baidu.com/f?kz=4826280
◆一个连接两个字符串的函数:http://post.baidu.com/f?kz=7958354
◆同一行回显输入字符:http://post.baidu.com/f?kz=5272169
◆整点报时问题:http://post.baidu.com/f?kz=7307517
◆c语言中随机数字应用: http://post.baidu.com/f?kz=3065339
◆怎样获取文件大小:http://post.baidu.com/f?kz=4189689
◆程序得到自已的当前名称:http://post.baidu.com/f?kz=5993842
◆怎么使用清屏:http://post.baidu.com/f?kz=6087210
◆sound()函数为何没有声音:http://post.baidu.com/f?kz=30844221
◆自写trim函数:http://post.baidu.com/f?kz=14226973
◆bioskey(1)的问题:http://post.baidu.com/f?kz=14651579
http://post.baidu.com/f?kz=14536875
◆bioskey这个函数怎么用:http://post.baidu.com/f?kz=15272841
◆CHAR*转为LONG:http://post.baidu.com/f?kz=15054773
◆LONG毫秒转为CHAR*分秒的函数:http://post.baidu.com/f?kz=15140414
◆狐狸找兔子:http://post.baidu.com/f?kz=8729392
◆猴子吃桃:http://post.baidu.com/f?kz=8448705
◆猜数游戏: http://post.baidu.com/f?kz=4215306
◆二分法解方程:http://post.baidu.com/f?kz=7663955
◆同余在数值计算中的应用:http://post.baidu.com/f?kz=6924343
◆多项式相乘:http://post.baidu.com/f?kz=7441950
◆韩信点兵:http://post.baidu.com/f?kz=8203887
◆用C编写的四叶玫瑰曲线:http://post.baidu.com/f?kz=7853365
四叶玫瑰曲线的旋转动画:http://post.baidu.com/f?kz=18656216
◆求n个数的最大公约数:http://post.baidu.com/f?kz=6848849
◆寻找完数:http://post.baidu.com/f?kz=11892209
◆蛇形矩阵算法:http://post.baidu.com/f?kz=12433353
◆圆周率计算:http://post.baidu.com/f?kz=12394522
◆小球称重:http://post.baidu.com/f?kz=12648561
◆整数分解:http://post.baidu.com/f?kz=12582169
◆整数的立方=两整数的平方差:http://post.baidu.com/f?kz=15121585
◆阶乘级数:http://post.baidu.com/f?kz=14601711
◆三点坐标求三角形面积:http://post.baidu.com/f?kz=14679236
◆多项式相乘http://post.baidu.com/f?kz=17157736
◆求pi的怪异程式:http://post.baidu.com/f?kz=14832207
◆歌德巴赫猜想:http://post.baidu.com/f?kz=20011131
◆求最大公约数和最小公倍数http://post.baidu.com/f?kz=15965236
◆3个正整数的最小公倍数http://post.baidu.com/f?kz=17747110
◆求阶乘:http://post.baidu.com/f?kz=19314067
◆输出三数最大值:http://post.baidu.com/f?kz=19023855
◆10000以内的阶乘(do熊版)http://post.baidu.com/f?kz=16446002
◆算法:整数划分问题http://post.baidu.com/f?kz=12582169
◆辗转法求2个数最大公约数http://post.baidu.com/f?kz=16965299
◆算24:http://post.baidu.com/f?kz=17336190
◆100元买100只鸡:http://post.baidu.com/f?kz=14920285
◆COS X曲线http://post.baidu.com/f?kz=16633244
◆矩阵的加减乘运算演示:http://post.baidu.com/f?kz=37953154
◆狐狸找兔子:http://post.baidu.com/f?kz=8729392
◆猴子吃桃:http://post.baidu.com/f?kz=8448705
◆猜数游戏: http://post.baidu.com/f?kz=4215306
◆二分法解方程:http://post.baidu.com/f?kz=7663955
◆同余在数值计算中的应用:http://post.baidu.com/f?kz=6924343
◆多项式相乘:http://post.baidu.com/f?kz=7441950
◆韩信点兵:http://post.baidu.com/f?kz=8203887
◆用C编写的四叶玫瑰曲线:http://post.baidu.com/f?kz=7853365
四叶玫瑰曲线的旋转动画:http://post.baidu.com/f?kz=18656216
◆求n个数的最大公约数:http://post.baidu.com/f?kz=6848849
◆寻找完数:http://post.baidu.com/f?kz=11892209
◆蛇形矩阵算法:http://post.baidu.com/f?kz=12433353
◆圆周率计算:http://post.baidu.com/f?kz=12394522
◆小球称重:http://post.baidu.com/f?kz=12648561
◆整数分解:http://post.baidu.com/f?kz=12582169
◆整数的立方=两整数的平方差:http://post.baidu.com/f?kz=15121585
◆阶乘级数:http://post.baidu.com/f?kz=14601711
◆三点坐标求三角形面积:http://post.baidu.com/f?kz=14679236
◆多项式相乘http://post.baidu.com/f?kz=17157736
◆求pi的怪异程式:http://post.baidu.com/f?kz=14832207
◆歌德巴赫猜想:http://post.baidu.com/f?kz=20011131
◆求最大公约数和最小公倍数http://post.baidu.com/f?kz=15965236
◆3个正整数的最小公倍数http://post.baidu.com/f?kz=17747110
◆求阶乘:http://post.baidu.com/f?kz=19314067
◆输出三数最大值:http://post.baidu.com/f?kz=19023855
◆10000以内的阶乘(do熊版)http://post.baidu.com/f?kz=16446002
◆算法:整数划分问题http://post.baidu.com/f?kz=12582169
◆辗转法求2个数最大公约数http://post.baidu.com/f?kz=16965299
◆算24:http://post.baidu.com/f?kz=17336190
◆100元买100只鸡:http://post.baidu.com/f?kz=14920285
◆COS X曲线http://post.baidu.com/f?kz=16633244
◆矩阵的加减乘运算演示:http://post.baidu.com/f?kz=37953154
◆@ 的读音:http://post.baidu.com/f?kz=12952426
◆“&”怎么读http://post.baidu.com/f?kz=17725981
◆gcc跨平台问题:http://post.baidu.com/f?kz=5371847
◆LL型运算(64位): http://post.baidu.com/f?kz=5248192
◆正方形动画下落(不用清屏):http://post.baidu.com/f?kz=5467099
◆大数运算的免费库libgmp:http://www.swox.com/gmp/
◆大数运算10000以内阶乘:http://post.baidu.com/f?kz=2780897
◆素数搜索算法程序:http://post.baidu.com/f?kz=6221885
◆bmp文件读写: http://post.baidu.com/f?kz=5236264
◆用C显示PCX文件:http://post.baidu.com/f?kz=6059067
◆汇编语言嵌入C 程序段:http://post.baidu.com/f?kz=4038342
◆宏替换问题: http://post.baidu.com/f?kz=5327438
◆宏定义带括号的问题:http://post.baidu.com/f?kz=10001502
◆大下标数组操作:http://post.baidu.com/f?kz=4201196
◆关于数组越界:http://post.baidu.com/f?kz=13204257
◆整数数组初始化赋值:http://post.baidu.com/f?kz=8513573
◆字符数组与字符串:http://post.baidu.com/f?kz=7608560
◆字符串数组下标问题:http://post.baidu.com/f?kz=11253296
◆数组的编译和执行的效率:http://post.baidu.com/f?kz=6243463
◆C写的隐式输入密码:http://post.baidu.com/f?kz=5438409
◆又一个隐式密码输入:http://post.baidu.com/f?kz=11321460
◆C 的文本文件行操作:http://post.baidu.com/f?kz=4303211
◆链表的数据插入:http://post.baidu.com/f?kz=5851022
◆链表的合并:http://post.baidu.com/f?kz=5790984
◆双向链表的插入和删除:http://post.baidu.com/f?kz=6352819
◆谭C例题链表插入删除操作:http://post.baidu.com/f?kz=2286853
◆进制转换的几个函数:http://post.baidu.com/f?kz=5799330
◆十进制转二进制的一种方法:http://post.baidu.com/f?kz=4201639
◆鼠标事件处理:http://post.baidu.com/f?kz=5469795
◆两个鼠标函数库:http://post.baidu.com/f?kz=6952040
◆鼠标器的程序信息:http://post.baidu.com/f?kz=2728110
◆关于鼠标程序:http://post.baidu.com/f?kz=12299687
◆中断号调用:http://post.baidu.com/f?kz=5469596
◆几个中断的资料:http://post.baidu.com/f?kz=7462907
◆C语言接口与实现:http://post.baidu.com/f?kz=5979383
◆C语言的串口通信:http://post.baidu.com/f?kz=8467750
◆怎样理解递归对栈的应用:http://post.baidu.com/f?kz=9882580
◆递归求组合定值:http://post.baidu.com/f?kz=5824841
◆递归求元素和:http://post.baidu.com/f?kz=6380549
◆全排列:http://post.baidu.com/f?kz=7336872
◆擂台赛--求1000000素数:http://post.baidu.com/f?kz=6221885
◆擂台赛--大数运算:http://post.baidu.com/f?kz=6279195
◆字符串编辑时光标的控制:http://post.baidu.com/f?kz=6230397
◆在指定位置输出字符:http://post.baidu.com/f?kz=12059970
◆光盘启动菜单的问题:http://post.baidu.com/f?kz=6093143
◆NOIP复赛文件名大小写问题:http://post.baidu.com/f?kz=6270393
◆程序的带参运行 http://post.baidu.com/f?kz=3545215
◆关于main 的参数:http://post.baidu.com/f?kz=7535662
◆main 函数返回值问题:http://post.baidu.com/f?kz=11161360
◆一个主函数参数问题:http://post.baidu.com/f?kz=9495695
◆函数参数中引用别名问题:http://post.baidu.com/f?kz=9299395
◆函数调用返回多个值:http://post.baidu.com/f?kz=5536004
◆函数中参数调用的问题:http://post.baidu.com/f?kz=6035295
◆函数参数按址传送的问题:http://post.baidu.com/f?kz=5558840
◆assiss谈宏定义及条件编译:http://post.baidu.com/f?kz=6193259
◆输出格式*号控制符:http://post.baidu.com/f?kz=7149608
◆输出格式的空格问题:http://post.baidu.com/f?kz=5147346
◆输出格式中#代表什么:http://post.baidu.com/f?kz=11993035
◆程序代码的上传与下载:http://post.baidu.com/f?kz=6566895
◆++i和i++的问题:http://post.baidu.com/f?kz=6712609
◆ASCII字符输出问题:http://post.baidu.com/f?kz=6771317
◆Fdisk的源程序:http://post.baidu.com/f?kz=6790551
◆正则替换:http://post.baidu.com/f?kz=6775253
◆自我保护----“程序自杀”:http://post.baidu.com/f?kz=6682850
◆编辑框问题:http://post.baidu.com/f?kz=6953560
◆西文环境下显示汉字:http://post.baidu.com/f?kz=2144548
◆读取汉字库中的汉字:http://post.baidu.com/f?kz=7359496
◆三种排序:http://post.baidu.com/f?kz=6769579
◆far 远程指针简述:http://post.baidu.com/f?kz=7742757
◆指针悬空的危险错误:http://post.baidu.com/f?kz=7130531
◆指针作参数的问题:http://post.baidu.com/f?kz=6922977
◆判断字符串是否回文: http://post.baidu.com/f?kz=7624806
◆编程中遇到的小困扰:http://post.baidu.com/f?kz=8002835
◆UNIX下面怎么编译C程序:http://post.baidu.com/f?kz=8046512
◆C如何调用其他程序:http://post.baidu.com/f?kz=8355281
◆C游戏中控制键盘:http://post.baidu.com/f?kz=4902906
◆C语言控制应用:http://post.baidu.com/f?kz=8399030
◆C项目工程(unix下)注意事项:http://post.baidu.com/f?kz=9087043
◆make file(unix下)易错地方:http://post.baidu.com/f?kz=9362741
◆补码问题:http://post.baidu.com/f?kz=11189164
◆DOS仿多线程问题:http://post.baidu.com/f?kz=11553963
◆栈的push和pop操作:http://post.baidu.com/f?kz=10820691
◆头文件如何理解:http://post.baidu.com/f?kz=7566720
◆编程解IQ测试:http://post.baidu.com/f?kz=11359491
◆逻辑破案的编程处理:http://post.baidu.com/f?kz=11283225
◆VC++中浮点数与字符串转化:http://post.baidu.com/f?kz=12061615
◆为何VC++6.0无法运行某些C程序:http://post.baidu.com/f?kz=11123696
◆逆序输出:http://post.baidu.com/f?kz=11484218
◆scanf:floating points format not linked:http://post.baidu.com/f?kz=12999839
◆c输出到打印机:http://post.baidu.com/f?kz=12482547
◆源代码-自我产生的程序:http://post.baidu.com/f?kz=14261864
◆PC 底层系统编程:http://post.baidu.com/f?kz=14071636
◆C中怎么制作函数库:http://post.baidu.com/f?kz=14190938
◆有关 FreeBSD 的网站:http://post.baidu.com/f?kz=14828500
◆一个画图程序:http://post.baidu.com/f?kz=15165712
◆算法--贪心法:http://post.baidu.com/f?kz=15321632
◆合并排序:http://post.baidu.com/f?kz=15330626
◆射击游戏:http://post.baidu.com/f?kz=15417872
◆怎样编一个螺旋数组:http://post.baidu.com/f?kz=15384659
C中怎么制作函数库:http://post.baidu.com/f?kz=14190938
10发90环有多少种可能:http://post.baidu.com/f?kz=15878635
Dev-C++4.9.9.2下载&使用教程:http://post.baidu.com/f?kz=40893628
FinC国人开发的嵌入式编程语言:http://post.baidu.com/f?kz=41127825
C语言的通讯录:http://post.baidu.com/f?kz=41627304
炸弹超人c语言简版:http://post.baidu.com/f?kz=37461531
求因子:http://post.baidu.com/f?kz=41674487
C语言中常见错误:http://post.baidu.com/f?kz=40525835
WPS Office 2005个人版免费下载:http://post.baidu.com/f?kz=41108925
TC2使用图解:http://post.baidu.com/f?kz=40504833
posted @
2007-12-06 21:36 MEYE 阅读(2954) |
评论 (2) |
编辑 收藏
[url:]http://www.yuanma.org/data/2006/1228/article_2024.htm
SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具,这样就可以在没有硬件条件下来进行嵌入式系统的开发。
以下操作均在Fedora Core 1.0里通过。
Skyeye项目资源列表
http://gro.clinux.org/projects/skyeye/
文档摘要:
1、什么是SkyEye?
2、SkyEye可以做什么事情?
3、安装SkyEye
4、安装arm-elf交叉编译器
5、测试你的arm-elf-gcc编译器
6、执行你的hello程序
7、编译并运行uClinux-dist-20030909.tar.gz
8、加入网络功能
9、安装完成SkyEye后,下一步将做什么?
1、什么是SkyEye?
SkyEye
是开源软件的一个项目,SkyEye的目标是在Linux和Windows操作系统里提供一个完全的仿真环境。SkyEye仿真环境相当于一个嵌入式计算
机系统,你可以在SkyEye里运行一些嵌入式Linux操作系统,如ARMLinux,uClinux,uc/OS-II(ucos-ii)等,并能分
析和调试它们的源代码。
如果你想知道关于SkyEye和嵌入式系统更详细的信息,请访问下面的站点:
www.SkyEye.org
http://www.skyeye.org/index_cn.html
通过SkyEye能仿真下面的硬件:
CPU核心:ARM7TDMI, ARM720T, ARM9, StrongARM, XScale
CPU:
Atmel AT91/X40, Cirrus CIRRUS LOGIC EP7312, Intel SA1100/SA1110, Intel
XScale PXA 250/255, CS89712, samsung 4510B, samsung 44B0(还不全)
内存: RAM, ROM, Flash
周边设备: Timer, UART, ne2k网络芯片, LCD, 触摸屏等
目前能在SkyEye上运行下面的操作系统和系统软件:
uC/OSII-2.5.x(支持网络)
uClinux(基于Linux2.4.x内核, 支持网络)
ARM Linux 2.4.x/2.6.x
lwIP on uC/OSII
基于uC/OSII, uClinux, ARM Linux的应用程序
2.SkyEye可以做什么事情?
1. 通过SkyEye可以帮助促进嵌入式系统的学习,在不需要额外硬件的情况下学习和分析uclinux操作系统和其它嵌入式操作系统,如ucosII等。
2. SkyEye可用于嵌入式系统的教学。
3. 希望通过skyeye促进操作系统的研究,如ucosII,uclinux+RTAI,uclinux2.5.x等。
4. 可以基于SkyEye进行仿真特定硬件模块的研究。
5. SkyEye可以作为嵌入式集成开发环境开发嵌入式系统(当然需要对SkyEye做大量的工作)。
注:引自陈渝《SkyEye Project FAQ》
3、安装SkyEye
到
http://gro.clinux.org/projects/skyeye/下载skyeye-0.7.0.tar.bz2包:
tar jxvf skyeye-v0.7.0.tar.bz2
进入解压后的skyeye目录,如果SkyEye的版本低于0.6.0,则运行下面的命令:
./configure --target=arm-elf --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest
如果SkyEye的版本高于0.6.0,则运行下面的命令:
./configure --target=arm-elf --prefix=/usr/local
接下来执行:
make
make install
安装完成后执行skyeye
注意:
a.如果你使用的是Mandrake Linux发行版,那么你在编译SkyEye时遇到错误,并且错误与readline, ncurse, termcap等有关,你可以试试下面的方法:
ln -s /usr/include/ncurses/termcap.h /usr/local/include/termcap.h
接着再make和make install看能否成功!
b.如果你的Linux发行版是Debian Linux,那么不要使用gcc 2.95或是gcc 3.0,请使用gcc 3.2+
c.gcc的版本要在2.96或以上
d.如果SkyEye的版本大于0.6.0,那么使用LCD仿真需要在Linux系统里安装GTK软件。
4、安装arm-elf交叉编译器
下载arm-elf-tools-20030314.sh
ftp://166.111.68.183/pub/embed/uclinux/soft/tools/arm
或到
ftp://166.111.8.229/OS/Embeded
执行:
chmod a+x arm-elf-tools-20030314.sh
然后:
./arm-elf-tools-20030314.sh
ls /usr/local/bin/
你应能看到以arm-elf开头的可执行文件,其中arm-elf-gcc就是用来编译你目标平台的编译器的,当然还有一些小工具,后面将一一讲来。
5、测试你的arm-elf-gcc编译器
先写一个小程序hello.c
PHP代码:
#include <stdio.h>
int main(void)
{
int i;
for(i = 0; i < 6; i++){
printf("i = %d ",i);
printf("Hello, embedded linux!\n");
}
return 0;
}
|
然后执行:
arm-elf-gcc -Wl,-elf2flt -o hello hello.c
-elf2flt参数是将elf文件格式转为flat文件格式,这个工具是在你安装交叉编译器产生的。
或者你可以写个Makefile文件,执行:
make
这里是我的Makefile文件,仅供参考:
PHP代码:
# begin
CC = arm-elf-gcc
CFLAGS = -D__PIC__ -fpic -msingle-pic-base -O2 -pipe -Wall -g
LDFLAGS = -Wl,-elf2flt
LIBS =
OBJS = hello.o
all: hello
hello: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o hello $(OBJS) $(LIBS)
clean:
rm -rf *.o *.elf *.gdb hello
# end
|
如果编译通过,就会产生hello可执行文件。用下面的命令:
file hello
你会发现,它是BFLT(binary FLAT),你目标平台所支持的文件格式。
6、执行你的hello程序
这里,我们将借助genromfs这个小工具来完成测试,这个工具就是你在安装交叉编译器时产生的,你可以直接使用它。
到
http://gro.clinux.org/projects/skye...0.4.tar.bz2包:
tar jxvf skyeye-binary-testutils-1.0.4.tar.bz2
cd testsuits/at91/uclinux2(当然你还可以用别的)
mkdir romfs(建一个目录,后面用)
mount -o loop boot.rom /mnt/xxx
cp -r /mnt/xxx/* romfs
另外,把你编译好的可执行程序拷贝到/romfs/bin目录里,这里就是hello了!
genromfs -f boot.rom -d romfs/
注:可以用genromf -h来获得帮助!
OK!执行下面的命令:
skyeye linux
(skyeye)target sim
(skyeye)load
(skyeye)run
kernel start.....
很熟悉了吧。。。
cd /bin
hello
可以看到结果了吗?
其实到了这一步,你就可以开发自己的程序了!
7、编译并运行uClinux-dist-20030909.tar.gz
到
ftp://166.111.68.183/pub/embed/uclinux/soft/
或到
ftp://166.111.8.229/OS/Embeded/uclinux/pub/uClinux/dist下载
uClinux-dist-20030909.tar.gz
假设把它下载到/usr/src/目录下,然后依次执行下面的命令:
tar zxvf uClinux-dist-20030909.tar.gz
cd uClinux-dist/
在图形方式下可用命令make xconfig
或
在命令行方式下用命令make menuconfig
vendor/product中选择GDB/ARMulator
kernel版本选择2.4
然后save and exit
运行下面这两条命:
make dep
make
此时在/usr/src/uClinux-dist/linux-2.4.x目录下会生成可执行文件linux
在/usr/src/uClinux-dist/images/会生成romfs.img等文件
在uClinux-dist目录下建立仿真AT91的skyeye配置文件skyeye.conf,内容如下:
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=images/romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
这个时候就可以用skyeye来调试运行kernel了,在/usr/src/uClinux-dist执行如下命令:
skyeye linux-2.4.x/linux
(skyeye)target sim
(skyeye)load
(skyeye)run
kernel start.....
注意:
要在skyeye.conf所在目录下执行skyeye linux-2.4.x/linux
8、加入网络功能
a.用root用户进行操作。
b.你要看你的/lib/modules/'uname -r'/kernel/drivers/net/目录里有没有tun.o
如果没有的话你就需要编译你的linux内核来获得tun.o了。
c.(1)运行tun设备模块:
#insmod /lib/modules/'uname -r'/kernel/drivers/net/tun.o
如果你没有该设备,那你就要用下面的命令来创建它:
#mkdir /dev/net
#mknod /dev/net/tun c 10 200
(2)运行vnet(虚拟集线器)设备模块(这一步不是必需的):
获取vnet的源码,然后创建设备:
#mknod /dev/net/vnet c 10 201
#chmod 666 /dev/net/vnet
创建vnet.o
#make vnet.o
插入模块vnet.o
#insmod vnet.o
进入test目录,用test来测度vnet.o
#cd test
#make
#./testvnet1
d.配置skyeye.conf文件
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=images/romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
# format: state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
net: state=on, mac=0:4:3:2:1:f, ethmod=tun, hostip=10.0.0.1
下面将对上面的一些参数作下说明:
state=on/off意思是仿真的NIC(网络接口板)是有线的还是无线的;
mac=仿真适配器的MAC地址;
ethmod=tuntap/vnet在主机环境里使用的虚拟设备;
hostip=意思是主机环境与keyeye交互用的IP
格式: state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
For example:
#set nic info state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
net: state=on, mac=0:4:3:2:1:f, ethmod=tun, hostip=10.0.0.1
或
net: state=on, mac=0:4:3:2:1:f, ethmod=vnet, hostip=10.0.0.1
注意:
如果你想在同一时刻运行两个或更多的skyeye,那么请为每一个skyeye使用不同的skyeye.conf
e.运行skyeye linux-2.4.x/linux
9、安装完成SkyEye后,下一步将做什么?
1、
对于嵌入式操作系统的初学者和入门者和入门的学生而言,他们可以先看一些有关操作系统和嵌入式操作系统方面的教材和书籍,如与uC/OS、Minix、
uClinux、Linux相关的书籍等。然后可以在Skyeye上开发一些简单的应用程序例子(如进程间通信、进程优先级、死锁情况、网络应用等),对
某些操作系统功能(如进程调度、内存管理、网络子系统、文件子系统等)进行简单的修改和扩展,并通过Skyeye进行运行和调试,看看会发生什么情况。
2、
对于有一定经验的软件工程师而言,在SkyEye上完成一定的应用系统原型开发是值得一做的事情。比如移植或开发一个文件子系统或网络子系统到一个特定的
操作系统中,相信比在一个真实的开发板上开发要容易一些。在Skyeye上进行一些操作系统的移植和开发(如移植RTLinux、RTAI等其它操作系统
到Skyeye上)也是很有挑战性的工作。
3、对于硬件工程师而言,对Skyeye进行扩充,设计新的硬件仿真(如USB、IDE硬盘等)使得Skyeye的硬件仿真功能更加强大,支持更多功能的软件,是很有意义的事情。
参考:
SkyEye项目站点里的一篇中文文档;
陈渝《SkyEye Project FAQ》;
skyeye-0.7.0中的README文档。
后记:
为了让大家能快速上手,进行实际的开发工作,我赶凑了一篇文档,很粗糙。但我坚信随着更多的有经验的人的加入;随着我们自己水平的提高,一定会出现更多、更好的文章来。就让我们快点行动起来吧!
最后,我再次建议大家看一下《嵌入式Linux技术与应用》这本书。
可以到
http://www.skyeye.org/document.htm或是
ftp://166.111.68.183/pub/embed/skyeye/document/或是
http://www.huihoo.org/mirrors/skyeye/
下载文档,可以获得更多有关skyeye和嵌入式Linux开发的知识和经验。
posted @
2007-12-06 20:09 MEYE 阅读(637) |
评论 (0) |
编辑 收藏
posted @
2007-12-05 21:43 MEYE 阅读(762) |
评论 (0) |
编辑 收藏
嵌入式系统设计的新发展及其挑战
摘要:综述嵌入式系统设计的最新发展情况;论述当前嵌入式系统设计技术发展的特点;从嵌入式系统设计开发的复杂度,开发形式、手段和工具,开发平台和开发语言等方面嵌入式系统设计发生的各种变化,并提出应对这些变化的各种挑战。
关键字:嵌入式系统;设计技术;SoC
1 嵌入式系统设计技术发展的特点
随着微电子技术的飞速发展,CPU已经变成低成本器件。在可能的情况下,各种机电设备已经或者正在嵌入CPU构成的嵌入式系统。据Virginia Tech公司报告,嵌入式系统中所使用的CPU数量已经超过通用PC中CPU数量的30倍。
现在系统研究的重点已从通用系统转向专用系统,以及从一般性能转向可靠性、可用性、安全性、自主性、可扩展性、功能性、灵活性、成本、体积、功耗及可管理性上。
1.1 32位嵌入式处理器比例快速升高
InStat/MDR曾预测在2001~2006年期间,32位向控制器(MCU)的复合年增长率可达22.6%。而全球32位MCU市场在2003年的增长幅度实际已走过30%,在2004年预计将达到38%。增长的驱动因素主要有两个方面。
一方面因为像数码相机、MP3播放机、PDA、游戏机和移动电话手机等手持设备以及各种信息家电等有更高性能要求的多媒体和通信设备的推出。在这些应
用中,庞大的多媒体数据必然需要更大的存储空间,目前许多32位微控制器都可以使用SDRAM,因此可极大地降低使用更大容量数据存储器的成本;而8位微
控制器一般只能使用成本较高的SRAM作为数据在座
器。此外除了处理应用控制功能之外,需支持互联网接入的应用在MCU运行TCP/IP或其它通信协议的情况下,要求系统建立在RTOS上就必然成为一种现
实需求。另外,有越来越多的像电视机、汽车音响及电子玩具等传统应用也与时俱进地提出数字化和“硬件软化”的要求,它们对计算性能的要求及存储器容量的需
求都超出绝大多数8位微控制器能提供的范围。
另一方面由于IT技术发展的推动,32位ARM体系结构已经成为一种事实上的标准,随着高端32位CPU价格的不断下降和开发环境的成熟,促使32位
嵌入式处理器日益挤压原先由8位微控制器主导的应用空间。随着ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经开始成为高中端嵌入式应用
和设计的主流。
8位机除MCS-51外,其它的8位机和16位机都没有一种能为标准或准标准产品。32位嵌入式处理器一度被认为只适用于高端应用场合的看法正在改
变。有更多、更复杂特点和功能需求的便携式电子设备正促使嵌入式系统工程师考虑用32位MCU取代8/16位MCU。另外,越来越多的设计师认识到,转用
32位架构不令能提升性能,还能降低相同成本下的系统功耗和节约总成本以及缩短产品上市时间。这个转变为设计师提供了可随着产品的性能和需求不断扩展而升
级的方案。
1.2 可供选择的可编程计算部件方案增多
(1)GPP-EP-MCU-DSP-ASP/ASSP-ASIC/SoC
嵌入式系统的核心是可编程计算部件,即处理器。这可以有很多种选择,而且近几年又增加了一些新的选择:除过去常用的通用处理器GPP(Gereral
Purpose Processor)、嵌入式处理器EP(Embedded Processor)、微控制器MCU(Micro-Control
Unit)、数字信号处理器DSP(Digital Signal
Processor)外,目前发展很快、可以给我们提供新的选择的还有各种专用处理器ASP(Application Specific
Processor)或专用标准产品ASSP(Application Specific Standard
Product)。它们都是针对一些特定应用而设计的,如用于HDTV、ADSL、Cable
Modem等的专用处理器。与MCU相比,ASP/ASSP集成的资源可能比一般MCU更多、更专业化,所以ASP的价格要高于MCU;但因为它的应用在
相关领域中又是通用、标准和开放的,所以任一个公司都能应用它构成自己的系统或产品,而不存在侵犯知识产权的问题。另一种有知识产权保护的在应用上较封闭
的专用集成电路ASIC(Application Specific IC)类的定制片上系统SoC(System on
Chip)的投入成本就要比ASP高得多。但这可以根据设计人员的要求来构建定制SoC,这样就可为设计人员提供满足量体载衣式应用需求的灵活性。SoC
技术使嵌入式系统应用发生了革命性的变化,这个变化就是嵌入式系统的设计技术,已从选择厂家提供的标准产品时代进入了用户具有个性的自行开发设计器件的时
代。
(2)PsoC/SoPC/CsoC
采用定制SoC有两大缺点:一是高昂的一次性工程费用(NRE);二是从产品概念到生产阶段需要很长的前置开发时间。目前的一个发展趋势是以FPGA
为代表的现场可编程技术在迅速崛起。这是由于市场对通用可配置处理器的呼声越来越高,传统的MCU在市场需求中显得越来越力不从心。可配置、可扩展处理器
逐渐浮出水面。利用半定制器件可以构成基本FPGA的硬核处理器或基于FPGA的软核处理器。并由此可编程片上系统(PsoC或SOPC)应运而生。这是
一种面向消费电子、工业、办公自动化、电信和汽车应用中的嵌入式控制功能而开发的高性能、现场可编程、混合信号阵列。它集MCU和FPGA/CPLD的优
点于一身,实现可配置SoC,既适应了设计人员对系统部件集成的需要,又能实现可配置需求的灵活性。从而为许多现实应用提供一种平衡解决方案。
不同的厂家依据自己本来的优势,从两个不同方向异途同归地实现这种“可配置”性。一种是FPGA厂商在现有的FPGA架构中加入微处理器核与其它IP
功能模块,使其兼备功能性和灵活性。例如,Altera公司为嵌入式应用先后推出的Nios和Nios
II软核嵌入式处理器,就是一种可特许的通用RISC
CPU。它可与各种各样的外围接口、用户自定义指令和硬件加速单元相组合,构成一个定制的可编程片上系统(SoPC),并能够根据需要选择配置。
Xilinx也同样推出一个类似的32位哈佛结构的MicroBlaze软核嵌入式处理器。而另一种是微处理器厂家从微处理器出发,再加入可编程逻辑模
块。例如Triscend公司推出一种波称为是CsoC(Configurable
SoC)的技术,是在一个以ARM架构微处理器核为核心的SoC中嵌放工可编程逻辑模块,构成可配置的SoC平台。
1.3 微控制器的发展特点
尽管由于市场对多功能产品需求的增加和IT技术的推动,使32位MCU产品日益成为市场的热点;但目的8位MCU仍然是技术市场的主流,并且还有相当
广阔的应用空间和旺盛的生命力,16位MCU也占有一定的市场份额。各种MCU根据自己在市场上的定位,也都有了很大发展,MCU总的发展具有以下一些特
点。
(1)微控制器SoC化
微控制器(MCU)已可集成越来越多的内置部件。常用的部件有存储器类,包括程序存储器
MROM/OTPROM/EPROM/EEPROM/Flash和数据存储器SRAM/SDRAM/SSRAM;有串行接口类,包括UART、SPI、
I2C、CAN、IR、Ethernet、HDLC;有并行接口类,包括Centronics、PCI、IDE、GPIO等;有定时和时钟类,包括
Timer/Counter、RTC、Watchdog、Clock
out;有专用和外围接口类,包括Comparer(比较器)、ADC、DAC、LCD控制器、DMA、PWM、PLL、MAC、温度传感器等
。甚至有的MCU,例如NS公司的MCU,已把语音、图像部件也集成到单片机中,目的就是在单个器件中集成所有所需要用到的部件,构成片上系统
(SoC)。由于Cygnal公司推出的C8051F系列的MCU在一个芯片中集成了构成数据采集系统或控制系统所需要的几乎所有的数字和模拟外围接口和
功能部件,所以这种混合信号芯片被其称作SoC。
(2)多核结构处理器
随着嵌入式应用的深入,特别是在数字通信和网络中的应用,对处理器提出了更高的要求。为适应这种情况,现在已出现多核结构的处理器。
Motorola公司研发的MPC8260 PowerQUICC
II就是是一种先进的为电信和网络市场而设计的集成通信微处理器。它融合了两个CPU——嵌入式PowerPC内核和通信处理模块(CPM)。由于CPM
分担了嵌入式PowerPC核的外围工作任务,这种双处理器体系结构功耗反而要低于传统体系结构的处理器。
Infineon公司推出的TC10GP和增强型TC1130都是三核(TriCore)结构的微处理器。它同时具备RISC、CISC和DSP功
能,是一种建立在SoC概念上的结构。这种单处机由三个核组成:微控制器和DSP核、数据和程序存储器核、外围专用集成电路(ASIC)。这种单片机的最
大特点是把DSP和微控制器愈合成一个单内核,大大提高了微控制器的功能。具有类似结构的还有Hitachi公司的SH7410、SH7612等。它们用
于既需要MCU又需要DSP功能的场合,比使用单独MCU和DSP的组合提供了更优势的性能。
(3)更低功耗
现在新推出的MCU的功耗越来越小,很多MCU都有多种工作方式,包括等待、暂停、休眠、空闲、节电等工作方式。例如Philips的
P87LPC762,空闲状态下的电流为1.5mA,而在节电方式下电流只有0.5mA。很多MCU还允许在低振荡频率下以极低的功耗工作。例如,
P87LPC764在32.768kHz低频下,正常工作电流仅为Idd=16μA(VDD=3.6V),空闲模式下Idd=7μA(VDD=
3.6V)。
(4)更宽工作电压范围
扩大电源电压范围以及在较低电压下仍然能工作是现在新推出的MCU的一个特点。目前一般MCU都可以在3.3~5.5V的范围内工作,有些产品则可以
在2.2~6V的范围内工作。例如,Fujitsu的MB8919X、MB8912X和MB89130系列以及F2MC-8L系列MCU,绝大多数工作电
压范围都为2.2~6V;而TI的MSP430X11X系列的工作电压可以低达2.2V。Motorola针对长时间处在待机模式的装置所设计的超省电
HCS08系列MCU,已经把可工作的最低电压降到了1.8V。
(5)更先进的工艺和更小的封装
现在MCU的封装水平已大大提高,有越来越多的MCU采用了各种帖片封装形式,以满足便携式手持设备的需要。Microchip公司推出了目前世界上
体积最小的6引脚PIC10F2XX系列MCU。为了适应各种应用的需要,减少驱动电路,很多MCU的输出能力都有了很大提高,Motorola
MCU的I/O口灌电流可达8mA以上,而Microchip的MCU可达20~25mA,其它如AMD、Fujitsu、NEC、Infineon、
Hitachi、Toshiba等都在8~20mA之间。
(6)低噪声布线技术
在过去一般MCU中,电源与地引脚是安排在芯片封装的对角上,即左上、右下或右上、左下位置上。这种安排会使电源噪声对MCU的内部电路造成相对最大
干扰。现在很多MCU都把电源和地引脚安排在两个相邻的引脚上。这样既降低了干扰,还便于在印制电路板上对去耦电容器进行布线,降低系统的噪声。
2 嵌入式系统设计的新挑战
要求更高的应用需求推动嵌入式设计正在8/16位转向功能更强大的32位MCU。这种升级给工程师带来性能空间和处理裕度提升的同时也带来了严峻的挑
战,提出了一系列前所未有的全新问题。首先,要对开发工具和软件进行新的投资,并对设计流程进行重新定义;另外,要对原软件能多大程度地用于新架构、要把
已有软件移植到32位的新架构上还必须做多少工作,以及器件和开发工具的成本、存储器的种类、规模、性能和容量、可选器件的种类等进行评估。是否向32位
升级主要取决于经过综合考虑后的总的系统成本等。
2.1 发生了哪些变化
原来国内熟悉8位MCU开发的工程师大部分出身于电子工程和其他机电专业,而非计算机专业。随着嵌入式系统设计技术的发展,已经在很多方面发生了很大
的变化。在这此与传统的8位MCU的开发有着许多明显的不同:首先是开九牛二虎之力复杂度大为提高,其次开发形式、手段和工具也有了很大不同;另外系统越
来越多地是建立在RTOS平台上,使用的开发程序设计语言不再是开始效率很低的汇编语言,而越来越多地使用开发效率很高的高级语言。C语言已成为主流通用
开发语言。
(1)开发的复杂度
各种多媒体和通信手持设备、信息家电和复杂系统都需要更强大的MCU来完成复杂大数据量实时处理。例如,目前移动电话手机需要多屏显示、网页浏览、文
本信息发送、带查找功能的大容量地址簿和语音拨号等功能;最新数码相机及摄像机的高效率数据压缩、自动识别和各种智能处理等,需要增加DSP功能;电话交
换机需要分布式处理而采用多处理器结构。
(2)开发形式、手段和工具
随着开发对象复杂度的提高,硬件和软件设计比例发生了很大变化。软件开发的比重越来越大,复杂系统的设计已不可能由一个设计师包括硬件和软件,而必须
由一个团队来分工合作完成。由此也推出了开发形式、手段和工具的发展,特别是硬件/软件协同设计和验证技术、设计管理技术(如软件版本管理软件)和各种嵌
入式系统设计工具软件的发展。
过去,几乎所有4/8/16位MCU的开发都必须要有用于实时调试的专用在线仿真器(IC E),其开发过程总是先设计、制作和调试好硬件,同时进行
软件编程,在调试好硬件电路板之前,对软件最多仅能进行关于纯逻辑和计算的调试;只有在已调试好的硬件基础上,才能进行系统应用软件的调试,所有可以提供
的程序库或应用软件包都是专用的。
对于32位嵌入式处理器来说,随着时钟频率越来越高(50~400MHz以上),加上复杂的封装形式(如BGA),ICE已越来越难胜任开发工具的工
作。目前替代的基本方法是借助于JTAG接口构成JTAG调试器,直接从CPU获取调试信息而使得产品的设计简化,从而使得开发工具的价格反而要低于
ICE。
软件和硬件工程师并行工作是一种发展潮流。通过协同设计,特别是协同验证技术,软件工程师能尽早在真实硬件上测试,而硬件工程师能尽早在原形设计周期中验证他们的设计。
因为嵌入式系统的复杂性和多样性,不可能有一个包打天下的统一的完整解决方案,所以不同的EDA供应商推出了各种商用嵌入式系统设计环境。如有
Synopsys公司的Co-Centric System
Studio、Cadence公司的“虚拟元件协同设计”(VCC)、CoWare公司的“CoWare
N2C”等,还有世界各地的大学也为嵌入式系统设计开发出各种用于特定应用的免费工具。
(3)开发平台
能让产品可靠和迅速上市是嵌入式系统普通要求。为了提高时效,过去“一切自行设计”的模式已逐渐被“尽量采用具有IP的产品”所代替。这又推动了标准实时操作系统(RTOS)和相应的调试技术的发展。
由于32位架构的MPU/MCU的资源丰富,指令集相对庞大,而且系统软件也更加复杂,特别当系统有多任务实时保证的要求时,通常要选用一种RTOS
作为开发平台来对应用软件中的多任务进行调度。当系统需要连接Intenet网/实现图形用户界面(GUI)或文件系统(FS)时,若采用支持
TCP/IP协议栈/GUI/FS的嵌入式操作系统,可极大地降低复杂多任务系统开发的难度。
RTOS的引入解决了嵌入式软件开发标准化的难题,促进嵌入式开发软件的模块化和可移植化,为软件工程化打下基础。随着嵌入式系统中软件比重不断上
升、应用程序越来越大,这对开发人员的知识结构、应用程序接口和程序档案的组织管理等都提出了新的要求。引入RTOS相当于引入了一种新的管理模式,对于
开发单片机和开发人员都是一个飞跃。
(4)开发语言
在从8/16位MCU向32位转换时,所用软件开发语言也发生了变化。过去大部分8/16位MCU都没有太多的性能冗余,软件编写必须完全适合其有限的处理功能,因此软件开发大部分用汇编语言编写。
在8/16位MCU上采用C、PL/M等高级语言编程,再用相关编译器转换成相应机器语言执行,早在十几年前就已尝试并推广;但由于当时编译器的编译
效率还不够高,高级语言程序的额外开销相对比较大、运行效率下降,再加上8/16位MCU本身处理裕度有限,失言进度缓慢。最近几年,就8/16位MCU
而言,随着C编译器效率和MCU性能的大幅度提高,用高级语言代替汇编语言也渐成趋势,典型的MCU都推出了自己的C编译器。其中Keil
C51的编译效率已达到很高水平,经过优化的用Keil C51编写的程序编译后的运行效率甚至要高于普通开发者直接用汇编语言编写的程序。
2.2 设计者面对的新挑战
(1)转变观念,需要熟悉新的开发模式
嵌入式系统应用不再是过去单一的单片机应用模式,而是越来截止多样化,这可为用户提供更多的不同层次的选择方案。嵌入式系统实现的最高形式是片上系统
SoC,而SoC的核心技术是重用和组合IP核构件。从单片机应用设计到片上系统设计及其中间的一系列的变化,从底层大包大揽的设计到利用FPGA和IP
模块进行功能组合PsoC/SOPC设计,这是一个观念的转变。学习和熟悉新的开发模式将会事半功倍地构建功能强大和性能卓越的嵌入式系统,但同时也给系
统的设计验证工作提出了许多新的挑战。
(2)进入的技术门槛提高,需要学习全新的RTOS技术
现代高端嵌入式系统都是建立在RTOS基础上的。这对于未受过计算机专业训练的各专业领域的工程技术人员来说,需要学习全新的RTOS技术,深入了解
RTOS的工作机制和系统的资源配置,掌握底层软件、系统软件和应用软件的设计和调试方式。进入的技术门槛要比所熟悉的开发方法高得多。这对于开发者来
说,也是一个新的挑战。
(3)选择适合的开发工具,熟悉新的开发环境
目前从8位升级到32位的一个最大障碍就是开发工具的投入。32位开发工具要比8位开发工具复杂得多,使用的技术门槛要高得多,同时其投资也要高得
多。进入32位系统开发的工程师不得不面对与8位系统很不相同的开发环境。如何正确选择处理器架构、评估嵌入式操作系统,以及使用陌生的开发工具,都是一
个新的挑战。
(4)熟悉硬件/软件协同设计和验证技术、设计管理技术
软/硬件并行设计是嵌入式系统设计的一项关键任务。在设计过程中的主要问题,是软硬件设计的同步与集成。这要求控制一致性与正确性,但随着技术细节不
断增加,需要消耗大量时间。目前,业界已经开发Polis、Cosyma及Chinook等多种方法和工具来支持集成式软硬件协同设计。目标是提供一种统
一的软硬件开发方法,它支持设计空间探索,并使系统功能可以跨越硬件和软件平台复用。
团队开发的最大问题就是设计管理问题。现在有越来越多的公司开始重视技术管理,利用各种技术管理软件(例如软件版本管理软件)对全过程进行监督管理。
这对每一个参与开发的人来说,似乎增加了不少麻烦,但是对整个公司的产品上市、升级、维护以及战略利益都具有长远的效益。
(5)SoC设计所面临的巨大的挑战
SoC已经开始成为新一代应用电子技术的核心,这已成为电子技术的革命标志。过去应用工程师面对的是各种ASIC电路,而现在越来越多所面对的是巨大
的IP模块库,所有设计工作都是以IP模块为基础。SoC设计技术使嵌入式系统设计工程师变成了一个面向应用的电子器件设计工程师。随着SoC应用的日益
普及,在测试程序生成、工程开发、硅片查错、量产等领域对SoC测试技术提出了越来越高的要求。掌握新的测试理念及新的测试流程、方法和技术,是对单片机
应用工程师提出的新挑战。
推荐阅读:嵌入式MPEG-4解码系统的设计与实现
ARM程序设计优化策略与技术
ARM的介绍与选择
ARM开发经典学习网站推荐
1. EG3
关于嵌入式开发的站点,提供非常多关于嵌入式开发的资料。包括开发公司,技术文档,免费资源等等。版面包括busses &
boards,embedded software,dsp,embedded systems,open source,rtos,embedded
chips,system-on-a-chip 等等。
强烈推荐
http://www.eg3.com/ - 外文
2. The First Stop for the Latest ICs and Components
非常好的关于微处理器,DSP,可以编程控制器资讯的网站,更新非常快。强烈推荐一些领导级别的人常去,了解行业动态!
http://www.eeproductcenter.com/ - 外文
3. Programmers Heaven - Assembler programming zone
大量的源代码,分类清晰,强烈推荐。但是有很多好像已经不再更新了。
http://www.programmersheaven.com/zone5/index.htm - 外文
4. 吐血推荐的关于ARM开发的网站,收集了非常多ARM开发工具,而且是免费的。
http://www.gnuarm.com/resources.html - 外文
5. ARM的中文网站,官方网站
http://www.arm.com/chinese/ - 中文
6. 美国Cornell University课程ECE476所完成的项目。
这些项目都具有详细学习资料。共有200多个项目,看看这些东西,就能感觉国内与国外教学实践的差别。我们国家很多高校的电子相关专业的设计就是搞个键
盘,搞个MAX7219显示,搞个DS1302时钟,'一百年不变'。看了它是我记得很不舒服。大家好好研究研究吧。特别是老师们,一定要深思。
一毛
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/ - 外文
7. Build Your Own Microcontroller Projects
This page provides schematic and software for hobbyists to practice
"learn by doing", build a simple microcontroller projects at home. For
those who would like to contribute projects, please prepare HTML files
whatever you like to see but keep all files small and informative. I
shall provide for others. DIY的好地方,强烈推荐.
http://www.kmitl.ac.th/~kswichit/ - 外文
8. LPC2000 Tools from the LPC2000 Yahoo! Group 推荐
http://www.gnuarm.com/~lpc2000/body.html - 外文
9. GNU ARM? toolchain for Cygwin, Linux and MacOS .推荐
这里是它的实用资源 http://www.gnuarm.com/resources.html
讨论组 http://groups.yahoo.com/group/gnuarm/
文件下载 http://www.gnuarm.com/files.html
http://www.gnuarm.com/ - 外文
10. ARMuC Wiki.大量的开发资料,强烈推荐
http://www.open-research.org.uk/ARMuC/ - 外文
11. 来自www.mikrocontroller.net大量实用链接
这里有许多所用链接关于AVR,8051,ARM,PIC.它收集的AVR信息是我看到的最好的。遗憾的是网站语言是德文。
http://www.mikrocontroller.net/articles/Linksammlung - 外文
12. LPC2000 information page featuring the Philips ARM microcontrollers
关于LPC2100的专业网站
http://www.lpc2100.com/ - 外文
13. ARMboot
ARMboot is an Open-Source firmware suite for ARM based platforms.
ARMboot is heavily based on the sister-project PPCboot, which provides
similar functionality on PowerPC based systems. ARMboot shall be a
common, easy-to-use and easy-to-port boot platform
http://armboot.sourceforge.net/ - 外文
14. 周立功单片机
国内知名的民营企业,他主要是代理 PHILIPS 公司的 ARM微控制器与单片机,在该网站上可以下载大量的相关资料。推荐看看
http://www.zlgmcu.com - 中文
15. ARMphetamine
ARMphetamine is a project to create a fast and accurate ARM processor
emulator. A technique known as "dynamic recompilation" will be used so
that the highest possible speed can be achieved for emulated code - ARM
code programs are translated into native code as they are being
emulated. The current development platform is Linux/x86
http://armphetamine.sourceforge.net/ - 外文
16. Linux for all ARM based machines
一种LINUX操作系统,适合移植在ARM结构上。
http://www.arm.linux.org.uk/ - 外文
17. Universal Bootloader
Universal Bootloader project provides firmware with full source code
under GPL. Many CPU architectures are supported: PowerPC(MPC5xx,
MPC8xx, MPC82xx, MPC7xx, MPC74xx, 4xx), ARM(ARM7, ARM9, StrongARM,
Xscale), MIPS(4Kc,5Kc), x86, ...
http://sourceforge.net/projects/u-boot - 外文
18. SkyEye Project
SkyEye是一个开源软件(opensource
software)项目,中文名字是“天目”。SkyEye的目标是在通用的Linux和Windows平台实现一个模拟集成开发环境,模拟基于ARM的
嵌入式计算机系统;可在SkyEye上运行ARM
Linux,uclinux以及uC/OS-II等多种嵌入式操作系统,并对它们进行源码级的分析和测试
http://www.skyeye.org/index_cn.html - 外文
19. uclinux-elf-tools
一个优秀的交叉编译工具。m68k系统,ARM系统下有很好的性能。
http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/ - 外文
20. MCUserver
一个比较专业的关于电子开发的网站,但是我也不知道网站是什么语言,但看一勉强看懂。它的下载区有很多实用资料,需要注册才可以下载。它提供很多DIY电路,比如PIC,AVR,MSP430,FPGA,ARM,8051等等编程电路。推荐
http://www.mcu.cz/modules/news/ - 外文
21. Embeder's Family--嵌入者之家
个人站点,但是这里有些相关资源下载http://www.embeder.com/bbs/showforum.asp?forumid=10
它的ARM论坛还可以.http://www.embeder.com/bbs/
http://www.embeder.com/ - 中文
22. ArmTime Technology
推荐.比较不错的ARM网站,比较专业的网站.
http://www.armtime.com/ - 中文
23. GNU Toolchain for ARM Processors
http://www.codesourcery.com/arch ... ounce/maillist.html
http://www.codesourcery.com/archives/arm-gnu/maillist.html
http://www.codesourcery.com/gnu_toolchains/arm/ - 外文
24. ARMLinux Resources
Here are links to various resources for ARMLinux. Mostly off-site but some are maintained here.
http://www.aleph1.co.uk/armlinux/
http://www.aleph1.co.uk/armlinux/resources.html - 外文
25. www.ulrichradig.de
一个非常好的德国个人网站,有些电子制作.比较经典的就是
1,利用AVR单片机做的WEB服务器.RTL8019芯片.
2,利用CPLD产生视频信号VGA.
3,μClinux - mini Linux for the Philips's ARM LPC2294
http://www.ulrichradig.de/ - 外文
26. boot
Booting on any device needs a boot-loader and some means to get the
boot-loader installed in the first place. Here we look at the specifics
for ARM architecture devices booting Linux, covering available
boot-loaders and their capabilities, some general principles and
mechanisms for uploading the Linux kernel and root filesystem, giving
specific examples with Jflash-linux and Blob.
http://www.aleph1.co.uk/armlinux/docs/ARMbooting/t1.html - 外文
27. 武汉创维特嵌入式沙龙
主要是关于ARM的开发.
下载页面有些好东西:http://www.cvtech.com.cn/cvtech/down_index.asp
http://www.cvtech.com.cn/ - 中文
28. Debian GNU/Linux on ARM
On these pages you'll find information about the ongoing effort of
porting Debian GNU/Linux to the ARM architecture which is often found
in embedded systems
http://www.debian.org/ports/arm/ - 外文
29. ARM Documentation 来自官方网站
http://www.arm.com/documentation/ - 外文
30. ARM Devlopments
http://www.ap-systems.co.uk/index.htm - 外文
31. RTLinux for StrongARM
http://www.imec.be/rtlinux/ - 外文
32. PIC,AVR,ARM,MSP430开发DIY
该网站提供很多的PIC,AVR,ARM,MSP430的开发资料,特别适合自己制作开发系统,它的ARM开发(利用LPC21**系列)是非常号的资料。推荐。
http://www.olimex.com/dev/index.html - 外文
33. 杭州莱顿科技有限公司
尽管是买方ARM(主要是三星的芯片)开发板的,但是里面也有不少开发资料下载,开发三星ARM不容错过。
http://www.jzx51.com/index.htm - 中文
34. 嵌入式开源项目
是一个适合初学者学习嵌入式开发的技术网站,lumit 名称取自 let us make it together 这句话的首字母缩写。我们期待对嵌入式技术有兴趣的朋友能和我们一起学习、动手制作、相互探讨、共同进步。
lumit 也是一个软硬件资料可以完全免费下载的开源项目,目前主要目标是制作一个基于arm7tdmi s3c4510开发板的可以实用的u盘,未来我们希望还能做出 mp3、pda 甚至是 dc,dv 等。
http://www.lumit.org/ - 中文
35. ARM时代
提供:ARM仿真器|ARM开发板|ARM技术 项目 方案 成型产品,还有一些ARM开发资料供下载
http://www.arm9e.com/ - 中文
36. 广州友善之臂的ARM资料下载
http://www.arm9.net/m4-download.asp - 中文
37. Aeolus Development - Embedded Hardware and Software
http://www.aeolusdevelopment.com/ - 外文
38. 阿冰BLOG : ARM与嵌入式开发
http://ustcers.com/blogs/devzhao/articles/category/65.aspx - 中文
39. 中国单片机公共实验室.--可以看看.
http://www.bol-system.com/ - 中文
40. 52ARM微电通讯技术网
http://www.52arm.com/ - 中文
41. 思恒科技-DSP、ARM、FPGA等开发的电子综合网站
公司网站,资料还不是很多,有时间可以看看。
http://www.siheng.cn/ - 中文
42. 三星官方网站的ARM芯片资料下载
http://www.samsung.com/Products/ ... family_cd=LSI090101 - 外文
43. 西安建华科技实业有限公司
提供ARM开发板,同时也有少量的ARM开发文档.
http://www.jhembed.com/ - 中文
44. 小章电子技术网 -很多实用电子资料下载。
http://www.zyjmcu.com/zlxz.htm - 中文
45. ARM专栏
http://www.baite-group.com/chinese_simple/bbs/arm.htm - 中文
46. Instruction set quick finder
his document describes, as completely as I am aware of, the ARM
instruction set. If, however, you are only interested in the
instructions relating to programming under RISC OS, you may prefer to
read the shorter quick finder document...
http://www.heyrick.co.uk/assembler/qfinder.html - 中文
47. ARM学习网
http://218.78.211.237:8088/ - 中文
文章来源: http://wuqidongxing.blog.163.com ... 495020079284363574/
几本linux学习的书籍
本人正在进行linux 的学习 希望这些资料对linux爱好者有用
linux 教材大全 ftp://down.eshuba.com/eshuba/xitongxiangguan/Linuxjcdq.rar
linux 使用大全 http://down.eshuai.cn/shuba/xito ... %C3%B4%F3%C8%AB.rar
linux 学习宝典 http://down1.cnhacker.com/booksdown/07013103050c8cb659a28f9ff.rar
linux 从入门到精通 http://www.gouhuo.com/study/linuxbook.zip
练成linux 高手 http://www.jz5u.com/download.asp?id=15590&downid=0
送给linux 初学者 ftp://211.95.73.26/hl/送给初学Linux的穷人Linux系统指令大全.pdf
linux 系统管理 ftp://211.95.73.26/1zxhlinux.rar
linux 命令大全 http://ftpgz5.pconline.com.cn/exam/it/Linux061114.rar
linux 软件工程师 ftp://222.214.218.42/book3/20060 ... 81-4941bcee1f11.pdf
基础学习 http://www.00083.com/soft/upload ... 84b69a63c2ed2a47af3
基础教程完整版 http://download.chinaitlab.com/download.asp?id=34873
命令全集 http://down.linuxmine.com/soft/0/1/01000001.rar
使用学习教程 ftp://222.214.216.57/book2/20061 ... 16-c8b5facb0654.chm
网络安全配置 http://vip.hackbase.com/vipsoft/vipteacher/20050305linux29.rar
linux 从入门到精通 ftp://down.eshuba.com/eshuba/200601/Linux ??????.rar
http://ftpgz13.pconline.com.cn/pub/download/200205/linuxsite.rar
新手管理员手册 http://www.00083.com/soft/upload ... fc01983a9ded8943b62
安装与配置简明手册 http://cpss.zz.ha.cn/study/linux ... %f7%ca%d6%b2%e1.zip
网络实际操作 thunder://QUFodHRwOi8vZG93bmxvYWQuY2hpbmFpdGxhYi5jb20vZG93bmxvYWQuYXNwP2lkPTM3MTM3Wlo=
红旗linux 中文版初级教程 http://down.hack58.com/fzw_hack58/sohu/11-23linux.rar
linux 核心源代码分析PDG http://www.00083.com/soft/uploadsoft/linux核心源代码分析.rar?6103004891303x1174341082x6103009877379-15c492eb5c3033c99a07c2fba419c496
破解根用户密码 http://www.942d.com/shipin/bbs/linuxsn.rar
Red Hat Linux Fedora傻瓜书 httP://book1.ibook8.com/ibook8co ... 5/041113/fedora.rar
Linux知识宝库典藏版 ftp://222.214.218.42/book3/20060 ... 35-0c5492042030.chm
Linux程序设计 ftp://down.eshuba.com/eshuba/xitongxiangguan/Linuxcxsj.rar
Linux参考大全 httP://book1.ibook8.com/ibook8com/pc2005/701/1/521hacker-20.zip
linux编程初学者入门 ftp://222.214.216.57/book2/20061 ... 00-a603302e0466.rar
LINUX应用技术精华{面向初学Linux朋友的书籍} http://www.linuxfans.org/nuke/software/LINUX应用技术精华{面向初学Linux朋友的书籍}/LINUX应用技术精华{面向初学Linux朋友的书籍}.rar
redhat9从入门到精通 http://down.315safe.com:315/redhat9从入门到精通.rar
Linux C函数库参考手册 http://cnc-http.xpbook.com:81/200506/Linux%20C函数库参考手册.rar?6102881127298x1150968278x6102884440460-71dc8cd6d874db99d29888002914a4d5
Linux 内核完全注释 httP://book1.ibook8.com/ibook8co ... 113/linuxsystem.rar
Linux2006年9月 总第三期 http://www.linuxer.cn/magazine/linuxer3-2006-09.pdf
Linux_network_manage-3245 http://down.csdn.net/down2//2006 ... ork_manage-3245.rar
一周内学会Linux系统管理 http://download1.csdn.net/down2/2006/10/499/1zxhlinux-2605.rar
linux编程白皮书 http://download1.csdn.net/down//2006/webdown/004/Linuxbcbps.rar
linux上的c编程 http://www.cinchina.com/Soft/Sho ... lID=1&SoftID=12
linux宝典 thunder://QUFodHRwOi8vZG93bmxvYWQuY2hpbmFpdGxhYi5jb20vZG93bmxvYWQuYXNwP2lkPTM3MDk3Wlo=
《Linux内核完全注释》 V1.9.5版 http://oldlinux.qbang.org/download/clk011c-1.9.5.pdf
linux教材 thunder://QUFodHRwOi8vd3d3Lmp6NXUuY29tL2Rvd25sb2FkLmFzcD9pZD0xNDUxNSZkb3duaWQ9MFpa
linux命令全集Shell_manual http://www.uplinux.com/php/downl ... ZWxsX21hbnVhbC56aXA
推荐一个很好的文献检索资源网站
诺贝尔学术资源网为您提供:国内外文献检索资源、文献代理、文献互助等。文献资源一切都是免费的。
诺贝尔学术资源网您提供一个学习最新的文献检索技术,获得最新文献资源的平台。
网址是:http:// bbs. ok6ok. com
http:// www .i-nobel .com(教育网)
posted @
2007-12-02 11:38 MEYE 阅读(2351) |
评论 (0) |
编辑 收藏
音乐网站大全
现代摇滚单曲排行榜——更新较快,20首最TOP现代摇滚单曲下载,免费
http://www.fwcn.com/billboard/
音乐天使——来自天堂的声音,来自天使的声音,如梦似幻,与你分享……
http://music.angelyaya.net/gs/
英语之声——可下载欧美经典3辑99首mp3格式音乐
http://www.english.ac.cn/songs/index.htm
yepoo音乐——收集有六张欧美音乐专辑,mp3格式,192.0Kpbs码率(速度超级快)
http://www.yepoo.com/main.asp
嘎雅NEWAGE音乐——提供大量NEWAGE音乐下载,mp3格式,音质不错
http://gaea.hit.edu.cn/m3uplay/nvmake/nc.asp
震撼音乐——淄博供电公司提供的154首经典音乐,主要是欧美mp3音乐下载
http://61.156.17.162/MP3/
蚂蚁的欧美歌曲 1 4 5 ——提供30多张近1000首欧美歌曲下载,全部mp3格式
http://qol.qdc.com.cn/mp3/omlmjd/ANTS.HTM
http://media.gdpc.edu.cn/music/cdvolume/ant4/ant4.htm
http://media.gdpc.edu.cn/music/cdvolume/ant5/ant5.htm
古典圣殿——提供70张音乐专辑在线试听
http://210.34.4.3/cd-bible/gudian/gudian.htm
天外之音——免费提供40CD的WMA格式音乐下载,大部分为欧美音乐
http://www.zhzx.net.cn/students/studentpage/bright/index.htm
电影画廊——免费提供30多张电影主要是欧美电影原声音乐下载,全部mp3格式
http://202.103.25.159/cine/music/mp3.htm
第一城市——免费提供两张M2M的专辑和一张007专辑下载,全部mp3格式
http://www.ecityboy.com/03down/index-3.htm
影视先锋——提供较多欧美、日韩电影原声下载赏析 Midi格式 MP3格式 RM格式
http://202.102.230.12/movie/music/mp3/notting/mp3.htm
http://202.102.230.12/movie/music/shang.htm
http://202.102.230.12/movie/music/midi.htm
http://202.102.230.12/movie/music/mp3.htm
http://202.102.230.12/movie/music/rm.htm
LOW摇滚音乐网——免费提供Linkin Park,Limp Bizkit,Foo Fighters,Silverchair等14位歌手的专辑下载
http://www.low69.com/download.html
http://www.low69.com/mp3/LinkinPark.html
http://www.low69.com/mp3/LimpBizkit.html
http://www.low69.com/mp3/FooFighters.html
http://www.low69.com/mp3/Silverchair.html
古典音乐厅——收集肖邦、斯特劳斯、柴可夫斯基、贝多芬、巴赫等17位世界音乐大师的主要作品,提供rm、mp3下载
http://bds.cetin.net.cn:81/cetin2/sp/music-hall/music-1.htm
百度mp3论坛精华—顾名可思义,可以找到很多欧美音乐,且下载很方便
http://forum.baidu.com/cgi-bin/f ... id=16&age=0
欧美影视金曲——提供134首经典欧美影视金曲mp3下载
http://brightsun.hr.hl.cn/xiuxian/yjt/ysjq/
歌曲集萃——厦门6中音乐网,有经典老歌、英文金曲、影视名曲、童声合唱、世界经典名曲下载,全部mp3格式
http://www.liuzhong.xm.fj.cn/music2/
http://www.liuzhong.xm.fj.cn/music2/song/song.htm
http://www.liuzhong.xm.fj.cn/music2/song/english/english.htm
http://www.liuzhong.xm.fj.cn/music2/filmsong/filmsong.htm
http://www.liuzhong.xm.fj.cn/music2/song/song03.htm
http://www.liuzhong.xm.fj.cn/music2/xfmq/shijie01.htm
悠长密道——原声书馆。黑魔法影视音乐城!美丽的声音,美丽的故事……等待着您与蓝衣演绎!
http://www.soundo.net/yc_index.htm
雅尼的主页——我只知道这个网站提供单曲在线视听,还有什么,你去看了就知道
http://www.yanni.com/
理查德·克莱德曼浪漫钢琴曲——本站论坛收集的《理查德·克莱德曼浪漫钢琴曲》119首mp3音乐,免费免注册提供下载
http://www.asweiren.org/bbs/lunt ... u=4&num=204
名家名作——收集理查德·克莱德曼、肯尼吉、雅尼、詹姆斯高威、保罗摩利亚的作品
http://www.charlesonline.org/music/famous_artist.htm
Huya音乐——网站制作精美,有特色,有九个欧美音乐专辑,音乐虽少了点,但都是精华
http://www.huya.net/music/music.htm
水滴音乐——提供欧美音乐mp3下载,音乐也不是很多,但有很多歌词,也是一个不错的网站
http://music.nbjyc.com.cn
魅力吉他——百度论坛精华,由100free收集,实际是德翁的帖子,提供63首吉他曲下载
http://forum.baidu.com/cgi-bin/f ... pg=4&age=60
加州旅馆——百度论坛精华帖,是德翁的帖子,13种版本,附带一个网址,可下载更多的版本
http://forum.baidu.com/cgi-bin/f ... 0&h=1#54135
欧美音乐——一个人气较旺的欧美音乐站点,免费提供mp3下载,同时打开一个音乐论坛,可以找到一定数量的音乐
http://www.oumei.net/index.html
披头士精选——中文披头士专门网站,提供100首披头士音乐下载,链接速度较慢
http://211.101.197.94/beatles/download.asp
神秘园——神秘园音乐4CD,提供mp3下载,但不太稳定,我下载过
http://yini.lili.cc/secretgarden/download.htm
Winamp Radi——Winamp网络电台,128Kpbs,音质好,我觉得不错
http://www.shoutcast.com
天碟落地——提供6张经典音乐大碟mp3下载,在恐怖海峡有3张专辑下载,请在晚上(11点钟以前)下载
http://yfok.vicp.net/fan/fan.htm
苏俄音乐——有丰富的苏俄音乐,可惜的是mp3格式不多,大部分是asf格式,凑合着听吧
http://xue-fan.y365.com/download.html
音乐地图,爱听音乐的朋友不要错过。
cn.51.net/online.php>http://pengwcn.51.net/online.php
部分杰出的音乐公司及杂志与音响技术等站点
http://www.thinktip.com/bbs/music.htm
Namm新纪元音乐杂- http://go4.163.com/namm/index1.htm
日本音乐信息中心- http://www.jamic.org/
我爱Mp3搜索引擎- http://www.5imp3.com/
=======英文音乐站=======
Download.com- http://download.com.com/
21st Century Mp3- http://www.21century-mp3.com/
MP3.com- http://www.mp3.com/
水滴音乐- http://music.nbjyc.com.cn/
Chinto Music Lover- http://chinto.hypermart.net/
CrazyEMusic.com 欧美流行风- http://61.139.37.148/music/
Music Cool- http://www.musiccool.net/
音乐城市- http://www.musiccity.com
MP3.BOX.SK- http://mp3.box.sk/
Your Digital Music Oasis- http://www.dmusic.com/
Lycos Music- http://music.lycos.com/
VH1.com- http://www.vh1.com/
AMG All Music Guide- http://www.allmusic.com/
country.com- http://www.country.com/
MP3 Search- http://music.salon.com.cn/
leon83.com- http://www.leon83.com/
Welcome to Fast Search & Transfer- http://www.fast.no/
MusicSearch.com The Internet's Music-Only Search
Site!- http://www.musicsearch.com/
welcome to sonico.com homepage- http://en.sonico.com/
AudioFind- http://www.allmp3.com/
it's craptastic!(该站友情链结极好,音乐下载在线站极
多)- http://www.punkasspunk.com/
VITAMINIC_the music evolution- http://www.vitaminic.com/
MP3 Search- http://www.look4sound.com/
4AD- http://www.4ad.com/
=======古典音乐=======
古典音乐网- http://www.classical.net.cn/
水妖的岛- http://shuitou.net/
巴洛克音乐圣殿- http://baroque.yeah.net/
追月寻风- http://coralgz.51.net/gudian/shangshui.htm
中国音乐剧网- http://www.chinamusical.com/normal/chinamusical.html
歌剧音乐下载站- http://malei.vip.sina.com/classicaldownload.html
古典音乐下载网- http://malei.vip.sina.com/
黑暗放逐(推荐)- http://www.dzbbs.com/
星乐钢琴手(推荐)- http://www.xygqs.com/
音乐岛- http://cell.my169.com/
瞬间,永恒- http://person.zj.cninfo.net/~sanio/index.html
音乐与音响- http://music_sound.myetang.com/index.htm
..:::贝多芬爱好者同盟:::..- http://www.beethovenian.net/
古典音- http://www.chinakongzi.com/2550/music/
中国音乐教育- http://xiaoyv.myrice.com/
哆来咪- http://www.duolaimi.com/
艺声在线- http://yszxmp3.126.com/
Here is Music- http://www.hereismusic.com
=======品味音乐=======
诗歌音乐室- http://www.lifespring.com.hk/gb/music.htm
音域派(强烈推荐)- http://audio.zjg.jsinfo.net/
吉它秀- http://www.51guitar.com/
雅燃音乐天空(戏子强烈推荐)- http://www.flamesky.org/
新世纪网·纯音乐天堂(戏子强烈推荐)- http://www.cnnewage.com/
短歌行(戏子强烈推荐- http://www.audio100.com/
爵士当铺- http://www.jazzsky.cc/
R o c k Y e a r 摇滚年音乐网- http://rockyear.yeah.net/
DYING ART UNDERGROUND CDR LABEL- http://www.underfm.com.cn/
Music Game Zone 2ndMix- http://www.m-g-z.com/
我爱摇滚乐- http://www.sorock.com/
佛乐,永远开放,不着边际(强烈推荐)- http://fofilm.org/qianxiang/
爱尔兰音乐大全- http://www.drunkencrew.com/primary.htm
天籁音乐网- http://www.ynfox.com/music/index.htm
革命音乐空间- http://hong6666.myetang.com/
James Studio- http://jamesy.533.net/
大同音乐- http://61.134.13.16/mp3/omusic/index.php3
沉没的蟋蟀(强烈推荐)- http://61.136.63.120/rem/home.htm
=======歌词站=======
炫网资讯- http://music.liuxuan.com/
中文LRC歌词库- http://lrcman.yeah.net/
放肆音乐通歌词子站- http://www.yemusic.com/
歌词吾爱- http://www.51lrc.com/
=======在线MUSIC=======
彭彭听吧(强烈推荐)- http://www.oo-xx.com/
音乐红茶馆- http://www.musictea.com/
512city音乐时空- http://www.512city.net/music
MTV.com- http://www.mtv.com/
听吧音乐网- http://www.tingbar.com/
天虎音乐网- http://music.tyfo.com/
MTV-CHINA.com- http://www.mtv-china.com/feature
中国音乐在线- http://202.98.223.68/mtvtop/index2.htm
Realplay music- http://www.ahbb.net/music/realindex.htm
听听音乐- http://www.ting365.com/
网蛙- http://www.wanwa.com/
红尘驿站- http://www.thepasser.com/music/default.asp
華?#123;線上音樂雜誌- http://www.warnermusic.com.tw/
阿穆的感性音乐- http://www.amusicday.com/radio.htm
宽频音乐- http://www.c-mtv.com/
求索音乐无限- http://research.swufe.edu.cn/new/music.php
http://www.163ie.net/music/
=======下载音乐网站=======
BoxUp Music- http://www.boxup.com/
MP3 Download- http://www.finder.com.cn/mp3finder/
Soyou实达所有- http://idp.soyou.com/MP3/head
中文音乐- http://www.xuxule.com/
张雨生音乐大全- http://www.kkttkk.com/indexdown/
大陆mp3音乐超市- http://www.cdjmp3.com/
天籁村- http://music.qu-zhou.com/homepage/indexall.html
音乐极限- http://www.chinamp3.com/
mp3秀- http://www.mp3xu.com/
丽声世界- http://www.lssj.net/
汉源音乐- http://music.hyinfo.net/
MP3搜集网- http://www.88u8.com/mp3
弦音歌语- http://music.21youth.com/
mp3- http://cdp2331170.home.chinaren.com/mp3/mp3.htm
音乐先锋- http://music.188.net/
中文网络音乐资源中心- http://www.topmusic.net.cn/
天籁阁- http://www.99mp3.com/
365佳音网- http://music.ganzhou.com/
音乐磁场- http://www-jl.jl.cninfo.net/jlweb/music/
音乐加油站- http://www.yereal.com/
9SKY九天音乐网- http://www.9sky.com/
非常音乐网- http://www.verymusic.net/
摇滚音乐网- http://www.xmusics.net/
玩易音乐- http://www.jninfo.net.cn/music/
久久音乐- http://www.99music.net/index.htm
搜刮(强烈推荐)- http://www.sogua.com/
Bseven韩流娱乐网- http://www.bseven.com/
54dj俱乐部- http://www.54djclub.com/
DJ街区- http://www.dj-street.com/
飛行網- http://www.music.com.tw/
華人全球音樂網- http://www.mtvstar.com.tw/
混音电台- http://www.yesdj.com/Default.asp
娱乐在线- http://music.yn.cninfo.net/index.shtml
私人地方請立即離開- http://pop169.com/
我找我歌MP3搜索网- http://www.5find.com/
Music Heaven- http://www.charmusic.com/
Music site- http://music.zsnet.com/
中文音乐星空- http://hotcd.126.com/
中国乐坛欢迎您- http://www.cmusic.com.cn/
听者有心(强烈推荐)- http://www.musicool.com.cn/index.htm
音乐无极限- http://www.limitlessmusic.net/
浪琴音乐网- http://www.langqin.net/
轻音飞扬- http://music.stu.edu.cn/
吉通音乐在线- http://www.weihai.cngb.com/music/first.asp
飞天网景- http://music.lz.gs.cninfo.net/
亿兆音乐网之“音乐E+亿- http://music.emsky.com/
花木兰音- http://www.wmacn.com/
:::音乐之声::- http://music.ty.sx.cn/
济宁宽带数码港MP3音乐- http://tv.jninfo.net.cn/mp3/
金山网景-缤纷乐坛- http://music.jsol.net/index.html
网娱一派- http://song.beelink.com.cn/
======= 收集的音乐论坛=======
http://www.bluedown.net/cgi-bin/forums.cgi?forum=21
======= 专属音乐站点=======
穾唯,幻梦天水- http://www.douwei.net/
齐秦驿站扉页- http://www.kl.gz.cn/~flyingcg
BANDARI- http://bandari.dhs.org/
deflower.cn.st- http://deflower.cn.st/
音乐网站列表
九天音乐网 http://www.9sky.com
boxup music http://www.boxup.com
音乐听厅 http://www.nowok.net
搜刮音乐 http://www.sogua.com
嘻嘘音乐 http://www.xuxule.com
网蛙音乐网 http://www.wanwa.com
音乐极限 http://www.chinamp3.com
pop169.com http://pop169.com
音乐加油站 http://www.yemp3.com
音乐加油站(new) http://www.yevery.com
海盗音乐网 http://www.yuechen.com/index1.htm
中国音乐在线 http://www.mtvtop.com
音乐视听 http://www.real2000.org
久久音乐 http://www.99music.net
frankmp3 http://www.frankmp3.com
mp3秀 http://www.mp3xu.com
音乐天籁村 http://www.mp3boat.com
163音乐网 http://www.ting163.net/index.php
网易--唱片介绍
http://ent.163.com/new_entertainment/third_dir/010808_85399.html
音乐殿堂 http://www.91music.com
高阳MP3 http://www.gaomp3.net
听者有心 http://www.musicool.com.cn/index.htm
Soyou实达所有 http://idp.soyou.com/MP3/head/
紫龙歌词 http://www.51geci.com
天虎音乐网 http://music.tyfo.com
吉林信息港妙即刻网乐 http://music.jl.cninfo.net
中国音乐库 http://www.5460m.net
音乐的力量 http://music.gzinfo.net
269音乐频道 http://music.269.net
音乐前卫 http://music.yn.cninfo.net
音乐时空 http://www.sinofeng.com/music/
数码网 音乐频道 http://www.yes2.net/music/
网络音乐频道 http://mp3.attin.com/
焦作音乐无限 http://music.jztele.com
汉源音乐频道 http://music.hyinfo.net
Music site http://music.zsnet.com/
100mp3 http://www.100mp3.com/
视听频道 http://music.km169.net/
雅燃音乐天空 http://www.flamesky.com/
中华好歌网 http://www.haoge-china.com/index.html
短歌行 http://www.audio100.com
mp3火力网 http://garden.2118.com.cn/xu_allmp3/
音乐先锋 http://www.5see.com/mp3/
无限音乐网 http://kenfr.topcool.net/main1.html
天空音乐 http://99fun.com/skymusic/musicsky/index.asp
欧美流行风 http://61.139.37.148/music/
韩国音乐网 http://www.koreanll.com
彭彭听吧 http://www.pp-mp3.com
http://www.xuxule.com
http://www.9sky.com
http://www.chinamp3.com
http://www.audio100.com
http://hff.21cn.com:84
http://www.sogua.com
http://www.musiccool.net
http://music.tyfo.com
http://202.96.107.40/music
http://music.21youth.com
http://mp3download.myetang.com
http://www.99music.net
http://ent.sdinfo.net/music
http://music.qu-zhou.com
http://www.cardio.ru/~teehonya/mp3
http://www.mp3boat.com
http://www.tyclub.com
http://www.5566.org/music3-1.htm
http://www.wfinfo.net.cn/music/
http://www.hebnet.net/mp3/lp.htm
http://www.c-mtv.com
http://music.trueice.net/
http://music.zixia.net/
http://www.coolsong.com/bbs/index.asp
ftp://mp3:mp3@feng.d2g.com
http://www.koreanll.com/main.html#
http://www.beethoven.com
http://www.269.net
http://www.snepc.com
中文MP3网站
1.九天音乐 http://www.9sky.com/) [简体]
音乐站就该音乐多多。
2.听吧 http://www.tingbar.com/musichome/sinasearch.asp) [简体]
国内最大曲库,在线试听及网上送歌,流媒体音乐电台。
3.寂寞男孩--全新数字音乐 http://lonelyboy.yeah.net/)[简体]
mp3好站,按歌手和专辑分类,另有歌迷聊天、论坛、点歌区。
4.天籁村 http://tdk.126.com/)[简体]
mp3歌曲下载、歌迷档案、音乐故事,还有动漫音乐、古典音乐等类别。
5.mp3 Finder http://www.finder.com.cn/mp3finder/)[简体]
流行音乐网站,网罗中外流行歌曲和音乐,乐迷不容错过的好站。
6.100mp3 http://www.100mp3.com/)[繁体]
收集各种mp3网站,包括中港台的mp3。
7.中文MP3日报 http://www.sundaily.com/)[繁体]
主要提供港台歌曲的mp3下载。
8.所有MP3 http://idp.soyou.com/MP3/head/)[简体]
MP3无限,所有包揽。
9.5460中华mp3音乐库 http://www.5460m.net/)[简体]
华语mp3下载试听。
10.中国大陆mp3音乐超市 http://www.cdjmp3.com/)[简体]
大陆港台mp3歌曲大全,包括中外流行、摇滚、古典、民族等各种音乐。
11.mp3下载中心 http://mp3s.cnroot.com/)[简体]
mp3下载,mp3导航,mp3搜索引擎,mp3工具,mp3歌词。
12.mp3秀 http://www.mp3xu.com/)[简体]
港台,大陆,欧美mp3,midi,ram。
13.MP3-SKY.com http://www.mp3-sky.com/)[简体]
收录MP3音乐,包括流行,古典,摇滚,电影原声,轻音乐。
14.古典音乐网站《艺声在线MP3》 http://yszxmp3.cn99.com/)[简体]
古典音乐MP3和大量古典吉它曲MP3。
15.中国摇滚mp3站 http://chinarock.163.net/)[简体]
摇滚mp3下载,摇滚乐队,摇滚评论等。
16.MP3音乐空间 http://shiper.126.com/)[简体]
提供几千首中文MP3下载,MP3精品软件,MP3搜索引擎等!
17.Mp3音乐秀 http://mp3show.126.com/)[简体]
音乐下载和歌词下载。
18.吉他秀[Guitar show] http://www.51guitar.com/)[简体]
吉他大师、世界名琴、mp3、效果器、音箱、原创音乐和文章征集。
19.古典音乐网 http://www.classical.net.cn/)[简体]
古典乐新闻、音乐家、名曲介绍、入门、唱片、midi、mp3。
20.乌托邦摇滚 http://maogbl.at.china.com/)[简体]
前卫摇滚资讯、MP3下载、歌词下载、歌手&乐队发展史。
21.伊莎贝拉音乐网 http://my.soyou.net/~gegege/)[简体]
mp3下载,音乐排行榜,在线视听,歌词搜索。
22.汉源音乐频道 http://music.hyinfo.net/)[简体]
大量的 mp3 和 ra 歌曲。
23.赣州音乐天堂 http://music.ganzhou.com/)[简体]
MP3下载库。
24.音乐磁场 http://www.jl.jl.cn/jlweb/music/)[简体]
MP3下载,音乐软件,歌词查询。
25.什么都有—音乐站 http://music.ahbb.net/)[简体]
提供古典、流行、NewAge、摇滚以及电影原声MP3下载。
26.亚洲流行音乐广场 http://www.asiamp3.com/)[繁体]
包含歌曲推介,MP3资讯,工具和教学。
27.海盗音乐网 http://www.hdmusic.net/)[简体]
mp3下载,歌词,CD相片,MTV下载,娱乐资讯。
28.哆来咪--中国器乐曲 http://www.duolaimi.com/classic/duolaimi/my/)[简体]
中国民乐MP3下载基地。
29.天籁阁 http://tlg.ccoo.com/)[简体]
齐全的歌手资料、迅速的娱乐快报、打包的歌词下载、COOL MP3。
30.音乐听厅 http://music.nowok.com/)[简体]
音乐MP3,在线试听。
31.弦音歌语 http://music.21youth.com/)[简体]
歌星档案,排行榜,MIDI,mp4,MP3,mtv,游戏音乐,词曲查询
32.全新音乐栏目——天籁回寰 http://music.iszero.com/)[简体]
MP3和MIDI下载,乐坛新闻和排行榜及音乐播放软件等。
33.网络音乐资源中心 http://www.topmusic.net.cn/)[简体]
提供mp3、rm、vqf格式的歌库、曲库,明星档案。
34.mp3其他女歌手 http://www.only.net.cn/mp3/ow.htm) [简体]
欢迎来 only 网站,本站中文名为 绝无仅有 ! only网 ...
35.女歌手 http://playsite.myrice.com/mp3/female-9.htm)[简体]
36.mp3 http://www1.huali-cn.com/~spiderx/mp3_1.htm)[简体]
香港男歌手 香港女歌手 台湾男歌手 台湾女歌手
37.mp3 http://cdp2331170.home.chinaren.com/mp3/mp3.htm)[简体]
不要看这版内容这么少.其实里边的内容很丰富哦!作为记录着年轻人
梦想与激情的音乐篇章,校园民谣,以真诚与纯洁为标志。
38.电影原声音乐 http://www.redb52.com/musiccg15.asp)[简体]
一个详细介绍电影原声音乐的网站。
39.音乐马前炮 http://music.188.net/)[简体]
MP3下载,歌手资料,新闻,排行,以及网友点播,影视歌曲。
40.水滴音乐 http://drip.cnnb.net/)[简体]
提供英文歌词及查询,欧美乐队情况及娱乐资讯,排行榜,MP3下载。
41.日本娱乐新干线 http://japmusic.yesky.net/)[简体]
介绍关于日本娱乐的方方面面,影视音乐及jpop MP3下载。
42.海外一族,四海一家 http://chinto.isme.net/)[简体]
英文MP3s下载,加拿大华人生活点滴。
43.mp3 jukebox 点唱机 http://mpage.musicpage.com/)[繁体]
点唱站、灵温室、桌布店,主要收录港台、日本的最新流行歌曲。
44.天籁空间 http://61.134.13.16/mp3/omusic/index.php3)
音乐欣赏、原创天地、歌星档案、mp3软硬件、音乐文化、音乐论坛
45.音乐极限 http://www.chinamp3.com/)
中文MP3下载。歌曲排行,歌词下载,专辑碟库、留言点歌。
46.世纪青年mp3音乐站 http://music.21youth.com/)
3000首以上的各类精选mp3和相关音乐评论。
47.飞行网音乐下载 http://media.music.com.tw/download/down.asp)[繁体]
台湾著名音乐站点音乐下载基地。
48.MP3 World-MP3世界 http://www.bseven.com/mp3/)
韩国MP3中国MP3日本、西洋、法国、民族、的士高、影视等MP3。
49.时代音乐天地 http://www.shanghai-window.com/shan...ter/magazine/)
流行音乐的天地。
50.mp3下载中心 http://www.skyhits.com/mp3.htm)
mp3下载,mp3导航,mp3搜索引擎,mp3工具,mp3歌词。
51.mp3搜集网 http://www.88u8.com/mp3/)
最新MP3下载。
52.MP3歌曲经典 http://aimer.home.chinaren.net/)
歌迷的家园,有大量MP3经典歌曲。
53.流行mp3大全 http://www.asia-top.com/click/?account=googoo1)
一千多首大陆、港台MP3歌曲下载,并提供强大的搜索引擎。
54.流行MP3音乐库 http://www.kl.gz.cn/~sunshine/music/)
流行MP3音乐高速下载。
55.Popmp3 http://popmp3.6to23.com/)
Mp3歌曲下载。
56.kump3 http://kump3.myetang.com/)
mp3下载,收听。
57.MP3大放送 http://www.5find.com/index.htm)
MP3音乐下载.
58.mp3在线酷听 http://musicword.51.net/)
MP3下载尽在MP3在线酷听。
59.MP3之恋 http://go3.163.com/~mp3love/index.html)
娱乐新闻、音乐社区、最新MP3音乐下载、音乐排行榜。
60.mp3大世界 http://pmp3.home.sohu.com/)
娱乐新闻.最新mp3下载试听.中文mp3金曲.国外流行mp3。
61.MP3下载站 http://mp3xiu.myetang.com/)
大量MP3下载,在线收听。
62.月歌心曲 http://go4.163.com/~youyueer/)
原创音乐。
63.汉源音乐频道 http://music.hyinfo.net/)
大量的 mp3 和 ra 歌曲。
64.精彩影室 http://jchp.edu.chinaren.com/)
本站提供影视下载和在线播放,电视剧,动画片,经典MP3。
65.海盗音乐网 http://musicol.edu.chinaren.com/index1.htm)
66.娱乐基地之音乐基地 http://www.etbase.net/music/)
流行音乐下载,明星档案,mp3下载。
67.星易资讯网 http://www.starea.com/)
娱乐新闻,MP3下载,音乐欣赏,名星档案,名星靓相,名星聊天室。
英文MP3网站
1.MP3.COM http://www.mp3.com/) [英文]
MP3入门、下载、工具及相关新闻。提供详细分类目录查询歌曲。
2.mp3site http://www.mp3site.com/) [英文]
介绍优秀的mp3网站
3.Mp3 Box http://mp3.box.sk/) [英文]
MP3下载、在线试听、歌词等项,还提供MP3搜索功能
4.Music4free.com http://www.music4free.com/) [英文]
国外优秀mp3网站。
5.dmusic.com http://www.mp3extreme.com/) [英文]
荟萃国外优秀mp3网站、相关软硬件、新闻、mp3搜索引擎。
6.MP3boy http://mp3boy.yeah.net/)[英文]
欧美音乐,MP3,音乐专辑。
7.Best of MP3 http://www.crankpuppy.com/)[英文]
大量mp3下载,提供mp3下载、歌词搜索、CD搜索等。
8.emp3 http://www.emp3dance.com/)[英文]
最新mp3舞曲下载。
9.数码音乐 http://www.cybertropix.com/)[英文]
通过它,你可以找到关于mp3的新闻、软件、网站以及mp3音乐
10.MUSIC.TUCOWS.COM http://tucows.mp3.com.cn/)[英文]
提供大量的MP3下载。
11.MP3搜索(Lycos MP3 Search) http://music.lycos.com/downloads/)[英文]
可按歌名和歌手名字查寻MP3歌曲。
12.马友友(Ma Yo-Yo) http://www.yo-yoma.com/)[英文]
著名大提琴手。
13.电影音乐(FilmMusic) http://www.filmmusic.com/)[英文]
内容包括问题解答,电影作曲家,购买等。
14.电影声线 http://www.filmtracks.com/)[英文]
电影音乐人、新老电影音乐作品等.
15.梦之园电影音乐 http://www.fod-online.com/)[英文]
电影音乐在线出版物.
16.Seasons Greetings.org http://www.seasonsgreetings.org/)[英文]
圣诞老人的传说,传统和现代故事及庆祝圣诞的音乐电影。
posted @
2007-12-02 11:35 MEYE 阅读(2699) |
评论 (1) |
编辑 收藏
标准网址大全:
http://www.21ic.com/
http://www.alldatasheet.net/
posted @
2007-12-02 10:10 MEYE 阅读(1074) |
评论 (3) |
编辑 收藏
[转]http://www.e-gov.org.cn/wangluoanquan/shujuhuifu/200710/76868.html
介绍两个数据恢复软件:TestDisk 和 PhotoRec。其中,TestDisk 主要用来恢复损坏的分区以及拯救无法引导的磁盘;而 PhotoRec 则主要用于恢复损坏的数据文件,包括文档、图片、视频等。
TestDisk 及 PhotoRec 皆支持在 Windows、Linux、Unix、Mac OS 等系统上执行。TestDisk 还支持包括 FAT、NTFS、Ext2、Ext3、ReiserFS、RAID 等在内的广泛的文件系统。而 PhotoRec 也能够在硬盘、光盘、优盘等各种存贮介质上工作。
虽然数据恢复软件可以尽最大可能帮助我们挽回损失,但我们还是应该养成时常备份的习惯。只有真正做到有备无患,才能确保万无一失。
由于错误的使用分区工具而带来的分区丢失,硬盘磁盘分区遭到损坏的情况下,使用叫做「TestDisk」的工具可以复原已损坏的分区。下面就介绍一下如何使用TestDisk急性恢复(注)。
注:可以使用TestDisk进行复原的场合,也就是硬盘HDD上的分区(该分区有原有数据纪录)已经损坏的情形。但是如果损坏之后,重新再次做成了新分区的话,复原的可能性比较小,很困难。
TestDisk可以从http://www.cgsecurity.org/wiki/PhotoRec下在(注)。下载Fedora Core 6 对应的RPM包文件。例如、如果使用GNOME的分区管理软件「GParted」(Gnome Partition Editor)误删除了/dev/hda5分区。
注:Linux下恢复误删除的文件 中介绍了使用「PhotoRec」对误删除的文件进行恢复。
注:TestDisk是恢复分区信息的软件、针对分区表被删除以及MBR(master boot record)被修改的恢复分区信息软件:TestDisk、使用前请先确认。
对于安装和配置请参照Linux下恢复误删除的文件。
以root权限登陆,启动TestDisk。
# testdisk
首先,选择恢复操作中的log文件(testdisk.log)的纪录方式。
[Create]新建
[Append]追加
[No Log]不纪录
选择log文件的记录方式
选择了log文件的记录方式后、显示了处于连接状态的磁盘设备。然后选择要恢复的磁盘分区、选择[Proceed]。在这里选择装有Linux/Windows XP的硬盘HDD「Disk /dev/hda」。
在列出的磁盘设备中,选择要恢复的分区,然后选择磁盘分区的种类。Linux/Windows就选[Intel]。
下示画面中选择[Analyse],对分区进行分析。
显示了当前分区的状态。然后选择[Proceed]、显示分析結果。
分区状态表示
分区结构以绿色文字表示。和分析之前的画面相比、Linux的分区增加了一项,这个就是被误删除了的分区,选择之。
按[P]键,该分区根部的文件和索引被表示出来,如果显示正确的画,分析结果就可以正确的推算。然后用这个方法,对其他的盘符进行操作。
分区的分析结果
按[Enter]键,显示分析结果被反映到磁盘。并且被恢复。
现在的状态,恢复的信息还没有被写到硬盘上,必须选择[Write],才能真正的被写到磁盘上。写操作执行的确认信息显示的时候,按[Y]键确认之。
写操作执行完毕,需要重新启动,按[Enter]键。
最后退出[Quit],TestDisk结束。系统重新启动。
posted @
2007-11-24 14:12 MEYE 阅读(676) |
评论 (0) |
编辑 收藏
软件测试工具网址大全
压力测试工具集工具相关网址
LoadRunner http://www.mercuryinteractive.com/products/loadrunner/
SilkPerformer http://www.segue.com/products/lo ... e-testing/index.asp
QALoad http://www.compuware.com/products/qacenter/qaload.htm
WebLoad
OpenSTA开源
Jmeter开源
自动测试工具集工具相关网址
WinRunner http://www.mercuryinteractive.com/products/winrunner/
SilkTest http://www.segue.com/products/fu ... esting/silktest.asp
QARun http://www.compuware.com/products/qacenter/qarun.htm
SAFS http://safsdev.sourceforge.net/Default.htm
Bug追踪系统工具相关网址
JIRA http://www.atlassian.com/software/jira/
Bugzilla http://www.bugzilla.org
TestDirector http://www.mercuryinteractive.com/products/testdirector/
GNATS http://www.gnu.org/software/gnats/
TestTrackPro http://www.seapine.com/ttpro.html
类型 名称 公司 网址
测试设计工具
ALLPAIRS http://satisfice.com/
Caliber-RBT http://www.tbi.com
Caliber-RM http://www.tbi.com
DARTT http://home.t-online.de/home/bsse.info/
Datatect http://www.datatect.com
DGL http://www.csee.usf.edu/~maurer/
McCabe Test http://www.mccabe.com
McCabe TestCompress http://www.mccabe.com
Multi http://www.testing.com/
Panorama C/C++ http://www.softwareautomation.com
Reactis Tester http://www.reactive-systems.com
TDGEN http://www.soft.com/Products/index.html
T-VEC Test Generation System http://www.t-vec.com
GUI测试驱动器 Android http://www.smith-house.org/open.html
Atesto Functional Testing Service "http://www.atesto.com/ "
AutoTester for Windows http://www.autotester.com
AutoTester for OS/2 http://www.autotester.com
CAPBAK http://www.soft.com/Products/index.html
Certify http://www.worksoft.com/
CitraTest http://www.tevron.com
e-Monitor http://www.empirix.com/
e-Tester http://www.empirix.com/
eValid http://www.e-valid.com/
imbus GUI Test Case Library http://www.imbus.de
QARunTM http://www.compuware.com/qacenter
Panorama-2 "http://www.softwareautomation.com "
QC/Replay http://www.centerline.com
QES/EZ for GUI http://www.qestest.com
Monitor Master http://www.argogroup.com
SilkTest http://www.segue.com
Smalltalk Test Mentor http://www.silvermark.com
Test Now http://www.stlabs.com/
TestQuest Pro Test Automation System http://www.testquest.com
TestRunner http://www.qronus.com/
WinRunner Mercury Interactive http://www.merc-int.com
xrc - X Remote Control http://www.absol.com/
Xrunner http://www.merc-int.com
负荷和性能工具 ANTS - Advanced .NET Testing System http://www.red-gate.com/
Atesto Automated Load Test http://www.atesto.com/
AutoController http://www.autotester.com
AutoController with Virtual DirectTest http://www.autotester.com
Benchmark FactoryTM http://www.quest.com
Capacity Calibration http://www.capcal.com
Chariot? http://www.ganymedesoftware.com
CYRANO ServerPack http://www.cyrano.com
e-Load http://www.empirix.com/
FORECAST http://www.facilita.co.uk
ITF - Internetworking Test Facility http://www.acomtech.com
Load http://www.pushtotest.com
Load Runner Product Family http://www.merc-int.com
Microsoft Web Application Stress Tool (WAS) http://webtool.rte.microsoft.com/
NetPressure http://www.syntheticnets.com
PegasusTM http://www.ganymedesoftware.com
Portent http://www.loadtesting.com
preVue-ASCII http://www.rational.com/products/prevue/
preVue-X http://www.rational.com/products/prevue/
"PureLoad" http://www.minq.se
QALoadTM http://www.compuware.com
Rational Suite PerformanceStudio http://www.rational.com/products/pstudio/
"Rational SiteLoad" http://www.rational.com/products/siteload/
RemoteCog Product Family http://www.fiveninesolutions.com
Scapa StressTest for Citrix MetaFrame http://www.scapatech.com
SilkPerformer http://www.segue.com/
Teleprocessing Network Simulator http://www.networking.ibm.com/tns/tnsprod htm
WebLoad 3.0 http://www.radview.com
Web Roller http://webapplicationstesting.com
Webserver Stress Tool http://www.paessler.com
WebSpray http://www.redhillnetworks.com
非GUI测试驱动器
"AdaTEST" http://www.qcsltd.com
ANVL http://www.midnight.com/
AutoAdviser http://www.autotester.com
AutoTester Client/Server for use with SAP R/3 http://www.autotester.com
Cantata http://www.qcsltd.com
"CONVEX Integrated Test Environment (CITE)" http://www.cirr.com/
CTA++ http://www.testwell.fi
CTB http://www.testwell.fi
ITF - Internetworking Test Facility http://www.acomtech.com/
OTF - An Object Testing Framework "http://www.mcgsoft.com/ "
QADirector? http://www.compuware.com/qacenter
"QCIT" http://www.qistest.com
QES/Architect http://www.qestest.com
QES/EZ http://www.qestest.com
QMTest http://www.codesourcery.com/
SilkPilot http://www.segue.com
SMARTS http://www.soft.com/Products/index.html
SDTF - SNA Development Test Facility http://www.acomtech.com
TALC2000 http://www.talc2000.com
TBGEN http://www.testwell.fi
TEO http://www.gako.fr
Test Manager http://www.launchsoftware.com
Test Mentor - Java Edition http://www.javatesting.com
Test Library Manager http://www.autotester.com
"Test Station" http://www.autotester.com
TestWorks http://www.soft.com/Products/index.html
VectorCAST http://www.vectors.com
VersaTest http://www.softsell.com
测试实现工具 Access for DB2 http://www.princetonsoftech.com/
Aprobe http://www.ocsystems.com
Aqtest http://www.automatedqa.com/
BoundsChecker compuware http://www.numega.com/
C++Test http://www.parasoft.com
DateWise FileCompare http://www.datewise.com/mt
dmalloc http://www.dmalloc.com/
EXDIFF http://www.soft.com/Products/index.html
"fakesmtpd" http://www.jera.com/
"FREstimate" http://www.softrel.com/
HeapAgent http://www.microquill.com
InCtrl5 http://www.zdnet.com/downloads/stories/info/0,77424,.html
JSUnit http://www.edwardh.com/jsunit/
Junit http://www.junit.org/
MDBDiff http://jupiter.drw.net/matpie/PB ... s/retired/MDBDiff.h tml
Move for DB2 http://www.princetonsoftech.com/
mpatrol http://www.cbmamiga.demon.co.uk/mpatrol/
"ObjectTester" http://www.obsoft.com
Inuse http://www.parasoft.com
Rational Purify http://www.rational.com/products/purify_unix/index.jtmpl
Rational Test RealTime http://www.rational.com
SilkRealizer http://www.segue.com
WhenToStop http://www.softrel.com/
ZeroFault http://www.tkg.com
测试评估工具
AdaTEST95 http://www.qcsltd.com
Aonix Validator/Req http://www.aonix.com/
C-Cover http://www.bullseye.com
Cantata++ http://www.qcsltd.com
CodeTEST http://www.amc.com
CTC++ http://www.testwell.fi
GlassJARToolkit http://glassjartoolkit.com/gjtk.html
"Hindsight/TCA"http://www.integrisoft.com
Hindsight/TPA http://www.integrisoft.com
"Insure++"http://www.parasoft.com
"Java Test Coverage" http://www.semdesigns.com/Products/TestCoverage/index.html
LDRA Testbed http://www.ldra.com
"LOGISCOPE toolset" http://www.telelogic.com/
ObjectCoverage http://www.obsoft.com
Panorama C/C++ "http://www.softwareautomation.com "
Rational PureCoverage http://www.rational.com/products/purecoverage/index. jtmpl
"TCMON" http://www.testwell.fi
TCA "http://www.parasoft.com "
TCAT C/C++ http://www.soft.com/Products/index.html
TCAT for Java http://www.soft.com/Products/index.html
TCAT-PATH http://www.soft.com/Products/index.html
T-SCOPE http://www.soft.com/Products/index.html
TestWorks/Coverage http://www.soft.com/Products/index.html
静态分析工具
AccVerify SE for FrontPage http://www.hisoftware.com/msacc/
Aivosto Project Analyzer http://www.aivosto.com/vb.html
ASSENT http://www.tcs.com
ccount "http://www.cs.umd.edu/users/cml/resources/cmetrics/ "
"Cleanscape lint-Plus" http://www.cleanscape.net/stdprod/lplus/index.html
ClearMaker http://www.balthazar.hu
"CMT++" http://www.testwell.fi
CodeCompanion http://www.jenssoft.com
CodeSurfer http://www.grammatech.com
"Dependency Walker" http://www.dependencywalker.com/
floppy/fflow http://netlib2.cs.utk.edu/floppy/
ftnchek http://www.dsm.fordham.edu/~ftnchek
Hindsight/SQA http://www.integrisoft.com
Krakatau http://www.powersoftware.com/
McCabe QA http://www.mccabe.com
METRIC http://www.soft.com/Products/index.html
ObjectDetail http://www.obsoft.com
CodeWizard http://www.parasoft.com
Jtest http://www.parasoft.com
PC-lint/FlexeLint http://www.gimpel.com/
PC-Metric http://www.molalla.net/~setlabs
PolySpace Verifier http://www.polyspace.com
Plum Hall SQS http://www.plumhall.com
QA C http://www.prqa.co.uk
QA C++ http://www.prqa.co.uk
"QA Fortran" http://www.prqa.co.uk
"QStudio Java" http://www.qa-systems.com
Safer C Toolset http://www.oakcomp.co.uk/SoftwareProducts.html
SofAudit http://www.soring.hu/index.html
STATIC http://www.soft.com/Products/index.html
TestBed http://www.easternsystems.com
TestWorks/Advisor http://www.soft.com/Products/index.html
缺陷跟踪工具
1CR http://www.plus-one.com/+1CR_fact_sheet.html
Aardvark http://www.red-gate.com/
AdminiTrack http://www.adminitrack.com
Alcea Fast BugTrack http://www.alceatech.com/
AllChange 2000 http://www.intasoft.co.uk/intasoft/
BugAware http://www.bugaware.com
"Bugbase 2000" http://www.threerock.com
"Bugcentral.com" http://www.bugcentral.com/
BugCollector Pro http://www.nesbitt.com/
Bug/Defect Tracking Expert http://www.bug-defect-tracking-expert.com/
"Buggit" http://www.pb-sys.com/
Buggy http://www.novosys.de/Buggy/Buggy.html
"Bugzero" http://www.websina.com/bugzero/
Bugzilla http://www.mozilla.org/projects/bugzilla/
"Census" http://www.metaquest.com/
"ClearQuest" http://www.rational.com/products/clearquest/
CustomerFirst http://www.custfirst.com/products.html
Debian Bug Tracking System http://www.chiark.greenend.org.uk/~ian/debbugs/
Defect Tracker (New Fire) http://www.newfire.com/
Defect Tracker (Pragmatic) http://www.Pragmaticsw.com/Pragmatic/DefectTrac ker.asp
Defect Tracking System (DTS) http://www.open.com.au/dts/
"defectX" http://www.defectx.com/
DevTrack http://www.techexcel.com/
"d-Tracker" http://www.empirix.com/
elementool http://elementool.com/
"ExtraView" http://www.extraview.com/extraview_home.html
FogBUGZ http://www.fogcreek.com/FogBUGZ/
JitterBug http://samba.anu.edu.au/cgi-bin/jitterbug
Keystone Problem Tracking System http://www.stonekeep.com/
NeumaPT http://www.neuma.com/
SWBTracker http://www.softwarewithbrains.com/swbtrack.htm
"Squish" http://www.squishlist.com
T-Plan Incident Manager http://www.t-plan.co.uk
TeamTrack http://www.teamshare.com
TeamTrack Workgroup http://www.teamshare.com
Team Tracker http://www.hstech.com.au/TeamTracker/
TestTrack http://www.seapine.com
"TrackWeb Defects" http://www.soffront.com/
Trackgear http://www.logigear.com/
TrackRecord http://www.numega.com/devcenter/tr.shtml
"Trackwise" http://www.sparta-systems.com/
posted @
2007-11-21 20:21 MEYE 阅读(926) |
评论 (0) |
编辑 收藏
一些非常有用的内核网站!
posted @
2007-10-20 18:19 MEYE 阅读(734) |
评论 (0) |
编辑 收藏
Linux下的串口编程(ZT)
Linux下的串口编程(ZT)
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。
串口简介
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA
RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、
调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换
接口技术标准"该标准规定采用一个 25 个脚的 DB25
连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。传输距离在码元畸变小于 4% 的情况下,传输电缆长度应为 50
英尺。
Linux
操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍,如果要非常深入了解,建议看看本文所参考的《Serial Programming Guide for POSIX Operating Systems》
计算机串口的引脚说明
序号 |
信号名称 |
符号 |
流向 |
功能 |
2 |
发送数据 |
TXD |
DTE→DCE |
DTE发送串行数据 |
3 |
接收数据 |
RXD |
DTE←DCE |
DTE 接收串行数据 |
4 |
请求发送 |
RTS |
DTE→DCE |
DTE 请求 DCE 将线路切换到发送方式 |
5 |
允许发送 |
CTS |
DTE←DCE |
DCE 告诉 DTE 线路已接通可以发送数据 |
6 |
数据设备准备好 |
DSR |
DTE←DCE |
DCE 准备好 |
7 |
信号地 |
|
|
信号公共地 |
8 |
载波检测 |
DCD |
DTE←DCE |
表示 DCE 接收到远程载波 |
20 |
数据终端准备好 |
DTR |
DTE→DCE |
DTE 准备好 |
22 |
振铃指示 |
RI |
DTE←DCE |
表示 DCE 与线路接通,出现振铃 |
串口操作
串口操作需要的头文件
#i nclude <stdio.h> /*标准输入输出定义*/
#i nclude <stdlib.h> /*标准函数库定义*/
#i nclude <unistd.h> /*Unix 标准函数定义*/
#i nclude <sys/types.h>
#i nclude <sys/stat.h>
#i nclude <fcntl.h> /*文件控制定义*/
#i nclude <termios.h> /*PPSIX 终端控制定义*/
#i nclude <errno.h> /*错误号定义*/
|
打开串口
在 Linux 下串口文件是位于 /dev 下的
串口一 为 /dev/ttyS0
串口二 为 /dev/ttyS1
打开串口是通过使用标准的文件打开函数操作:
int fd;
/*以读写方式打开串口*/
fd = open( "/dev/ttyS0", O_RDWR);
if (-1 == fd){
/* 不能打开串口一*/
perror(" 提示错误!");
}
|
设置串口
最基本的设置串口包括波特率设置,效验位和停止位设置。
串口的设置主要是设置 struct termios 结构体的各成员值。
struct termio
{ unsigned short c_iflag; /* 输入模式标志 */
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志*/
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
|
设置这个结构体很复杂,我这里就只说说常见的一些设置:
波特率设置
下面是修改波特率的代码:
struct termios Opt;
tcgetattr(fd, &Opt);
cfsetispeed(&Opt,B19200); /*设置为19200Bps*/
cfsetospeed(&Opt,B19200);
tcsetattr(fd,TCANOW,&Opt);
|
设置波特率的例子函数:
/**
*@brief 设置串口通信速率
*@param fd 类型 int 打开串口的文件句柄
*@param speed 类型 int 串口速度
*@return void
*/
int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300,
B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400,
19200, 9600, 4800, 2400, 1200, 300, };
void set_speed(int fd, int speed){
int i;
int status;
struct termios Opt;
tcgetattr(fd, &Opt);
for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) {
if (speed == name_arr) {
tcflush(fd, TCIOFLUSH);
cfsetispeed(&Opt, speed_arr);
cfsetospeed(&Opt, speed_arr);
status = tcsetattr(fd1, TCSANOW, &Opt);
if (status != 0) {
perror("tcsetattr fd1");
return;
}
tcflush(fd,TCIOFLUSH);
}
}
}
|
效验位和停止位的设置:
无效验 |
8位 |
Option.c_cflag &= ~PARENB;
Option.c_cflag &= ~CSTOPB;
Option.c_cflag &= ~CSIZE;
Option.c_cflag |= ~CS8; |
奇效验(Odd) |
7位 |
Option.c_cflag |= ~PARENB;
Option.c_cflag &= ~PARODD;
Option.c_cflag &= ~CSTOPB;
Option.c_cflag &= ~CSIZE;
Option.c_cflag |= ~CS7; |
偶效验(Even) |
7位 |
Option.c_cflag &= ~PARENB;
Option.c_cflag |= ~PARODD;
Option.c_cflag &= ~CSTOPB;
Option.c_cflag &= ~CSIZE;
Option.c_cflag |= ~CS7; |
Space效验 |
7位 |
Option.c_cflag &= ~PARENB;
Option.c_cflag &= ~CSTOPB;
Option.c_cflag &= &~CSIZE;
Option.c_cflag |= CS8; |
设置效验的函数:
/**
*@brief 设置串口数据位,停止位和效验位
*@param fd 类型 int 打开的串口文件句柄
*@param databits 类型 int 数据位 取值 为 7 或者8
*@param stopbits 类型 int 停止位 取值为 1 或者2
*@param parity 类型 int 效验类型 取值为N,E,O,,S
*/
int set_Parity(int fd,int databits,int stopbits,int parity)
{
struct termios options;
if ( tcgetattr( fd,&options) != 0) {
perror("SetupSerial 1");
return(FALSE);
}
options.c_cflag &= ~CSIZE;
switch (databits) /*设置数据位数*/
{
case 7:
options.c_cflag |= CS7;
break;
case 8:
options.c_cflag |= CS8;
break;
default:
fprintf(stderr,"Unsupported data sizen"); return (FALSE);
}
switch (parity)
{
case 'n':
case 'N':
options.c_cflag &= ~PARENB; /* Clear parity enable */
options.c_iflag &= ~INPCK; /* Enable parity checking */
break;
case 'o':
case 'O':
options.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/
options.c_iflag |= INPCK; /* Disnable parity checking */
break;
case 'e':
case 'E':
options.c_cflag |= PARENB; /* Enable parity */
options.c_cflag &= ~PARODD; /* 转换为偶效验*/
options.c_iflag |= INPCK; /* Disnable parity checking */
break;
case 'S':
case 's': /*as no parity*/
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;break;
default:
fprintf(stderr,"Unsupported parityn");
return (FALSE);
}
/* 设置停止位*/
switch (stopbits)
{
case 1:
options.c_cflag &= ~CSTOPB;
break;
case 2:
options.c_cflag |= CSTOPB;
break;
default:
fprintf(stderr,"Unsupported stop bitsn");
return (FALSE);
}
/* Set input parity option */
if (parity != 'n')
options.c_iflag |= INPCK;
tcflush(fd,TCIFLUSH);
options.c_cc[VTIME] = 150; /* 设置超时15 seconds*/
options.c_cc[VMIN] = 0; /* Update the options and do it NOW */
if (tcsetattr(fd,TCSANOW,&options) != 0)
{
perror("SetupSerial 3");
return (FALSE);
}
return (TRUE);
}
|
需要注意的是:
如果不是开发终端之类的,只是串口传输数据,而不需要串口来处理,那么使用原始模式(Raw Mode)方式来通讯,设置方式如下:
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/
options.c_oflag &= ~OPOST; /*Output*/
读写串口
设置好串口之后,读写串口就很容易了,把串口当作文件读写就是。
- 发送数据
char buffer[1024];int Length;int nByte;nByte = write(fd, buffer ,Length)
|
- 读取串口数据 使用文件操作read函数读取,如果设置为原始模式(Raw Mode)传输数据,那么read函数返回的字符数是实际串口收到的字符数。
可以使用操作文件的函数来实现异步读取,如fcntl,或者select等来操作。
char buff[1024];int Len;int readByte = read(fd,buff,Len);
|
关闭串口
关闭串口就是关闭文件。
例子
下面是一个简单的读取串口数据的例子,使用了上面定义的一些函数和头文件
/**********************************************************************代码说明:使用串口二测试的,发送的数据是字符,
但是没有发送字符串结束符号,所以接收到后,后面加上了结束符号。我测试使用的是单片机发送数据到第二个串口,测试通过。
**********************************************************************/
#define FALSE -1
#define TRUE 0
/*********************************************************************/
int OpenDev(char *Dev)
{
int fd = open( Dev, O_RDWR ); //| O_NOCTTY | O_NDELAY
if (-1 == fd)
{
perror("Can't Open Serial Port");
return -1;
}
else
return fd;
}
int main(int argc, char **argv){
int fd;
int nread;
char buff[512];
char *dev = "/dev/ttyS1"; //串口二
fd = OpenDev(dev);
set_speed(fd,19200);
if (set_Parity(fd,8,1,'N') == FALSE) {
printf("Set Parity Errorn");
exit (0);
}
while (1) //循环读取数据
{
while((nread = read(fd, buff, 512))>0)
{
printf("nLen %dn",nread);
buff[nread+1] = '';
printf( "n%s", buff);
}
}
//close(fd);
// exit (0);
}
|
参考资料
posted @
2007-10-20 18:14 MEYE 阅读(527) |
评论 (0) |
编辑 收藏
嵌入式开发网站集锦!
国内站点:
电子设计信息网,尽管是个业界新秀,但潜力无量!这里能带给你无限精彩和希望!
http://www.edires.net/
华恒公司的主页,里面有很多的相关资料,有待大家去发现
http://www.hhcn.com/chinese/embedlinux-res.html
SkyEye嵌入式硬件仿真项目
www.skyeye.org
http://gro.clinux.org/projects/skyeye/
公社的SkyEye项目专栏
http://www.linuxfans.org/nuke/modul...=viewforum&f=58
Pday水清木华,一个国内看嵌入式新闻的好地方!
http://www.pday.com.cn/
中国单片机公共实验室
http://www.bol-system.com/
中国Linux论坛的嵌入式版,有很多开发板原理图的资料
http://openarm.linuxforum.net/
嵌入开发网
http://www.embed.com.cn/
微芯力科技
http://www.winsilicon.com
驱动开发网之嵌入式版块,挺综合的一个网站
http://www.driverdevelop.com/index.php
国外站点
Linux设备网站,由Rick Lehrbaum创建和维护,是一个嵌入式Linux入门网站,其中包含嵌入式Linux行业的每日新闻、完整系列的快速参考指南、由重要开发者撰写的大量文章,还包括一个交互论坛。
http://www.linuxdevices.com/
下载嵌入式Linux交叉编译工具链的好地方——SnapGear Embedded Linux Distribution Home Page
http://www.snapgear.org/snapgear/index.html
http://www.uclinux.org/pub/uClinux/...lf-tools/gcc-3/
嵌入式Linux联盟(ELC),一个非盈利性的厂商中立的同业工会,其目标是在整个嵌入式、应用和设备市场中发展和推广Linux。
www.embedded-linux.org
Beyond Logic公司主页,提供了许多嵌入式Linux系统开发的资料。
http://www.beyondlogic.org
嵌入式Linux期刊(ELJ,Embedded Linux Journal),主要关注Linux和其他开源软件在嵌入式系统中的应用。 其中有很多业界领导者为ELJ撰写文章。
embedded.linuxjournal.com
有几本写嵌入式Linux系统的书
http://www.embeddedlogic.com/ELSweb/booklinks.html
有关PowerPC体系的嵌入式
www.mvista.com
www.denx.de/e/index1.php
IXP4XX Open Source Developers Guide
http://ixp4xx-osdg.sourceforge.net/
uClinux/ARM项目
http://adam.kaist.ac.kr/~hschoe/notice.html
个人主页
一个业余爱好者代礼周的个人主页,都是实践出来的
http://www.lomx.net/index.htm
D_J嵌入式个人主页,有很多资料!
http://staff.ustc.edu.cn/~wangzhuo/index.html
renbagshoes的个人主页,有些资料可能你会用的到!
http://timity.nease.net
嵌入式Linux操作系统
小型化的嵌入式Linux版本
uClinux —— 在没有 MMU 的系统上运行的 Linux。目前支持 Motorola 68K、MCF5206 和MCF5207 ColdFire 微处理器。
http://www.uclinux.org/index.html
Etlinux —— 设计用于在小型工业计算机,尤其是 PC/104 模块上运行的 Linux 的完全分发版
http://www.prosa.it/etlinux/index.html
Tiny Linux ── 可以运行在 386 上的 Linux 分发版。
http://tiny.seul.org/en/
ThinLinux ── 面向专用的照相机服务器、X-10 控制器、MP3 播放器和其它类似的嵌入式应用的最小化的 Linux 分发版。
www.thinlinux.org
LRP(Linux Route Project)
http://www.linuxrouter.org
Peeweelinux一个小的嵌入式Linux发行版
http://freshmeat.net/projects/peeweelinux
具有实时扩展功能的嵌入式Linux版本
RT-Linux主页
http://www.fsmlabs.com
http://www.rtlinux.com
RTAI
http://www.rtai.org
嵌入式GUI
Microwindows
由Century Software的CEO Greg
Haerr主持开发的一个公开源码(LGPL)的项目。Microwindows致力于为一些小型设备和平台提供现代图形窗口环境。
Microwindows支持许多硬件平台,移植性很强。Microwindows的主要目的之一便是运行在嵌入式Linux上,并且提供了基于
Win32/X的两套API接口。
http://www.microwindows.org
http://microwindows.org
MiniGUI
由原清华大学教师魏永明先生开发,是中国人做的得较好的自由软件之一。MiniGUI
是一种面向嵌入式系统或者实时系统的公开源码(LGPL)的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有POSIX
线程支持的POSIX兼容系统上。
http://www.minigui.org
飞漫软件的MiniGUI项目
http://www.minigui.com/company/cindex.shtml
Qt/Embedded
是著名的QT库开发商Trolltech正在进行的面向嵌入式系统的QT版本。Qt/Embedded对于各种硬件接口到
GUI工具包提供了完整的图形栈。Qt/Embedded的API同Qt/X11和Qt/Windows的相同,但它并不是基于X11库的。
Qt/Embedded是公开源码(LGPL)项目。
http://www.trolltech.com
OpenGUI基于一个用汇编实现的x86图形内核,提供了一个快速的、32位的、高层的C/C++图形接口。OpenGUI也是一个公开源码(LGPL)项目。OpenGUI提供了二维绘图原语,消息驱动的API和BMP文件格式支持。
http://www.tutok.sk/fastgl
PicoGUI
是一个可以工作在包括手持式设备等各种硬件上的小型的、可移植的、基于客户/服务器结构的GUI。同X
Window系统一样,它具有客户—服务器结构的灵活性,但又不同于X
Window系统,它将字体、BMP文件、控件以及一些应用程序所需要的其它的一些资源直接集成在服务器。虽然减少了系统的灵活性,但在速度上有了很大的
提高,并且减小了程序大小。
http://picogui.org
Tiny-X是一个为嵌入式系统而开发的紧缩型的X Window服务器。它由SuSE赞助,由XFree86的核心成员Keith Packard开发。Tiny-X的目标是可以在小内存或几乎无内存的情况下良好运行。
http://www.pps.jussieu.fr/~jch/software/kdrive.html
PIXIL提供嵌入式在高级因特网中应用程序的应用。它虽然是为商业化准备的,但它提供GPL协议下的版本,区别是没有技术支持。
http://www.pixil.org
NxZilla - Mozilla on NanoX
http://nxzilla.sourceforge.net
Simple
DirectMedia Layer is a cross-platform multimedia library designed to
provide low level access to audio, keyboard, mouse, joystick, 3D
hardware via OpenGL, and 2D video framebuffer. It is used by MPEG
playback software, emulators, and many popular games, including the
award winning Linux port of "Civilization: Call To Power."
http://www.libsdl.org/index.php
GtkFB: GTK+ for the Linux Framebuffer
http://www.linuxdevices.com/articles/AT9024868021.html
嵌入式Linux与Java
Java 2 Micro Edition(J2ME官方站点)
http://www.javasoft.com/j2me/
waba为小设备提供一个编程平台。它被定义为一种语言,一个虚拟机,一个类文件格式以及功能类的设置。
http://wabasoft.com/products.shtml
Kaffe
is a clean room implementation of the Java virtual machine, plus the
associated class libraries needed to provide a Java runtime
environment. The Kaffe virtual machine is free software, licensed under
the terms of the GNU General Public License.Kaffe is a great choice as
a base for virtual machine education and/or research, or if you need a
virtual machine as an integral component of an open source or free
software Java distribution.
http://www.kaffe.org
Wonka(一个java虚拟机,超小)
http://www.acunia.com/wonka
嵌入式综合性网站
http://www.eg3.com (英文)
丰富的产品介绍、丰富的链接(嵌入式领域)。
http://altair.ihep.su/~kulemzin/index.html (英文)
为嵌入式开发人员提供大量的信息资源。
http://www.embedded-directory.com (英文)
嵌入式产品、工具介绍,包括硬件、软件、开发工具、开发服务商、测试设备、单板、处理器、信号处理器、分析仪等。
http://www.siliconpenguin.com (英文)
嵌入式Linux资源网站
http://cs-www.bu.edu/pub/ieee-rts/Home.html (英文)
IEEE计算机协会实时系统技术分会主页,提供该组织研究文档、实时系统研究组织名录以及书刊、杂志、产品的链接。
http://www.es-mag.com (英文)
欧洲关于嵌入式设计的杂志《EmbeddedSystems》网站
http://www.esofta.com (英文)
按处理器提供嵌入式产品、工具索引介绍。
奔微实时操作系统--KarlOS微内核
KarlOS 是一种小型且可靠的实时内核,特别是针对嵌入式系统而设计。内核自身能被非常灵活地修改到任一平台,因为它用于硬件抽象层(HAL)来隐藏任一硬件的特定功能,以至于可以协调内核的功能。同时KarlOS象一些传统的内核,用于平台抽象层(PAL)技术。
http://www.embeddedtechnology.com (英文)
包含大量的嵌入式产品、开发工具、产品提供商介绍。
http://www.realtime-info.com (英文)
实时系统综合性信息网站,《Real-Time Magazine》杂志主办者。提供实时操作系统及其它相关产品购买指导,实时技术研究组织机构介绍,业界新闻和重要活动消息发布,《Real-Time Magazine》杂志网上介绍。
http://www.electronic-forecast.com (英文)
提供嵌入式工业市场、产品研究信息,向用户提供产品购买指导。
http://www.primenet.com/~magpub/ (英文)
实时系统杂志网站,内容广泛。
http://www.ifi.unizh.ch/groups/ailab/links/embedded.html (英文)
提供大量的嵌入和实时系统链接资源。
http://www.forthinc.demon.co.uk/info/links/index.htm (英文)
提供丰富的嵌入式开发链接。
http://www.embedded-systems-messe.de (英文)
嵌入式产品展览会Internet发布网站。
http://www.embeddedinternet.com (英文)
嵌入式产品展览Internet发布。
Windows CE下载区
微软最新Windows CE.Net 4.1下载试用。
http://www.embedded.com (英文)
美国一家关于嵌入式系统的综合性网站,《EMBEDDED SYSTEMS》杂志主办者。提供嵌入式产品和工具购买指导,嵌入式产品Demo下载,业界新闻及各类活动报道,包含大量的资源链接和嵌入式开发文章,以及丰富的业界广告。
嵌入式Linux 嵌入式LINUX硬件板卡供应商
嵌入式LINUX硬件板卡供应商嵌入式LINUX开发套件供应商
嵌入实时操作系统
http://linux-embedded.com/links.php3 (英文)
提供嵌入式Linux链接
http://www.cs.umd.edu/~fwmiller/etc/realtime/code.html (英文)
实时软件概要
嵌入论坛 白云黄鹤站
白云黄鹤站嵌入版,国内较热闹的嵌入开发论坛,很值得拜访
科大瀚海风云嵌入式论坛
中国科技大学嵌入式论坛
星运网络-----电子工程师论坛
电子相关方面论坛,目前内容较少
民间团体 嵌入式Linux
主要是关于嵌入式Linux的内容
北京 Linux 俱乐部
主要是关于linux的内容
清华AKA
主要是关于linux的内容,有一些嵌入式系统的介绍
操作系统开发者
主要是关于linux的内容
链接资源 可编程逻辑器件网站
可编程逻辑器件网站致力于PLD/FPGA及VHDL技术在中国的推广。
电子网站之家
各地各类电子网站!电子网站大全!
IPANEL 嵌入式浏览器网站
详细介绍IPANEL嵌入式浏览器性能指标,用途等
科研团体 中国单片机公共实验室
内容主要集中在8位单片机,有一些值得一看的资料
中科院计算所RTOS主页
嵌入式系统软件研究组的主页,内容不多,但值得一看
开发工具
http://www.idiom.com/free-compilers/ (英文)
免费编译器目录
http://www.delorie.com/gnu/docs/gcc/gcc_44.html (英文)
介绍用GNU CC构造交叉编译器
http://www.gnu.org (英文)
GNU 自由软件组织
个人主页 iMCU--网络单片机
8月20日,全面改版,新版正式运行。目前尚有部分功能未完成。永久域名:
http://imcu.126.com
电子网站大全
电子网站大全
开放的ColdFire网站 (英文)
完全开放原码,电路图的个人ColdFire网站。包括Free的TCPIP原码,uClinux和uCOS操作系统等等
嵌入式系统及器件论坛
内容少了点
51单片机世界
网站内容与网站名称描述相同,首页链接了大部分内容
汉东单片机实验室
关于单片机的个人网站中,是目前内容较丰富的一个
嵌入式RTOS
内容主要集中在嵌入式实时操作系统
单片机家园
一个单片机方面的个人网站。
嵌入式Linux个人网站
内容较少,仅一些文章和资源推荐!
电子工程师园地
有一些单片机和处理器的内容,主要是8051系列和X86系列,嵌入领域内容不多,内容有点杂
嵌入系统
主要内容包括MCS51\96系列和X86系列,BIOS的网络资源,简单的实时操作系统介绍,还有部分开发人员联合开发的实时操作系统介绍
电子工程师
内容主要集中在C51系列单片机
美国一位大学副教授的个人主页 (英文)
关于嵌入式处理器方面的个人工作项目介绍,有很多源码。
单片机 电子世纪
电子基础 mcu技术 mcu论坛 软件下载 数据手册 帮你开发 mcu解密 程序设计 校友挚友 招聘&人才 电子英语
单片机技术网
介绍单片机技术,开发和应用的专业网站,有众多应用文章,电子网站联接,产品项目介绍和部分产品网上销售等。内容包括单片机,工业控制,仪器仪表,信息家电,IC卡应用,防盗监控等
处理器类
http://www.bdti.com (英文)
提供大量DSP处理器信息。
http://www.mdronline.com/events/epf99/ (英文)
嵌入式处理器论坛。
产品信息 闻亭公司DSP产品
主要是dsp仿真器。
奔微实时操作系统--KarlOS微内核
KarlOS是一种小型且可靠的实时内核,特别是针对嵌入式系统而设计。内核自身能被非常灵活地修改到任一平台,因为它用于硬件抽象层(HAL)来隐藏任一硬件的特定功能,以至于可以协调内核的功能。同时KarlOS象一些传统的内核,用于平台抽象层(PAL)技术。
北京灵思信息系统有限公司
定位于嵌入式linux技术服务和提供解决方案的公司
广州中杰嵌入式计算平台
提供基于嵌入式硬件平台的产品级到系统级的完整解决方案,以满足用户嵌入式应用需求。
测试工具
http://www.rstcorp.com/marick/faqs/tools.htm (英文)
分类介绍各种测试工具产品。
http://www.stqe.net (英文)
软件测试资源网站。
http://www.testingstuff.com (英文)
一个介绍了大量测试工具的个人网站。
http://www.methods-tools.com/tools/frames_testing.html (英文)
提供大量的测试工具列表,包含简介与链接。
1. Building Embedded Linux System(英文)
http://oss.lzu.edu.cn/modules/wfdownloads/visit.php?cid=6&lid=87
2. 构建嵌入式Linux系统(中文)
http://oss.lzu.edu.cn/modules/wfdownloads/visit.php?cid=6&lid=51
转自:
http://blog.chinaunix.net/u/21948/showart_354391.html
一、门户网站
1 ChinaUnix
网址:
http://www.chinaunix.net
描述: C版块和shell版块很不错
C/C++论坛:
http://bbs.chinaunix.net/forumdisplay.php?fid=23
shell论坛:
http://bbs.chinaunix.net/forumdisplay.php?fid=24
man文档:
http://man.chinaunix.net
2 中国Linux论坛
网址:
http://www.linuxforum.net/
描述: 嵌入式Linux技术提高
Linux嵌入技术:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=embedded
Linux内核技术:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=linuxK
Linux设备驱动程序:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=driver
C/C++编程版:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=program
3 The ARM Linux Project
网址:
http://www.arm.linux.org.uk/
描述: Linux for all ARM based machine
4 ARM官方网站
网址:
http://www.arm.com/
描述: 提高ARM水平的最佳地方。文档和技术笔记均为英语,慢慢锻炼。
Document:
http://www.arm.com/documentation/
Software:
http://www.arm.com/community/software.php?PageTitle=Software&Categories=4&display=3
5 The Linux Kernel Archives
网址:
http://www.kernel.org/
描述: Linux Kernel官方网站
6 IBM developerWorks
网址:
http://www-128.ibm.com/developerworks/cn/
描述: 技术文档低中高级很丰富,作为系统学习的参考补充。
7 SourceForge
网址:
http://sourceforge.net/
描述: 开源软件的入口。
U-boot:
http://sourceforge.net/projects/uboot/
8 Linux fans
网址:
http://www.linuxfans.org/nuke/index.php
描述: 国内很出名的Linux站点,人气很高。
二、技术博客
1 陈莉君
网址:
http://www.lupaworld.com/26540
http://www.kerneltravel.net/
描述: 操作系统(Linux)研究。《深入理解Linux内核》的译者。kerneltravel里面关于kernel有很多精彩的文章,入门深入都可以在这里找到资料,可以讨论提高。
2 飞翔,嵌入式Linux
网址:
http://blog.chinaunix.net/u/30686/index.html
描述: 嵌入式Linux方向
3 cnsLinux
网址:
http://blog.chinaunix.net/u/13329/index.php
描述: Linux与程序设计
4 todaygood
网址:
http://blog.chinaunix.net/u/24474/
描述: 嵌入式Linux方向
5 嵌入式Linux博客圈
网址:
http://blog.chinaunix.net/group/group_25.html
描述: 我建立的嵌入式Linux方向的博客圈
6 Richard Stevens
网址:
http://www.kohala.com/start/
描述: Richard Stevens的个人主页。
三、资料下载
1 Free Datasheet PDF Download
网址:
http://www.ic-on-line.cn/
描述: 硬件芯片Datasheet可以在此下载
四、开发板厂商
1 北京恒颐
网址:
http://www.hyesco.com/
2 华恒科技
网址:
http://www.hhcn.com/chinese/cnindex.html
3 广州联智
网址:
http://www.devicegate.com/
4 周立功单片机
网址:
http://www.zlgmcu.com/home.asp
五、开发工具
1 GNU AS: Using AS---the GNU Assembler
http://sourceware.org/binutils/docs-2.16/as/index.html#Top
2 GNU LD: Using LD---the GNU Linker
http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_mono/ld.html
3 GNU MAKE
http://www.gnu.org/software/make/manual/make.html
4 GNU GCC: Using the GNU Compiler Collection
http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/
5 GNU GDB: Debugging with GDB
http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html
6 GNU CVS
http://ximbiot.com/cvs/manual/
7 VIM
英文:
http://vimdoc.sourceforge.net/htmldoc/usr_toc.html
中文:
http://vcd.gro.clinux.org/doc/usr_toc.html
8 几本重要的书
《Using and Porting the GNU Compiler Collection》
http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc.html
《Linkers and Loaders》
http://www.iecc.com/linker/
9 交叉编译工具链
http://www.codesourcery.com/gnu_toolchains/arm
备注:CodeSourcery公司提供的GNU Tools交叉编译工具,性能优越。我现在使用的是arm-2007q1,编译了U-boot-1.2.0,并且成功移植到s3c2410(2007-09-19)
六、程序设计
1 《The Art of UNIX Programming》
http://www.faqs.org/docs/artu/
2 《UNIX Programming FAQ》(中文版)
http://www.linuxforum.net/books/upfaq/book1.htm
PS: 这是从super兄(实际上只发过一次邮件交流过哦)的博客上摘录的,他的博客地址是(
http://blog.chinaunix.net/u/21948/),主要是嵌入式方面的日志。记得刚上CU的时候因为找嵌入式方面的资源,跑到他的博客上,发现他也在学嵌入式,不过到现在他长进很大,可我还只是学了毛皮。回想起来,可能是这段时间东学学、西弄弄,没有一个主线,所以得静下心来好好学习和研究啦。
1. HOWTO BUILD A CROSS COMPILER WITH EMERGE !(gentoo)
http://dev.gentoo.org/~vapier/CROSS-COMPILE-HOWTO
2. Very Simple Guide for Building Cross Compilers Tips(Recommend)
http://www.ifp.uiuc.edu/~nakazato/tips/xgcc.html
3.cross compiler mini howto
http://linux.bytesex.org/cross-compiler.html
4. How to build a cross compiler for Linux/MIPS
http://www.village.org/villagers/imp/build.html
5. Building a cross-compiler
http://www.nongnu.org/thug/cross.html
6. Cross Compiling Gcc for PowerPC(like 2)
http://www.pages.drexel.edu/~sg64/stuff/cross-compile.htm
7. ARM cross-compiling howto(Recommend)
http://www.ailis.de/~k/archives/19-ARM-cross-compiling-howto.html
8. Building and Testing gcc/glibc cross toolchains
http://www.kegel.com/crosstool/
9. Building the x86_64 cross-compiling toolchain(Recommend)
http://home.ix.netcom.com/~ejohns/glfs-amd64/toolchain.html
10. Building a GCC Cross Compiler for the PowerPC
http://www.cs.duke.edu/~irwin/gcc_ppc.html
11. The PARISC-Linux Cross Compiler How TO
http://www.parisc-linux.org/toolchain/PA-Linux-XC-HOWTO-01.html
12. Cross compiling a 64-bit PowerPC Linux Kernel
http://wiki.ppckernel.org/w/Cross_compiling_a_64-bit_PowerPC_Linux_Kernel
13. x86 -> Alpha Cross Compiler HOWTO(Recommend)
http://www.cse.unsw.edu.au/~cgray/crossdev/x86-alpha-xcc.html
14. HOWTO Cross Compile(gentoo)
http://gentoo-wiki.com/HOWTO_Cross_Compile
15. Building a GNU/Linux ARM Toolchain (from scratch)
http://www.schnozzle.org/~coldwell/toolchain/
[转帖] 嵌入式Linux驱动程序开发要点
转自:一塌糊涂的BLOG
在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。
字
符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程
对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的
CPU时间用来等待。网络设备可以通过BSD套接口访问数据。
每个设备文件都有其文件属性(c/b),表示是字符设备还是块设备。另外每个文件都
有2个设备号,第一个是主设备号,标识驱动程序;第二个是从设备号,标识使用同一个设备驱动程序的、不同的硬件设备。设备文件的主设备号必须与设备驱动程
序在登记时申请的主设备号一致,否则用户进程将无法访问驱动程序。
系统调用时操作系统内核与应用程序之间的接口,设备驱动程序是操作系统内核与机器硬件之间的接口。设备驱动程序是内核的一部分,它完成以下功能:
●对设备初始化和释放
●把数据从内核传送到硬件和从硬件读取数据
●读取应用程序传送给设备文件的数据和回送应用程序请求的数据
●检测和处理设备出现的错误
MTD(Memory
Technology
Device)设备是闪存芯片、小型闪存卡、记忆棒之类的设备,它们在嵌入式设备中的使用正在不断增加。MTD驱动程序是在Linux下专门为嵌入式环境
开发的新的一类驱动程序。相对于常规块设备驱动程序,使用MTD驱动程序的优点在于他们能更好的支持、管理给予闪存设备,有基于扇区的擦除和读/写操作的
更好的接口。
驱动程序结构
Linux的设备驱动程序可以分为3个主要组成部分:
1. 自动配置和初始化子程序,负责监测所要驱动的硬件设备是否存在和能否正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态进行初始化。这部分驱动程序仅在初始化时被调用一次。
2.
服务于I/O请求的子程序,又称为驱动程序的上半部分。调用这部分程序是由于系统调用的结果。这部分程序在执行时,系统仍认为是与进行调用的进程属于同一
个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程序的运行环境,因而可以在其中调用sleep()等与进行运行环境有关的函数。
3.
中断服务子程序,又称为驱动程序的下半部分。在Linux系统中,并不是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由Linux系统来接
收硬件中断,再由系统调用中断服务子程序。中断可以在任何一个进程运行时产生,因而在中断服务程序被调用时,不能依赖于任何进程的状态,也就不能调用任何
与进程运行环境有关的函数。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序时,都带有一个或多个参数,以唯一标识请求服
务的设备。
在系统内部,I/O设备的存/取通过一组固定的入口点来进行,这组入口点是由每个设备的驱动程序提供的。具体到Linux系统,设备驱动程序所提供的这组入口点由一个文件操作结构来向系统进行说明。file_operation结构定义于linux/fs.h文件中。
struct file_operation{
int (*lseek)(struct inode *inode, struct file *filp, off_t off, int pos);
int (*read)(struct inode *inode, struct file *filp, char *buf, int count);
int (*write)(struct inode *inode, struct file *filp, const char *buf, int count);
int (*readdir)(struct inode *inode, struct file *filp, struct dirent *dirent, int count);
int (*select)(struct inode *inode, struct file *filp, int sel_type, select_table *wait);
int (*ioctl)(struct inode *inode, struct file *filp, unsigned int cmd, unsigned int arg);
int (*mmap)(void);
int (*open)(struct inode *inode, struct file *filp);
int (*release)(struct inode *inode, struct file *filp);
int (*fasync)(struct inode *inode, struct file *filp);
};
file_operation结构中的成员几乎全部是函数指针,所以实质上就是函数跳转表。每个进程对设备的操作都会根据major、minor设备号,转换成对file_operation结构的访问。
常用的操作包括以下几种:
●lseek, 移动文件指针的位置,只能用于可以随机存取的设备。
●read, 进行读操作,参数buf为存放读取结果的缓冲区,count为所要读取的数据长度。返回值为负表示读取操作发生错误;否则,返回实际读取的字节数。对于字符型,要求读取的字节数和返回的实际读取字节数都必须是inode-i_blksize的倍数。
●write, 进行写操作,与read类似
●readdir, 取得下一个目录入口点,只有与文件系统相关的设备程序才使用。
●select, 进行选择操作。如果驱动程序没有提供select入口,select操作会认为设备已经准备好进行任何I/O操作。
●ioctl, 进行读、写以外的其他操作,参数cmd为自定义的命令
●mmap, 用于把设备的内容映射到地址空间,一般只有块设备驱动程序使用
●open, 打开设备准备进行I/O操作。返回0表示打开成功,返回负数表示失败。如果驱动程序没有提供open入口,则只要/dev/driver文件存在就认为打开成功。
●release, 即close操作。
在
用户自己的驱动程序中,首先要根据驱动程序的功能,完成file_operation结构中函数实现。不需要的函数接口可以直接在
file_operation结构中初始化为NULL。file_operation变量会在驱动程序初始化时注册到系统内部。当操作系统对设备操作时,
会调用驱动程序注册的file_operation结构中的函数指针。
Linux对中断的处理
在Linux系统里,对中断的处理是属于系统核心部分,因而如果设别与系统之间以中断方式进行数据交换,就必须把该设备的驱动程序作为系统核心的一部分。设备驱动程序通过调用request_irq函数来申请中断,通过free_irq来释放中断。它们被定义为:
#i nclude <linux/sched.h>
int request_irq(unsigned int irq,
void (*handler)(int irq, void dev_id, struct pt_regs *regs),
unsigned long flags,
const char *device,
void *dev_id);
void free_irq(unsigned int irq, void *dev_id);
参
数irq表示所要申请的硬件中断号;handler为向系统登记的中断处理子程序,中断产生时由系统来调用,调用时所带参数irq为中断号;dev_id
为申请时告诉系统的设备标识;regs为中断发生时的寄存器内容;device为设备名,将会出现在/proc/interrupts文件里;flag是
申请时的选项,它决定中断处理程序的一些特性,其中最重要的是中断处理程序是快速处理程序还是慢速处理程序。快速处理程序运行时,所有中断都被屏蔽,而慢
速处理程序运行时,除了正在处理的中断外,其他中断都没有被屏蔽。在Linux系统中,中断可以被不同的中断处理程序共享。
作为系统核心的一部分,设备驱动程序在申请和释放内存时不是调用malloc和free,而代之以调用kmalloc和kfree,它们被定义为:
#i nclude <linux/kernel.h>
void *kmalloc(unsigned int len, int priority);
void kfree(void *obj);
参数len为希望申请的字节数;obj为要释放的内存指针;priority为分配内存操作的优先级,即在没有足够空闲内存时如何操作,一般用GFP_KERNEL。
posted @
2007-10-18 14:29 MEYE 阅读(1759) |
评论 (0) |
编辑 收藏
摘要: Linux编译内核
准备工作
通常要运行的第一个命令是:
#cd /usr/src/linux;make mrproper
该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖
配置
接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。
配置内核可以根据需要与爱好使用下面命...
阅读全文
posted @
2007-10-18 11:31 MEYE 阅读(2774) |
评论 (0) |
编辑 收藏
Linux中文件查找技术大全
出处:
LINUXDOOR
每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经
常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照
各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。
可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专
用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式那么方
便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”
命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件
特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。
比如说REDHAT Linux 7.O和REDHAT Linux
7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的
一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用
途。
1.通过文件名查找法:
这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就
能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,
而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个
地方也不知道,则这是可以使用如下命令:
这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf
|
这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/ -name
httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find /
-name httpd.conf就能找到这个配置文件了。
2.无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用
“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用
“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁
止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
find / -name access_log 2>/dev/null
|
这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2
中,access_log 2就是表明系统将把错误信息输送到stderrstream
2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。
在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大
型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省
很多时间了。使用find /etc -name httpd.conf
就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/ ”这个函数符号的含义,如果输入
“find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在
etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。
3.根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中
的同类查找方法要强大得多。例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz,
tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
4.根据文件的特征查询方法:
如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的"搜索"功能是基本相同
的。在微软的"搜索"中WINDOWS中的"搜索助理"使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet
上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标
准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用 Active
Directory,这时还可以搜索带有特定名称或位置的打印机。
例如我们知道一个Linux文件大小为1,500 bytes,那么我们可是使用如下命令来查询find / -size
1500c,字符 c
表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。例如我们输
入find/ -size +10000000c
这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使
用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“
find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使用“find"命令的方式是很多的,“
find"命令查找文件只要灵活应用,丝毫不必在WINDOWS中查找能力差。
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变状态的文件
-ctime n
查找系统中最后n*24小时被改变状态的文件
-empty
查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false
查找系统中总是错误的文件
-fstype type
查找系统中存在于指定文件系统的文件,例如:ext2 .
-gid n
查找系统中文件数字组 ID 为 n的文件
-group gname
查找系统中文件属于gnam文件组,并且指定组和ID的文件
5.Find命令的控制选项说明:
Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
选项 用途描述
-daystart .测试系统从今天开始24小时以内的文件,用法类似-amin
-depth 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-follow 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
-help 显示命令摘要
-maxdepth levels 某个层次的目录中按照递减方法查找
-mount 不在文件系统目录中查找, 用法类似 -xdev.
-noleaf 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
-version 打印版本数字
使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。
-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样
导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find . -maxdepth 2 -name fred
|
假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在.
/sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文
件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n
就很快的能在指定目录中查找成功。
6.使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式。
find /tmp -size +10000000c -and -mtime +2
|
学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示“与”和“或”的关系。在Linux系统的查找命令中一样通用。
还有这样的例子,
find / -user fred -or -user george
|
我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
命令就可以解决了。很简单。
7.查找并显示文件的方法
查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。
find / -name "httpd.conf" -ls
|
系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf
|
下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
选项 用途描述
-exec command; 查找并执行命令
-fprint file 打印文件完整文件名
-fprint0 file 打印文件完整文件名包括空的文件
-fprintf file format 打印文件格式
-ok command; 给用户命令执行操作,根据用户的Y 确认输入执行
-printf format 打印文件格式
-ls 打印同种文件格式的文件.
总结:到这里为止我们已经学习了这名多关于find命令的使用方法,也列出了很多常用的find命令的选项,如果我们能熟练掌握在Linux中find命令的使用方法,那么在Linux中查找文件也不是一件困难的事情。
posted @
2007-10-18 11:26 MEYE 阅读(433) |
评论 (0) |
编辑 收藏
Linux C编程---网络编程
摘要
网络编程,一定离不开套接口;那什么是套接口呢?在Linux下,所有的I/O操作都是通过读写文件描述符而产生的,文件描述符是一个
和打开的文件相关联的整数,这个文件并不只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个终端等,而套接口就是系统进程和文件描述
符通信的一种方法。目前最常用的套接口是字:字节流套接口(基于TCP)和数据报套接口(基于UDP),当然还有原始套接口(原始套接口提供TCP套接口
和UDP套接口所不提供的功能,如构造自己的TCP或UDP分组)等,我们这里主要介绍字节流套接口和数据报套接口。
By Wing
网络编程,一定离不开套接口;那什么是套接口呢?在Linux下,所有的I/O操作都是通过读写文件描述符而产生的,文件描述符是一个
和打开的文件相关联的整数,这个文件并不只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个终端等,而套接口就是系统进程和文件描述
符通信的一种方法。目前最常用的套接口是字:字节流套接口(基于TCP)和数据报套接口(基于UDP),当然还有原始套接口(原始套接口提供TCP套接口
和UDP套接口所不提供的功能,如构造自己的TCP或UDP分组)等,我们这里主要介绍字节流套接口和数据报套接口。
要学习网络编程,一定离不开网络库的函数,在Linux系统下,可以用"man 函数名"来得到这个函数的帮助,不过为了照顾E文不大好的朋友,下面就将常用的网络函数和用法列出来供大家参考:
1、socket函数:为了执行网络输入输出,一个进程必须做的第一件事就是调用socket函数获得一个文件描述符。
-----------------------------------------------------------------
#include <sys/socket.h>
int socket(int family,int type,int protocol);
返回:非负描述字---成功 -1---失败
-----------------------------------------------------------------
|
第一个参数指明了协议簇,目前支持5种协议簇,最常用的有AF_INET(IPv4协议)和AF_INET6(IPv6协议);第二个
参数指明套接口类型,有三种类型可选:SOCK_STREAM(字节流套接口)、SOCK_DGRAM(数据报套接口)和SOCK_RAW(原始套接
口);如果套接口类型不是原始套接口,那么第三个参数就为0。
2、connect函数:当用socket建立了套接口后,可以调用connect为这个套接字指明远程端的地址;如果是字节流套接口,connect就使用三次握手建立一个连接;如果是数据报套接口,connect仅指明远程端地址,而不向它发送任何数据。
-----------------------------------------------------------------
#include <sys/socket.h>
int connect(int sockfd,const struct sockaddr * servaddr,socklen_t
addrlen);
返回:0---成功 -1---失败
-----------------------------------------------------------------
|
第一个参数是socket函数返回的套接口描述字;第二和第三个参数分别是一个指向套接口地址结构的指针和该结构的大小。
这些地址结构的名字均已“sockaddr_”开头,并以对应每个协议族的唯一后缀结束。以IPv4套接口地址结构为例,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>;以下是结构体的内容:
------------------------------------------------------------------
struct in_addr {
in_addr_t s_addr; /* IPv4地址 */
};
struct sockaddr_in {
uint8_t sin_len; /* 无符号的8位整数 */
sa_family_t sin_family;
/* 套接口地址结构的地址簇,这里为AF_INET */
in_port_t sin_port; /* TCP或UDP端口 */
struct in_addr sin_addr;
char sin_zero[8];
};
-------------------------------------------------------------------
|
3、bind函数:为套接口分配一个本地IP和协议端口,对于网际协议,协议地址是32位IPv4地址或128位IPv6地址与
16位的TCP或UDP端口号的组合;如指定端口为0,调用bind时内核将选择一个临时端口,如果指定一个通配IP地址,则要等到建立连接后内核才选择
一个本地IP地址。
-------------------------------------------------------------------
#include <sys/socket.h>
int bind(int sockfd,const struct sockaddr * myaddr,socklen_t
addrlen);
返回:0---成功 -1---失败
-------------------------------------------------------------------
|
第一个参数是socket函数返回的套接口描述字;第二和第第三个参数分别是一个指向特定于协议的地址结构的指针和该地址结构的长度。
4、listen函数:listen函数仅被TCP服务器调用,它的作用是将用sock创建的主动套接口转换成被动套接口,并等待来自客户端的连接请求。
-------------------------------------------------------------------
#include <sys/socket.h>
int listen(int sockfd,int backlog);
返回:0---成功 -1---失败
-------------------------------------------------------------------
|
第一个参数是socket函数返回的套接口描述字;第二个参数规定了内核为此套接口排队的最大连接个数。由于listen函数第二个参
数的原因,内核要维护两个队列:以完成连接队列和未完成连接队列。未完成队列中存放的是TCP连接的三路握手为完成的连接,accept函数是从以连接队
列中取连接返回给进程;当以连接队列为空时,进程将进入睡眠状态。
5、accept函数:accept函数由TCP服务器调用,从已完成连接队列头返回一个已完成连接,如果完成连接队列为空,则进程进入睡眠状态。
-------------------------------------------------------------------
#include <sys/socket.h>
int accept(int sockfd,struct sockaddr *
cliaddr,socklen_t * addrlen);
回:非负描述字---成功 -1---失败
-------------------------------------------------------------------
|
第一个参数是socket函数返回的套接口描述字;第二个和第三个参数分别是一个指向连接方的套接口地址结构和该地址结构的长度;该函数返回的是一个全新的套接口描述字;如果对客户段的信息不感兴趣,可以将第二和第三个参数置为空。
6、inet_pton函数:将点分十进制串转换成网络字节序二进制值,此函数对IPv4地址和IPv6地址都能处理。
-------------------------------------------------------------------
#include <arpa/inet.h>
int inet_pton(int family,const char * strptr,void * addrptr);
返回:1---成功 0---输入不是有效的表达格式 -1---失败
-------------------------------------------------------------------
|
第一个参数可以是AF_INET或AF_INET6:第二个参数是一个指向点分十进制串的指针:第三个参数是一个指向转换后的网络字节序的二进制值的指针。
7、inet_ntop函数:和inet_pton函数正好相反,inet_ntop函数是将网络字节序二进制值转换成点分十进制串。
-------------------------------------------------------------------
#include <arpa/inet.h>
const char * inet_ntop(int family,const void *
addrptr,char * strptr,size_t len);
返回:指向结果的指针---成功 NULL---失败
-------------------------------------------------------------------
|
第一个参数可以是AF_INET或AF_INET6:第二个参数是一个指向网络字节序的二进制值的指针;第三个参数是一个指向转换后的点分十进制串的指针;第四个参数是目标的大小,以免函数溢出其调用者的缓冲区。
8、fock函数:在网络服务器中,一个服务端口可以允许一定数量的客户端同时连接,这时单进程是不可能实现的,而fock就分配一个子进程和客户端会话,当然,这只是fock的一个典型应用。
-------------------------------------------------------------------
#include <unistd.h>
pid_t fock(void);
返回:在子进程中为0,在父进程中为子进程ID -1---失败
-------------------------------------------------------------------
|
fock函数调用后返回两次,父进程返回子进程ID,子进程返回0。
有了上面的基础知识,我们就可以进一步了解TCP套接口和UDP套接口
1、TCP套接口
TCP套接口使用TCP建立连接,建立一个TCP连接需要三次握手,基本过程是服务器先建立一个套接口并等待客户端的连接请求;当客户
端调用connect进行主动连接请求时,客户端TCP发送一个SYN,告诉服务器客户端将在连接中发送的数据的初始序列号;当服务器收到这个SYN后也
给客户端发一个SYN,里面包含了服务器将在同一连接中发送的数据的初始序列号;最后客户在确认服务器发的SYN。到此为止,一个TCP连接被建立。
下面就用一个例子来说明服务器和客户是怎么连接的
-------------------------------------------------------------------
/* client.c */
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
int main(int argc,char *argv[]) {
int sockfd,numbytes;
char buf[100];
struct hostent *he;
struct sockaddr_in their_addr;
int i = 0;
//将基本名字和地址转换
he = gethostbyname(argv[1]);
//建立一个TCP套接口
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1) {
perror("socket");
exit(1);
}
//初始化结构体,连接到服务器的2323端口
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(2323);
their_addr.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(their_addr.sin_zero),8);
//和服务器建立连接
if(connect(sockfd,(struct sockaddr *)&their_addr,
sizeof(struct sockaddr))
==-1){
perror("connect");
exit(1);
}
//向服务器发送字符串"hello!"
if(send(sockfd,"hello!",6,0)==-1) {
perror("send");
exit(1);
}
//接受从服务器返回的信息
if((numbytes = recv(sockfd,buf,100,0))==-1) {
perror("recv");
exit(1);
}
buf[numbytes] = '';
printf("result:%s",buf);
close(sockfd);
return 0;
}
--------------------------------------------------------------------
/* server.c */
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
main() {
int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
//建立TCP套接口
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1) {
perror("socket");
exit(1);
}
//初始化结构体,并绑定2323端口
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(2323);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
//绑定套接口
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct
sockaddr))==-1)
{
perror("bind");
exit(1);
}
//创建监听套接口
if(listen(sockfd,10)==-1) {
perror("listen");
exit(1);
}
//等待连接
while(1) {
sin_size = sizeof(struct sockaddr_in);
perror("server is run");
//如果建立连接,将产生一个全新的套接字
if((new_fd = accept(sockfd,(struct sockaddr *)
&their_addr,&sin_size))==-1)
{
perror("accept");
exit(1);
}
//生成一个子进程来完成和客户端的会话,父进程继续监听
if(!fork()) {
//读取客户端发来的信息
if((numbytes = recv(new_fd,buff,strlen(buff),0))==-1)
{
perror("recv");
exit(1);
}
printf("%s",buff);
//将从客户端接收到的信息再发回客户端
if(send(new_fd,buff,strlen(buff),0)==-1)
perror("send");
close(new_fd);
exit(0);
}
close(new_fd);
}
close(sockfd);
}
------------------------------------------------------------------
|
现在让我们来编译这两个程序:
root@linuxaid#gcc -o server server.c
root@linuxaid#gcc -o client client.c
|
然后在一台计算机上先运行服务器程序,再在另一个终端上运行客户端就会看到结果;如果不运行服务器程序而先运行客户程序将立即提示"Connect:
Connection refused",这就是TCP套接口的好处,如果是UDP套接口将会有一个延时才会得到错误信息(UDP套接口后面有介绍)。
建立一个TCP连接需要三次握手,而断开一个TCP则需要四个分节。当某个应用进程调用close(主动端)后(可以是服务器端,也可
以是客户端),这一端的TCP发送一个FIN,表示数据发送完毕;另一端(被动端)发送一个确认,当被动端待处理的应用进程都处理完毕后,发送一个FIN
到主动端,并关闭套接口,主动端接收到这个FIN后再发送一个确认,到此为止这个TCP连接被断开。
2、UDP套接口
UDP套接口是无连接的、不可靠的数据报协议;既然他不可靠为什么还要用呢?其一:当应用程序使用广播或多播是只能使用UDP协议;其
二:由于他是无连接的,所以速度快。因为UDP套接口是无连接的,如果一方的数据报丢失,那另一方将无限等待,解决办法是设置一个超时。
在编写UDP套接口程序时,有几点要注意:建立套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立一个
UDP套接口;由于UDP是无连接的,所以服务器端并不需要listen或accept函数;当UDP套接口调用connect函数时,内核只记录连接放
的IP地址和端口,并立即返回给调用进程,正因为这个特性,UDP服务器程序中并不使用fock函数,用单进程就能完成所有客户的请求。
IO::Socket简介
另一个构造socket库,使用对象构造模式。如果您看过wawa老大的动网EXPLOIT与isno大哥的WEBDAVX,您就会发现这些EXPLOITS都是使用这个库做的,所以如果您想写EXPLOITS的话,不妨看看此文。
以前我写的是传统的C语言‘遗留’下了的SOCKET库它使用了部分C库的二进制格式,导致PERL无法完全使用它。而这篇文所介绍的IO::Socket库是IO::Handle的子类,完全对象编程,一切就会‘自由’很多了......
使用格式与常用方法(父类IO::Handle与IO::File的通用方法就不在下文中说明了):
=============================================================================
-----------------------------------------------------------------------------
导入IO::Socket包:
use IO::Socket;
讲解:
IO::Socket下又有两个子类IO::Socket::INET与IO::Socket::UNIX,我们现在用的当然是IO::Socket::INET了。
-----------------------------------------------------------------------------
new()方法:
SOCKET对象变量=IO::Socket::INET->new(SOCKET变量值);
实例:
$sock=IO::Socket::INET->new('192.168.1.2:23');
讲解:
所有的PERL对象编程都把对象‘形象化’为某个变量,这里的SOCKET句柄对象也不例外,调用此方法的返回值便为SOCKET对象变量
了。这里使用参数为简单参数模式,在双引号或但引号内的socket地址结构为'主机IP或域名:端口号或服务名称',也可以是'主机IP或域名:服务名
称(端口号)'。
除了最简单的单参数调用外,new方法还有很多参数可以选择性调用的,下面就对这些参数作出一个简单的概括吧:
***********************************************************************
参数 描述 值类型
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
PeerAddr 远程主机的地址 主机地址[:端口或服务]
PeerHost 与PeerAddr相同
PeerPort 远程端口或服务 端口或服务
LocalAddr 本地地址 主机地址[:端口或服务]
LocalHost 与LocalAddr相同
LocalPort 本地端口 端口或服务
Proto 所使用的协议 协议名或协议号
Type 套接字类型 SOCK_STREAM/SOCK_DGRAM...
Listen 监听的队列长度 整形数
Reuse 用于避免重启时BIND时间间隙 布尔值
Timeout 超时值 整形数
MultiHomed 用于连接多IP地址 布尔值
***********************************************************************
参数PeerAddr(远程主机地址)与PeerHost(远程主机名)基本相同,调用方式也相同,其值格式除了标准的格式外,还可以加':'号后再加端口或服务,这样的的话,后面的参数PeerPort(远程主机端口或服务)的值就无效了。
参数PeerPort(远程主机端口或服务),其值的格式可以是端口,还可以是服务名,更可以是‘组合’,如:"telnet(23)";当PeerAddr(远程主机地址)或
PeerHost(远程主机名)的值格式中指明了端口,再调用此参数时,此参数的值无效。
参数LocalAddr(本地主机地址)、LocalHost(本地主机名)、LocalPort(本地主机端口或服务)之间的关系与调用方
式与上面介绍的三个参数PeerAddr(远程主机地址)、PeerHost(远程主机名)、PeerPort(远程主机端口或服务)相当。
还有一种情况,就是如果只定义了LocalPort(本地主机端口或服务),而没有定义LocalAddr(本地主机地址)或
LocalHost(本地主机名),那IO::Socket会将本地机器的地址的值默认为INADDR_ANY通配符,也就是不定义本地主机的地址值的话
就定义为允许所有接口。
Proto(协议类型)的值可以用两种方式表示。一种是直接的字符串表示方式,如:
proto=>"tcp"
表示该协议类型为TCP。第二种方式就是直接使用协议号了,EGP---8、HMP---20、ICMP---1、RAW---255、RDP-
--27、RVD---66、TCP---6、UDP---17、XNS-IDP---22、其他---22、ALL---0;也可以使用
getprotobyname函数加协议名为参数调用获的该值,如:
proto=>getprotobyname('tcp')
该形式也表示该协议的类型为TCP。建议还是使用第一种方式比较方便。
Type(套接字类型)的值通常为SOCK_STREAM(流套接字)、SOCK_DGRAM(数据报套接字)、SOCK_RAW(原始套接字)等,不用说大家都知道,TCP用的是流套接字,UDP用的是数据报套接字,构造IP包用的是原始套接字。
如果上面的参数Proto(协议类型)与Type(套接字类型)的值都不定义的话,IO::Socket::INET就会通过程序中上下‘文’部分猜估它们的值,猜估不到的话就会默认为'tcp'。
参数Listen(监听队列的长度)的值是一个整形数。它代表能接受的连接主机数量。如果您要构造服务端的话,Listen这个步骤是必不可少的。
调用Reuse(在绑定前设置SO_REUSEADDR)可以免去服务器在终止到重启之间的所停留的时间。
Timeout(超时值)以秒计算,用于连接中的connect与accept这两个步骤,调用目的是为了在连接远程主机不可到达时限制连接的挂起时间。
MultiHomed(用于连接多IP地址)的值是一个布尔值,当其值为真时,如果要连接的主机拥有多个IP地址,则本机的new方法调用gethostbyname()穷举其所有IP地址,直到能成功调用为止。
从楼上的列表中可以看到IO::Socket与传统C库的Socket API接口在调用上有什么不同了:
1)控制范围不同。C库提供的接口在生成SOCKET句柄时只能控制的只有域、套接字类型、协议这几个参数。而IO::Socket接口的创建语句(调用new方法)几乎能决定这个套接字的所有参数。
2)调用所使用的‘协议’定义部分不同。IO::Socket接口调用new方法中的参数'Proto'的值可以直接定义为'tcp',这比传统C库的Socket定义更为简便。
3)IO::Socket在定义时能直接定义本地主机地址、本地端口与远程主机地址、远程端口在一个Socket中,如果是这种情况的服务端
就无需调用accept了,在I/O读写部分可以直接向这个Socket进行读写操作,而无需再定义远程客户端的Socket了。
-----------------------------------------------------------------------------
accept()方法:
远程连接套接字对象变量=服务端套接字对象变量->accept();
实例:
$remote_sock=$sock->accept();
讲解:
此方法的调用环境与传统C中SOCKET库调用原理一样,用于服务端的等待监听过程。无参数,返回值为远程连接的套接字对象变量。调用此方法
也是一个生成套接字的过程,只不过此套接字为远程连接的套接字而已,它以对象变量方式存在,据有与本地套接字变量相同的属性与方法。
accept()方法在IO::Socket包里还提供另一种双返回值的调用方法:
(远程连接套接字对象变量,远程主机压缩地址变量)=服务端对象变量->accept();
实例:
($remote_sock,$remote_addr)=$sock->accept();
讲解:
与楼上一个返回值的调用方式基本相同,只是返回值中多了一个变量而已,返回值中多了个变量------远程主机压缩地址变量。
-----------------------------------------------------------------------------
bind()方法:
返回值变量=服务端套接字对象变量->bind(本地端口号,本地主机网络地址);
实例:
$result=$sock->bind(80,'127.0.0.1');
讲解:
bind方法用于在服务器端绑定主机的地址与端口。它使用的两个参数都为未压缩值,第一个为端口,第二个为主机的网络适配器接口地址(可以使
用默认的保留字INADDR_ANY,此保留字包括了主机的所有网络适配器接口地址,调用它时,它会以穷举的方法穷举所有的网络适配器接口地址,直到找到
为止);返回值为布尔值,用于检测这次调用是否成功。
-----------------------------------------------------------------------------
connect()方法:
返回值变量=套接字对象变量->connect(压缩地址变量);
实例:
$result=$sock->connect($pack_addr);
讲解:
常用于TCP连接(也可用于UDP,不过不常用),调用将向远程主机发送连接请求。参数‘压缩地址变量’为sockaddr_in形式值,返
回值为布尔值。若调用此方法则建立IO::Socket::INET对象时不能赋予参数'PeerAddr'或'PeerHost'、
'PeerPort',否则就会出现程序逻辑错误。
connect()方法也有双参数调用方式,使用起来更简单:
返回值变量=套接字对象变量->connect(远程端口号,远程主机地址);
实例:
$result=$sock->connect($remote_port,$remote_host);
讲解:
调用的目的与楼上单参数的调用方式相当。第一个参数为远程需要连接的主机的端口(等于new方法的参数'PeerPort'),第二个参数为需要连接的主机地址(等于new方法的参数'PeerAddr'或'PeerHost'),返回值为布尔值。
-----------------------------------------------------------------------------
listen()方法:
返回值变量=套接字对象变量->listen(请求队列的最大长度值);
实例:
$result=$sock->listen(20);
讲解:
TCP服务端不可缺少的方法。单参数,参数为此服务端接受远端请求队列的最大长度值,返回值为布尔值。调用此方法等同于在建立IO::
Socket::INET对象时定义参数'Listen'的值,所以若在new方法中定义了参数'Listen'再调用此方法的话就会出现‘程序定义冲突
’这样的逻辑错误了。
-----------------------------------------------------------------------------
shutdown()方法:
返回值变量=套接字对象变量->shutdown(控制参数);
实例:
$result=$sock->shutdown(2);
讲解:
此方法是除了close外的另一个关闭套接字对象的方法。单参数,参数值为外加参数定义,下为此方法的外加参数列表:
***********************************************************************
参数值 描述
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
0 关闭对象套接字的读操作
1 关闭对象套接字的写操作
2 关闭对象套接字的所有操作
***********************************************************************
其返回值为布尔值。
-----------------------------------------------------------------------------
send()方法:
成功发送的数据值变量=套接字对象变量->send(发送数据,标志值,目标地址值);
实例:
$succ_bytes=$sock->send('hihi\n',0,$pack_host);
讲解:
send方法是专门为SOCKET发送数据的特殊方法,调用格式与参数格式也基本与C库的SOCKET
API中的send函数相同。第一个参数是需要发送的数据;第二参数是标志值,不添的话默认为0;第三个参数通常只用于UDP连接,是需要连接的
sockaddr_in格式地址值(注意:当第三个参数有必要一定要写时,第二个参数也一定要加上);返回值为成功发送的数据值大小(以byte为单
位)。
-----------------------------------------------------------------------------
recv()方法:
压缩远程地址地址=套接字对象变量->recv(接收数据变量,接收数据值长度,标志值);
实例:
$remote_pack_address=$sock->recv($mem,100,0);
讲解:
recv方法是专门为SOCKET接收数据的特殊方法,调用格式与参数格式也与C库的SOCKET API基本一样。第一个参数是存放接收后的数据的变量值;第二个参数是接收的数据的长度值;第三个参数是标志值,默认为0就可以了(省略此值不填,系统默认也为0)。
-----------------------------------------------------------------------------
===================================================================================
IO::Socket接口的常用方法就介绍完了,不过还有一个问题是需要注意的:
作为一个简单的客户端,它的步骤只需要先调用new方法,然后立刻就可以进行基本I/O操作(使用print与getline等基本I/O方法)了,最后
只需调用close方法结束会话,那么整个SOCKET会话就算完成了。
典型使用例子:
wawa's dvbbs exploit:
http://haowawa.8866.org/wawa/new/tech/dvbbs.pl
isno's webdavx exploit:
http://www.xfocus.net/tools/200304/webdavx3.pl
究竟C库的传统SOCKET接口与本文介绍的IO::Socket接口哪个比较好用呢???我只能回答你:"萝卜青菜,各有所爱"......:P
posted @
2007-10-18 11:18 MEYE 阅读(826) |
评论 (0) |
编辑 收藏