12 2013 档案

摘要:声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!一. 概述ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。 图 1.1 alsa的软件体系结构由 阅读全文
posted @ 2013-12-25 10:00 haotianling 阅读(474) 评论(0) 推荐(0)
摘要:调用一次计时器方法:[cpp]view plaincopymyTimer=[NSTimerscheduledTimerWithTimeInterval:1.5target:selfselector:@selector(scrollTimer)userInfo:nilrepeats:NO];//不重复,只调用一次。timer运行一次就会自动停止运行重复调用计时器方法:[cpp]view plaincopytimer=[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(function:)userInfo: 阅读全文
posted @ 2013-12-24 16:59 haotianling 阅读(227) 评论(0) 推荐(0)
摘要:最近接触到amixer,大概明白了其意思和具体用法,简述如下。alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作。amixer,是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式去配置你的声卡的各个选项。对于amixer的使用,你首先需要搞懂你要设置的参数是哪些,然后才可能去了解,如何去配置对应的值,整体来说,相对alsamixer来说,是有点繁琐,下面简要介绍其具体用法:1.先看看am 阅读全文
posted @ 2013-12-20 10:01 haotianling 阅读(3927) 评论(0) 推荐(0)
摘要:总体概述CBCentralManagerDelegate协议中定义了一系列方法列表,这些方法是委托对象必须要实现的方法(也有可选择的),当中央管理器的相应变化就会调用委托对象中实现的相应方法。Monitoring Connections with Peripherals 监测外设的连接–centralManager:didConnectPeripheral:- (void)centralManager:(CBCentralManager*)centraldidConnectPeripheral:(CBPeripheral*)peripheral 当中央管理器成功连接一个外设时会唤醒该方法当co 阅读全文
posted @ 2013-12-18 17:13 haotianling 阅读(392) 评论(0) 推荐(0)
摘要:Overview总体概述CBCentralManagerobjects are used to manage discovered or connected remote peripheral devices (represented byCBPeripheralobjects), including scanning for, discovering, and connecting to advertising peripherals.CBCentralManager对象负责管理外设的发现或连接,包括扫描、发现、连接正在广播的外设。Before you callCBCentralManage 阅读全文
posted @ 2013-12-18 16:45 haotianling 阅读(1108) 评论(0) 推荐(0)
摘要:在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等。用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改。1.开启键盘面板 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first responser),(关于第一响应对象的我们估计可以把它看做一个标志位,每个贴上该标记的对象都能成为first response.. 阅读全文
posted @ 2013-12-12 20:56 haotianling 阅读(467) 评论(0) 推荐(0)
摘要:UITableView 基本使用方法 1. 首先,Controller需要实现两个 delegate ,分别是 UITableViewDelegate 和 UITableViewDataSource 2.然后 UITableView对象的 delegate要设置为 self。 3. 然后就可以实现这些delegate的一些方法拉。 (1)- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView; 这个方法返回 tableview 有多少个section ... 阅读全文
posted @ 2013-12-12 13:31 haotianling 阅读(226) 评论(0) 推荐(0)
摘要:如何用Facebook graphic api上传视频:http://developers.facebook.com/blog/post/532/Keychain保存数据封装:https://github.com/carlbrown/PDKeychainBindingsController对焦功能的实现:http://www.clingmarks.com/?p=612自定义圆角Switch按件:https://github.com/domesticcatsoftware/DCRoundSwitch弹出窗口For iphone and ipad:https://github.com/chrism 阅读全文
posted @ 2013-12-11 09:53 haotianling 阅读(230) 评论(0) 推荐(0)
摘要:objective-C 的内存管理之-实例分析注:这是《Objective-C基础教程》一书上的实例,但是原书限于篇幅,分析得比较简单,初次阅读看得比较费劲,这里展开详细讨论一下。场景:有二个类Car和Engine,即“汽车”和“引擎”。先来看最初的版本:Engine.h1234567#import @interfaceEngine : NSObject@propertyintflag;@end// EngineEngine.m12345678910111213141516171819#import "Engine.h"@implementation Engine@synt 阅读全文
posted @ 2013-12-11 09:43 haotianling 阅读(178) 评论(0) 推荐(0)
摘要:今天在看书上的一段代码时,发现NSString实例化时,有时用的是initWithFormat方法,有时用的是stringWithFormat,到底应该如何选择呢?区别:1、initWithFormat是实例方法只能通过 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"HelloWorld"] 调用,但是必须手动release来释放内存资源2、stringWithFormat是类方法可以直接用 NSString* str = [NSString stringWithFormat:@&quo 阅读全文
posted @ 2013-12-11 09:27 haotianling 阅读(159) 评论(0) 推荐(0)
摘要:objective-C中的接口与泛型先承认我是标题党,因为在obj-c的世界中,官方根本没有"接口"与"泛型"这样的说法。不过在obj-c中有二个与之接近的概念"非正式协议(interface)"与"正式协议(protocal)"。非正式协议在obj-c中的关键字虽然也是interface,但是这个跟c#中的接口(interface)并不完全相同。回忆一下前面学过的内容,我们定义一个类Sample时,总是会先生成一个Sample.h,代码如下:123456789#import @interfaceSample : 阅读全文
posted @ 2013-12-11 09:12 haotianling 阅读(192) 评论(0) 推荐(0)
摘要:loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法。 他们都可以用来在视图载入的时候初始化一些内容。 但是他们有什么区别呢? viewDidLoad 方法只有当 view 从 nib 文件初始化的时候才被调用。viewDidLoad 用于初始化,加载时用到。 loadView 方法在控制器的 view 为 nil 的时候被调用。 此方法用于以编程的方式创建 view 的时候用到。loadView 是使用代码生成视图的时候,当视图第一次载入的时候调用的方法。用于使用(写)代码来实现控件。用于使用代码生成控件的函数。如:- ( void ) loadView 阅读全文
posted @ 2013-12-06 10:01 haotianling 阅读(206) 评论(0) 推荐(0)
摘要:本文档的主要内容可参考苹果官方资料:http://developer.apple.com/library/ios/#technotes/tn2295/_index.html1. 买一个CSR蓝牙4.0的usb dongle,这个网上到处都是,大约30多元。下面是图片,这几种都可以。该usb dongle在mac下是免驱动的,所以赠送的光盘没什么用处。2.此时还无需插入usb dongle。打开OSX中的终端,敲入如下指令:sudo nvrambluetoothHostControllerSwitchBehavior="never"3.进入OSX的系统信息,查看Hardwar 阅读全文
posted @ 2013-12-05 15:28 haotianling 阅读(1100) 评论(0) 推荐(0)
摘要:转载于:http://www.cnblogs.com/zhucunliang/archive/2013/11/09/3416039.html//1、init初始化 NSString * str1 = [[NSString alloc] init]; NSLog(@"str1 = %@",str1);//2、initWithBytes:length:encoding:从给定字符串按照给定获取方向,得到指定个数的字符 NSString * str2 = [[NSString alloc] initWithBytes:"afasffaf" length:6 e 阅读全文
posted @ 2013-12-04 10:27 haotianling 阅读(393) 评论(0) 推荐(0)
摘要:转载于:http://www.cnblogs.com/wujian1360/archive/2011/09/05/2167992.html创建一个 Timer+scheduledTimerWithTimeInterval: invocation: repeats:+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;+scheduledTimerWithTimeInterval: target: se.. 阅读全文
posted @ 2013-12-04 10:25 haotianling 阅读(228) 评论(0) 推荐(0)
摘要:原文:Core Bluetooth for iOS 6Core Bluetooth 是在iOS5首次引入的,它允许iOS设备可以使用健康,运动,安全,自动化,娱乐,附近等外设数据。在iOS 6 中,这个API被扩展了,让iOS也能成为数据提供方,也就是Server(Peripheral)端,可能使它与其它 iOS 设备交互数据。Core Bluetooth API 基于BLE4.0规范。这个框架涵盖了BLE标准的所有细节. 不过,仅仅只有新的iOS设备和MAC是兼容BLE标准的: iPhone 4S, iPhone5, Mac Mini, New iPad, MacBook Air, MacB 阅读全文
posted @ 2013-12-03 11:33 haotianling 阅读(394) 评论(1) 推荐(0)
摘要:#import "BIDAppDelegate.h"#import "BIDViewController.h"@implementation BIDAppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]]; //创建一个窗口 阅读全文
posted @ 2013-12-02 10:11 haotianling 阅读(290) 评论(0) 推荐(0)
摘要:原文地址:免费视频教学:30天精通iPhone手机编程(全)作者:苹果iphone软件编程土豆连接http://www.tudou.com/playlist/id12638619.html 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(190) 评论(0) 推荐(0)
摘要:本站文章均为李华明Himi原创,转载务必在明显处注明:转载自【黑米GameDev街区】原文链接:http://www.himigame.com/gcc-makefile/766.html概述:什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个... 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(116) 评论(0) 推荐(0)
摘要:安装条件:硬件:一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC。注意:运行MAC OS,需要电脑支持虚拟技术(VT),安装时,需要将VT启动,在BIOS中开启。关于如何检测你的电脑支持VT,可以去下面这个网站下载这个工具,测试:http://www.grc.com/securable.htm或者直接点击下面连接下载:http://www.grc.com/files/securable.exe软件:Windows XP:VMware :VMware-workstation-7.0.0-203739EXE安装文件Mac OS:Mac_OS_10.6_Snow_Leopard_1... 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(252) 评论(0) 推荐(0)
摘要:CocoaFramework简称Cocoa,它是MacOSX上的快速应用程序开发(RAD,RapidApplicationDevelopment)框架,一个高度面向对象的(ObjectOriented)开发框架。无论您是资深的Mac开发人员,还是即将踏入Mac开发世界的新新人类,Cocoa都是您开发应用程序的瑞士军刀、乐高积木,它是您构建MacOSX应用程序最强大、最高效的工具。值得一提的是,苹果公司之所以能够开发出众多顶级软件,其实也正是因为有着Cocoa这个秘密武器。Cocoa是MacOSX上原生支持的应用程序开发框架,苹果公司强烈推荐所有Mac开发人员使用。骨灰话题:HelloWo... 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(178) 评论(0) 推荐(0)
摘要:1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了;但无名小公司有时也很给力。以下绝对是各大公司2013届校招的数据,少数几个是20122011的数据,都已经特别注明,数据真实重要性高于一切!!!2013年以前的数据来源:西电好网论坛和西电睿思论坛,应届生论坛,选进来的都是已经确认的信息,放心参考。2:待遇全部为税前,没有哪个公司会说税后工资3:说月薪的公司,其实年薪不是简单的*12,因为有年终奖,比如华为,第一年你就可以7500*13这么算;而互联网公司的待... 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(632) 评论(0) 推荐(0)
摘要:这篇文章面向范围:CS或EE专业硕士,研究生期间参与过较正规项目,所投职位为Dev或Test。限定1:为何限定专业?我对这两个专业方向都比较了解,国内高校实验室的培养也大体了解,其他专业恐班门弄斧。限定2:该文章充其量解决从小到大的问题,不负责解决从无到有的问题。限定3:所投职位为纯技术职位(Test也希望是偏开发的Test),如果投PM甚至是Sales,对个人素质的要求完全不同,介绍的点也就不一样了。好了,废话说完了,步入正文,如何介绍自己的项目,分如下点:1.项目性质横向(企业合作),纵向(863or973之类),合作方,偏科研或偏工程。2.项目背景和概述也可以参考立项依据,各个实验... 阅读全文
posted @ 2013-12-02 09:14 haotianling 阅读(338) 评论(0) 推荐(0)
摘要:面试问题1、 请你自我介绍一下自己好吗?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。2、你觉得你个性上最大的优点是什么?回答提示:沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(200) 评论(0) 推荐(0)
摘要:一、回避硬伤的三项注意事项 当面试进入一定阶段,有的企业根据需要,可能会加上英文面试,能到这个阶段,也预示着你正向梦想的职位最后冲刺,这轮面试的分量可想而知,所以你应该确保在面试中发挥最佳状态。毕业生求职攻克交流障碍,帮助自己回避硬伤的注意事项如下: 1.回答语速切莫过快 英文面试的第一目的是让国外主管了解你,甚至对你感兴趣,最重要的是展示你的综合素质,绝非单单的语言能力,所以应该首先力求有条不紊、表达清晰。剑桥大学的一项调查显示,语速快一般体现具备两种不同特质的人,一种是思维和语言反应能力强且协调的人,一种是处事急躁的人。语速过快容易给人不自信、不稳重的错觉。所以最好的语速是中速... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(173) 评论(0) 推荐(0)
摘要:1.gets()函数问:请找出下面代码里的问题:#include int main(void){char buff[10];memset(buff,0,sizeof(buff));gets(buff);printf("\n The buffer entered is[%s]\n",buff);return 0;}答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。2.strcpy()函数问:下面是一个简单的密码保护功能,你能在不知道密码的情况下将其破解吗 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(131) 评论(0) 推荐(0)
摘要:gets()从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。注意:gets函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,为了避免这种情况,我们可以用fgets()来替换gets()(在linux下,程序中用gets(),编译会有warning:the `gets' function is 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(1291) 评论(0) 推荐(0)
摘要:在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个EINVAL错误,而不是无意间成功地完成了意想不到的操作。在驱动程序里, ioctl() 函数上传送的变量 cmd是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分4 个域:bit31~bit302位为 “区别读写... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(462) 评论(0) 推荐(0)
摘要:文件类型说明:.h 头文件,用于定义类、实例变量及类中的方法等定义信息(interface)。.m 源文件,定义方法体,可实现objce-c和c方法(implementation)。.mm c++源文件引用头文件:可通过#import关键字引入想要使用的头文件,该关键字作用通#include相同,不过import会确保每个文件只会被引用一次。object-c中类的定义有两部分:interface和implementationinterface部分包含类的定义以及实例变量和方法。interfache通常定义在.h(头)文件中;implementation部分包含方法的实现部... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(182) 评论(0) 推荐(0)
摘要:iOS下内存管理的基本思想就是引用计数,通过对象的引用计数来对内存对象的生命周期进行控制。具体到编程时间方面,主要有两种方式:1:MRR(manualretain-release),人工引用计数,对象的生成、销毁、引用计数的变化都是由开发人员来完成。2:ARC(AutomaticReferenceCounting),自动引用计数,只负责对象的生成,其他过程开发人员不再需要关心其销毁,使用方式类似于垃圾回收,但其实质还是引用计数。iOS不支持垃圾回收机制,这点与Mac OS有所不同。ARC是Xcode4.2之后加入的新特性,可能很多开发人员并不习惯使用,但使用ARC给开发带来的便利是显而易... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(138) 评论(0) 推荐(0)
摘要:typedef struct与struct的区别1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(149) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/560372sed和gawk介绍知识体系:#使用文本文件#探索sed#探索gawkshell脚本可以把处理文本中包含的所有类型的数据这样的普通任务自动化。然而,只使用shell脚本命令处理文本文件的内容却有些麻烦。如果要在shell脚本中进行任何类型的数据处理,就要熟悉linux中现有的sed和gawk工具了。因为这两个命令行编辑器能够方便地格式化、插入、修改和删除文本元素。1、文本处理1.1、sed编辑器se... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(232) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/525126知识体系:#创建函数#使用参数#共享函数shell脚本代码可以封装在函数内,而函数可以在脚本任意处使用,由此减少大段代码的重复编写。1、基本脚本函数函数是被赋予名称的脚本代码块,可以在代码的任意位置使用。当需要调用代码块的时候,只需引用代码块被赋予的函数名即可。1.1、创建函数在bash shell脚本中创建函数可以使用两种方式:*关键字function,基本格式为:function name{ c... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(184) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/522415知识体系:#回顾信号功能#隐藏在背景中#在没有控制台的情况下运行#做得更好#准确无误的运行#从头开始前面运行脚本的方式都是在命令行界面运行,实际上还有运行shell脚本的其他方式,以及中断脚本的运行进程,控制脚本的运行时间都可以实现。1、处理信号linux下有各种信号,如停止、启动、终止。通过信号控制shell脚本的运行只需要使得shell脚本接收来自linux体系特定信号时执行命令即可。1.1、l... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(171) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/521455知识体系:#回顾重定向#标准输入和输出#报告错误#丢弃数据#创建日志文件这里主要讲述如何将脚本重定向到linux系统的各个位置。1、了解输入和输出我们知道显示脚本输出的方法有两种:*在监视器屏幕上显示*将输出重定向到文件下面主要讲述如何使用标准的linux输入和输出体系满足将脚本输出定向到特定位置的需求。1.1、标准文件描述符linux使用文件描述符来标识每个文件对象,每个进程最多有9个可以打开文件... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(206) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/521448知识体系:#使用命令行参数#设置选项#获取用户输入有时编写的脚本需要能和运行脚本的人员进行交互,bashshell提供了一些方法来从用户处获取数据,这些方法有如下三种:1- 命令行参数(添加在命令后的参数)2- 命令行选项(修改命令行为的单字符串)3- 直接读取键盘输入1、命令行参数向shell脚本传递数据最基本的方式就是命令行参数,主要就是说通过一些特殊变量是的bashshell自动把输入的参数赋... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(193) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/513601三、更多结构化命令前面已经讲述了检查命令的输出和变量的值来操作shell脚本程序中的流。如下主要说明如何执行重复的过程和命令,使得一组命令循环下去,直到满足特定的条件。知识内容:# 使用for语句循环# 使用until语句迭代# 使用while语句# 结合循环# 重定向循环输出1、for命令重复一系列的命令是常见的编程实践,对于shell如处理目录下的所有文件、系统中的所有用户、或者文本文件中的所有... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(139) 评论(0) 推荐(0)
摘要:二、使用结构化命令知识内容:# 改变命令流# 使用if-then逻辑# 嵌套if-then# 测试条件# 高级if-then功能许多程序在脚本命令之间需要某些逻辑控制流,有些命令允许脚本根据变量值的条件或者命令的结果跳过一些命令或者循环执行这些命令,这叫做结构化命令。1、使用if-then语句最基本的结构化命令类型就是if-then语句,其格式如下:if commandthencommandfi意思是说:if语句后面的命令的退出状态值是0,则执行then后面的所有命令;如果不是0则命令不执行。如下例子:[root@wzp ~]# cat test2#!/bin/bashif dateth... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(196) 评论(0) 推荐(0)
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://twentyfour.blog.51cto.com/945260/505644****shell 脚本基础知识****##########实验环境是RHEL5.3,内核2.6.18###########一、基本脚本编译知识内容:# 构建脚本# 将命令串联起来# 存储变量# 数学计算# 重定向输出# 检查代码1、使用多条命令shell不像高级语言需要编译后执行,而是直接处理每一条命令,可以将多条命令连接起来形成单一的步骤。如下使用两个bash shell命令,则为一个最简单的s... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(242) 评论(0) 推荐(0)
摘要:* How would you get the best frompeople?If you are applying for any management role, it is highly likelyyou'll be asked this job interview question. The kind of skillsthat we'd be looking for in a good applicant are:- Good communication- Teamwork skills- Recognizing what each person can brin 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(177) 评论(0) 推荐(0)
摘要:1. So, tell me a little aboutyourself.You don’t needto explain everything from birth to present day. Relevant factsabout education, your career and your current life situation arefine.2. Why are you looking (or why did you leave you lastjob)?This should be astraightforward question to answer, but... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(262) 评论(0) 推荐(0)
摘要:一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指令流水线,常见的是重新排序读写指令。对常规内存进行优化的时候,这些优化是透明的,而且效率很好。由编译器优化或者硬件重新排序引起的问题的解决办法是在从硬... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(299) 评论(0) 推荐(0)
摘要:const的作用const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变量复制该参数。3、非内部数据类型的参数,需要临时对象复制参数,而临时对象的构造,析构,复制较为费时,因此建议采用前加const的引用方式传递非内部数据类型。而内部数据类型无需引用传递。(二)const修饰函数返回值。1、函数... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(694) 评论(0) 推荐(0)
摘要:原文地址:16道嵌入式C语言面试题(经典)作者:预处理器(Preprocessor)1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL我在这想看到几件事情:1)#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。4)如果你在你的表达式... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(319) 评论(0) 推荐(0)
摘要:1.Shell脚本语法1.1.条件测试:test [命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的ExitStatus为0,如果测试结果为假,则命令的ExitStatus为1(注意与C语言的逻辑表示正好相反)。例如测试两个数的大小关系:$ VAR=2$ test $VAR -gt 1$ echo $?0$ test $VAR -gt 3$ echo $?1$ [ $VAR -gt 3 ]$ echo $?1虽然看起来很奇怪,但左方括号[确实是一个命令的名字,传给命令的各参数之间应该用空格隔开,比如,$VAR、-gt、3、]是[命令的四个参数,它们之间必须用空格隔开... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(804) 评论(0) 推荐(0)
摘要:引言:Linux驱动中,字符设备的设计一般会占产品驱动开发的90%以上,作者根据驱动开发的实际经验,总结了一个标准的字符设备驱动的模板,仅供参考。//=======================字符设备驱动模板开始===========================//#defineCHAR_DEV_DEVICE_NAME"char_dev"//设备名structclass *char_dev _class;//class结构用于自动创建设备结点static int major = 0;staticstruct cdev char_dev_devs;//定义一个cdev 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(223) 评论(0) 推荐(0)
摘要:我板子的启动过程如下:..showlogo..Flash: 1 MBNAND: SLCdetected.256 MBIn:serialOut:serialErr:serial*************show logo***************Hit any key to stopautoboot: 0NAND read: device 0 offset 0x900000, size 0x300000s3c-nand: ECC uncorrectable error detecteds3c-nand: ECC uncorrectable error detecteds3c-nand:... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(1487) 评论(0) 推荐(0)
摘要:首先,保证sd卡驱动是完好,但是sd卡却无法热插拔或者无法识别。刚开始我的板子上,sd是能够读取的,但是却不支持热插拔,看了几天sd驱动,找到了问题的原因,是驱动中硬件引脚相关设置的问题,具体根绝个人板子来修改,我想说的是sd卡驱动完好下如何使板子支持热插拔,内核的相关配置我就不多说了,网上很多。1)确保内核支持热插拔# cdlinux-2.6.30.4# vi .configCONFIG_KALLSYMS=y# CONFIG_KALLSYMS_ALL is not set# CONFIG_KALLSYMS_EXTRA_PASS is not set# CONFIG_STRIP_ASM_... 阅读全文
posted @ 2013-12-02 09:13 haotianling 阅读(729) 评论(0) 推荐(0)
摘要:照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因:pthread库不是 Linux 系统默认的库,连接时需要使用静态库libpthread.a,所以在使用pthread_create()创建线程,以及调用pthread_atfork()函数建立fork处理程序时,需要链接该库。问题解决: 在编译中要加-lpthread参数 gcc thread.c-o thread -lpthrea 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(173) 评论(0) 推荐(0)
摘要:先说现象吧:uboot能够正常启动,不过在kernel启动时却出现起不了的现象,停在这里UncompressingLinux..............................................................done, booting the kernel。就是在这里停住了分析原因:这个是由于时钟频率还未达到我们的要求,或者是时钟刚启动还未稳定造成的。解决方法:就是在时钟初始化函数的末尾添加一个毫秒级延时即可。具体修改办法:因为我的是s3c2416的板子打开 /arch/arm/mach-s3c2416/clock.c 在文件的末尾for (ptr... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(649) 评论(0) 推荐(0)
摘要:开发环境:arm-s3c2416、ubuntu、内核:linux2.6.26病症:内核启动时,arm的lcd屏幕出现抖动现象,如水纹状波动,屏幕最下面还有白线闪动,甚至lcd有很多亮点等现象分析原因:遇到这样的问题首先我们该根据数据手册来再查看我们的参数是否设置的正确,(一般我们使用手册推荐的参数即可)。帧频是造成这个问题的主要原因。解决办法:我的uboot启动时没有上述现象,而内核启动时出现不稳定的问题,所以我就拿uboot中相关lcd设置的参数进行对比(和linux内核中的lcd驱动参数对比),我发现uboot中设置的帧频是20而kernel中设置的帧频是40,所以果断改为20试试,... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(280) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/qikaibinglan/article/details/5630246(1) 液晶显示模式并行:MCU接口、RGB接口、Vysnc接口串行:SPI接口、MDDI接口(2) 屏幕颜色实质上即为色阶的概念。色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的色彩指数。目前彩屏手机的色阶指数从低到高可分三个层次,最低单色,其次是256色、4096色、65536色;目前最高的为26万色。256=2的8次方,即8位彩色,依次律推,65536色=2的16次方,即通常所说的16位真彩色,26万=2的18次方,也就是18位真彩。其实65536色已... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(317) 评论(0) 推荐(0)
摘要:先说说开发环境吧:1 内核:linux2.6.xx2 uboot:买开发板带的注释:在最后我又添加了问题得到完美解决的办法。问题:uboot启动完成,kernel启动时lcd屏幕出现杂色(比如:下半屏出现红色等)分析原因:造成这个问题的原因可能是因为uboot启动完成,lcd显示缓冲区内有其他数据,而这时kernel启动还未完成lcd相关初始化,还未向缓冲器写数据造成的。解决办法:在uboot完成启动内核的结尾,关闭lcd(也就是把背光关了),再在内核启动时lcd初始化中把lcd背光给打开。有两种方法可以实现方法: 1就是最直接的办法:在uboot关lcd背光,在kernel中打开lcd... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(1057) 评论(0) 推荐(0)
摘要:1.关于alsa-utils和lib的移植我的上一篇博文中已经说明了,下面我就来说说我的混音器mixer音量控制的调节过程,网上的很多方法都是比较基本的入门没有知名具体的操作方法,在此我来谈谈我的设置过程。 关于amixer的入门使用方法参考:http://www.360doc.com/content/12/1123/18/10388890_249802824.shtml2.开发环境:ubuntu:12.04arm平台:s3c2416声卡:wm9714交叉工具链:arm-linux-gcc 4.4.6utils及lib上篇博客说明了3.简单说明一下操作指令,我们使用cget和cset就可... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(4360) 评论(0) 推荐(0)
摘要:原文地址:-ALSA配置">转-ALSA配置作者:超级大苹果alsa 音频路径的问题:在sound/soc/codecs目录中有很多音频codec的codec驱动,我使用的是wm9713,AP是s3c6410;这里个驱动文件中定义了很多widget和control,alsa在playback或record的时候,sound/soc/soc-dapm.c中的dapm_power_widgets函数会根据“配置情况”打开相应的widget,搭建一个完整的音频路径,只要该路径搭建成功,就可以正常工作;sound/soc/codecs/wm9713.c中的audio_map[]就是一个 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(419) 评论(0) 推荐(0)
摘要:准备工作alsa-lib版本:alsa-lib-1.0.23.tar.bz2alsa-util版本:alsa-utils-1.0.23.tar.bz2其他版本的alsa-lib和alsa-util不能保证正常工作arm板子:s3c2416板子上linux内核:2.6.xxpc虚拟机:arm-linux-gcc:4.4.6首先在Ubuntu上交叉、编译alsa-lib和alsa-util1.解压alsa-lib-1.0.23.tar.bz2,进入解压所得目录2.使用命令./configure --host=arm-jyxtec-linux-gnueabi--prefix=/usr/shar... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(513) 评论(0) 推荐(0)
摘要:我的博客今天0岁346天了,我领取了徽章.2012.09.10,我在新浪博客安家。2012.09.10,我写下了第一篇博文:《[转载]C51串口的SCON寄存器及工作方式》。至今,我的博客共获得2,205次访问。这些年,新浪博客伴我点点滴滴谱写生活! 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(88) 评论(0) 推荐(0)
摘要:概述重定位(relocate)代码将BootLoader自身由Flash复制到SDRAM,以便跳转到SDRAM执行。之所以需要进行重定位是因为在Flash中执行速度比较慢,而系统复位后总是从0x00000000地址取指。重定位代码,位于/U-Boot/cpu/s3c44b0/start.S:relocate:adrr0,_startldrr1,_TEXT_BASEcmpr0,r1beqstack_setupldrr2,_armboot_startldrr3,_bss_startsubr2,r3,r2addr2,r0,r2copy_loop:ldmiar0!,{r3-r10}stmiar1... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(400) 评论(0) 推荐(0)
摘要:转载请说明出处:http://control.blog.sina.com.cn/admin/article/article_add.php近期工作中遇到的问题如下:linux启动后加载根文件系统时,会停留时间很久,跟人一种死机的感觉,于是老大要求优化linux的启动时间。先第一步做的是给linux内核启动加上时间戳,方法:配置linux内核make menuconfig--->Kernel hacking-->showtiming information on printks选中即可,重新编译内核下载。发现linux内核启动的时间是可以接受的在3s左右,主要时间是在根文件系统的挂在 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(476) 评论(0) 推荐(0)
摘要:转载于:http://blog.chinaunix.net/uid-28458801-id-3484269.html在此基础上我又添加了我的一些不同的地方,仅供参考内核版本: 2.6.35.3lcd:800x6001、内核默认的logo图片为drivers/video/logo/logo_linux_clut224.ppm1,制作.ppm格式的图片@1打开GIMP2.6.12软件:@2把要使用的图片拖入到GNU图像处理程序中@3选择:图像----》模式-----》索引并把最大颜色数量改为:224.,然后按:转换。@4等待图片转换完成,选择:文件----》导出:在保存图像框中选择:选择文件... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(1476) 评论(0) 推荐(0)
摘要:转载于:http://www.cnblogs.com/xmphoenix/archive/2012/03/27/2420044.html参加实*也*一个月了,严重感觉知识不够,真是后悔学校里浪费那么多时间做那些无聊的事情,无聊的课程。看到这个博文,心里有种冲动,立下愿望,把以下几本大作一一拜读,希望大家有机会也好好看看,再此和大家分享!!Linux驱动学*的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(434) 评论(0) 推荐(0)
摘要:管理madplay的主程序,包括播放,暂停播放,恢复播放,停止播放system("madplay north.mp3&");//利用system函数调用madplay播放器播放*.mp3音乐system("madplay north.mp3 -r &");//循环播放:参数-rsystem("killall -9madplay");//利用system函数调用killall命令将madplay终止掉system("killall -STOP madplay&");//利用system函数调用 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(5187) 评论(0) 推荐(0)
摘要:转载于:http://www.51testing.com/?uid-225738-action-viewspace-itemid-208702我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用shtest.sh来运行,但是出现了意料之外到结果,比如echo-e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e"\nTest\n"是不会输出"-e"的。我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向da 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(220) 评论(0) 推荐(0)
摘要:转载于:http://blog.csdn.net/dux003/article/details/5459423#include#include#include#include#includevoid usage(const char* self){printf("usage:/n"); printf("/t%s[-c channels -r rate -s samplesize] wavfile/n",self);};int set_fmt(int fd, int channels, int rate, intsamplesize){ int c =ch 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(620) 评论(0) 推荐(0)
摘要:原文地址:dev/dsp声卡学习笔记">linuxdev/dsp声卡学习笔记作者:ziyou飞翔无论是从声卡读取数据,或是向声卡写入数据,事实上都具有特定的格式(format),默认为8位无符号数据、单声道、8KHz采样率,如果默认值无法达到要求,可以通过ioctl系统调用来改变它们。通常说来,在应用程序中打开设备文件/dev/dsp之后,接下去就应该为其设置恰当的格式,然后才能从声卡读取或者写入数据。下面的代码示范了如何以只写方式打开声卡进行放音(playback)操作: int handle = open("/dev/dsp", O_WRONLY); i 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(2028) 评论(0) 推荐(0)
摘要:kernel下制作动态logo在uboot中实现logo的好处是反映速度快。在kernel中实现logo的好处是,不管是android还是什么其他平台,logo显示无需考虑上层平台。参照三星平台的写法,logo的显示一方面是开机时产品的标志,另一方面也是lcd驱动执行后显示屏工作正常的标志。所以logo的显示自然就藏于lcd驱动代码当中。staticint__devinits3cfb_probe(structplatform_device*pdev){structs3cfb_global*fbdev;fbdev=kzalloc(sizeof(structs3cfb_global),GFP... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(382) 评论(0) 推荐(0)
摘要:Yaffs2根文件系统制作环境:交叉编译环境:4.4.6开发平台:s3c24161,编译busybox获取busybox源码busybox-1.17.2.tar(http://www.busybox.net/downloads/)置于目录/opt/embed下#tar jxvf busybox-1.17.2.tar.bz2#cd busybox-1.17.2#vim Makefile将164行改为CROSS_COMPILE = arm-linux- 将190行改为ARCH = arm保存推出进入配置菜单#make menonfig采用默认配置保存推出#make#make install在... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(923) 评论(0) 推荐(0)
摘要:转载于:http://blog.163.com/solylee@126/blog/static/1718231572010101910485331/本人的开发环境是u-boot-1.1.6版本,fedora 9+虚拟机的linux系统,开发板cpu为at9263ek的板子,以下是本人在试验过程中总结出来的步骤,(1)修改/u-boot-1.1.6/common/main.c第269行udelay(10000);改为udelay(10);(2)修改/u-boot-1.1.6/lib_arm/board.c第459,udelay(100000);改为udelay(10);462行udelay... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(475) 评论(0) 推荐(0)
摘要:参考一下原文地址:U-boot优化">嵌入式Linux启动优化手记2U-boot优化作者:ZhaoJunling既然不能使用新的U-boot,那就优化一点是一点,慢慢干吧。1.去掉启动时的按键等待U-boot 启动的时候出现一个 Hit any key to stopautoboot不爽,干吗要停上1秒?虽然可以通过设置参数bootdelay=0来关掉这个延时,但这样做了以后就再也进不去U-boot了,更烦。检查代码,发现是在main.c函数intabortboot(int bootdelay)来干这个活的,好吧,改掉它static __inline__ intabortboo 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(341) 评论(0) 推荐(0)
摘要:系统调用是应用程序和操作系统内核之间的功能接口。其主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信以及存储管理等方面的功能,而不必了解系统程序的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统以及提高资源利用率的作用。 Linux操作系统作为自由软件的代表,它优良的性能使得它的应用日益广泛,不仅得到专业人士的肯定,而且商业化的应用也是如火如荼。在Linux中,大部分的系统调用包含在Linux的libc库中,通过标准的C函数调用方法可以调用这些系统调用。那么,对Linux的发烧友来说,如何在Linux中增加新的系统调用呢?1 Linu... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(1043) 评论(0) 推荐(0)
摘要:因为课题前期调研没做好,用的CPU板卡和数据采集卡来自两个部门。加上买的是裸板,自己定制的OS,技术支持不爱搭理。所以给的AI板卡的驱动一直装不上,自己在郁闷中寻找答案,就扎进了wince驱动的知识库里了。不管驱动装不上是不是这个原因,学点东西总没有坏处。做点记录备查:)首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点,把这两种分类法分开了。在这里引用一下:“单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PDD与MDD,一般的微软已经实现了MDD,可能也实现了PDD,我们只需要对... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(365) 评论(0) 推荐(0)
摘要:转载自:http://blog.chinaunix.net/uid-25554408-id-292638.html今天我在vmware里安装了虚拟机,安装虚拟机就想安装vmwaretools(这个道理你懂的),等我装完后发现ip地址不见了,一查eth0没了,奇怪,上网找资料看到一下东西就把问题解决了。VMWARE UBUNTU网口自动增加 eth0 no such device解决方案由于VMware重新分配了网卡的mac地址,而ubunut中又把原先的mac地址保存在缓存中,所以导致怎么重启网卡都是不能启用当执行 sudo /etc/init.d/networking restart ... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(133) 评论(0) 推荐(0)
摘要:使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/inittab文件开始说起.(1)文件/etc/inittab该文件是init进程需要解析的文件,它的每个条目都是一个脚本或可执行程序,详见博客"inittab文件".::sysinit:/etc/init.d/rcS::respawn:-/bin/login::ctrlaltdel:/bin/umount-a-r(2)文件/etc/init.d/rcS该文件的功能主要有两个,一个是 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(816) 评论(0) 推荐(0)
摘要:一、在ARM linux下,一般而言,产品在启动的过程中应该加载模块,最简单的方法是修改启动过程的rc脚本(/etc/init.d/rcS),增加ismod/../xxx.ko这个命令。例如:加载/lib/modules/2.6.26.5/s3c2410_buttons)cd/lib/modules/2.6.26.5insmod s3c2410_buttonsmknod /dev/matrix_button c232 0其中最后一行表示的意思是在ARM系统中建立设备文件,其主设备号为232注:如果要自动运行某个程序,同样在该文件下加入以下一句命令:(比如要启动/mnt/yaffs/zn2... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(115) 评论(0) 推荐(0)
摘要:linux下编译wpa_supplicant收藏前一段时间只在vs2005下编译成功过。经过近一段时间的琢磨,今天终于在linux下成功编译了wpa_supplicant。挺简单的事情折腾了这么久。没办法,刚开始进入linux。。和同样的初学者分享一下我的经验 ^_^环境:vmware+ubuntu,wpa_supplicant-0.6.10+openssl-0.9.8d由于编译wpa_supplicant需要用到openssl的头文件和lib,所以需要先编译安装openssl1.编译安装openssl1.1./config1.2make碰到问题:NUMPRIMES没有定义原因:bn_p... 阅读全文
posted @ 2013-12-02 09:12 haotianling 阅读(1019) 评论(0) 推荐(0)
摘要:下载wpa_supplicant最新版和openssl(编译wpa_supplicant需要openssl的库)我这里使用的是wpa_supplicant-0.7.3.tar.gz和openssl-0.9.8e.tar.gz。分别解压wpa_supplicant-0.7.3.tar.gz和openssl-0.9.8e.tar.gz,把wpa_supplicant-0.7.3里面的patches文件夹下的openssl-0.9.8e-tls-extensions.patch文件拷贝到openssl-0.9.8e目录下,运行:pathc–p1然后建立openssl的安装目录,建议安装在ope... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(2208) 评论(0) 推荐(0)
摘要:我的无线网卡显示的事ra0,所以把下面的wlan0换成ra0即可:视自己的情况而定1. 打开无线网卡电源iwconfig wlan0 txpower on2. 列出区域内的无线网络iwlist wlan0 scan3. 假设要连接到网络MyHome(即essid为MyHome的网络),那么输入命令iwconfig wlan0 essid “MyHome”如果网络是加密的,密码是0123456789,那么就输入命令iwconfig wlan0 essid “MyHome” key 0123-4567-894. 如果正常的话,输入iwconfig wlan0就可以看到连接正常的各项参数了。5... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(142) 评论(0) 推荐(0)
摘要:inux 模块编译步骤(转)本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消息的一些知识;声明:本文为初学者所写,如果你已经是一个linux模块编译高手,还请指正我文章中的错误和不足,谢谢第一步:准备源代码首先我们还是要来编写一个符合linux格式的模块文件,这样我们才... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(700) 评论(0) 推荐(0)
摘要:公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤。1.下载驱动源码,雷凌官网的下载地址是:http://www.ralinktech.com/en/04_support/support.php?sn=5012.解压2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz23.进入目录,修改Makefile将PLATFORM = PC 注释掉,同时将#PLATFORM =SMDK的#去掉,即PLATFORM定义为SMDK.将ifeq ($(PLATFORM),SMD... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(707) 评论(0) 推荐(0)
摘要:声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!一. 概述ALSA是AdvancedLinux Sound Architecture的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。ALSA声卡驱动之一:ALSA架构简介... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(190) 评论(0) 推荐(0)
摘要:病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部,原因:lcd显示驱动中场扫描的问题平台:s3c2416、linux2.6、800*480lcd解决办法:修改lcd驱动中部分代码:内核目录下drivers/vidio/s3c_xxx.c(根据实际找适合自己的)打开文件找到:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#inc... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(152) 评论(0) 推荐(0)
摘要:C语言命名规则比较著名的命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。“匈牙利”法最大的缺点是烦琐,例如inti,j,k;floatx,y,z;倘若采用“匈牙利”命名规则,则应当写成intiI,iJ,ik;//前缀i表示int类型floatfX,fY,fZ;//前缀f表示float类型如此烦琐的程序会让绝大多数程序员无法忍受。据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(632) 评论(0) 推荐(0)
摘要:飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其中遇到的一些问题。一键烧写本质上是启动位于SD卡中的Uboot,通过uboot读取sd卡中的文件到SRAM最后通过nand指令实现一键烧写,这一块可以参考飞凌提供的uboot源码中include\configs中的smdk6410.h 的529行,代码如下:代码1:tftp下载内核、文件系统以及nandflash地址相关整理、总结" />#elif defined(FORLINX_BOOT_SD)#define FORLINX_DEBUG#de 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(223) 评论(0) 推荐(0)
摘要:转载自:http://lagignition.blog.163.com/blog/static/12873002320110443341961/ 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(235) 评论(0) 推荐(0)
摘要:昨天遇到一个莫名其妙的编译错误,以前没有见过,而且代码流程看起来也没有太多的奇异之处。后来忍无可忍,百度了下,发现别人也有遇到这个错误的,他的解决方法是:少了“}”。嘿嘿,我开始跟踪每一个函数,终于找到了这个地方。对的。就是因为少了一个“}”。所以要注意了,仔细仔细哈。下面就是make后出现的错误:xxxxx.c:100: error: invalid storage class for function'xxxxxxx'dm9000x.c: In function 'eth_rx':dm9000x.c:523: error: invalid storage c 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(233) 评论(0) 推荐(0)
摘要:经过一段时间使用OK6410 256M RAM 2G nandFlash碰见了不少问题。所以特意开本贴一起交流。大家有什么BUG解决的可以跟上本帖。求助的请另开贴。勿跟本帖。谢谢。请谅解!!!希望飞凌的技术和各位高手给予解决。=========我是美丽的分割线=========问题1:在SD烧写linux系统时不断SD卡的空间减少或者出现以下情况时:1:Writing data at 0x5d9000--97te.Writing data at 0x5e6000--98te.Writing data at 0x5f3000--99te.Writing data at 0x5ff000 -... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(466) 评论(0) 推荐(0)
摘要:参数说明:-l是local的缩写,后跟存在于Client的源文件名,或下载Client后重命名的文件名。-r是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文件名,或上传Server后重命名后的文件名。-g是get的缩写,下载文件时用,-p是put的缩写,上传文件时用,tftp默认占用的是69端口。根据上述参数,tftp的命令格式如下1、tftp–g/-p 目标文件名源文件名服务器地址-g/-p目标文件名源文件名服务器地址说明-g表示下载 -p表示上传可与源文件名相同或不同下载时加参数-l上传时加参数-r 不可更名 下载时加参数-r 上传时加参数-l从上述表格说明... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(1565) 评论(0) 推荐(0)
摘要:UbuntuNfs服务器安装nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件。1、安装软件包sudoapt-getinstallnfs-commonnfs-kernel-serverportmap2、配置sudomkdir/nfssudovim/etc/exports增加下面一行的内容/nfs*(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:/nfs:要共享的目录 *:允许所有的网段访问 rw:读写权限 sync:资料同步写入内在和硬盘 no_root_squash:nfs客... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(168) 评论(0) 推荐(0)
摘要:这里我只针对ubuntu12.04进行了测试,由于不同的linux发行版本可能会有一些地方不一致,所以对于其他的linux发行版仅供参考。1、直接在命令行里添加我们先来看下下PATH的值echo $PATH在我的电脑上输出的值如下:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games每个不同的目录使用”:”分开,目录的先后顺序也决定了执行命令时搜索目录的先后顺序。给PATH添加一个目录:PATH=$PATH:/home/go/bin再来看一下PATH/usr/local/sbin:/usr/loca... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(209) 评论(0) 推荐(0)
摘要:minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。一、安装minicom:使用以下命令:# sudo apt-get install minicom使用以下命令看用的哪个串口:之后在终端中输入dmesg | grep usb命令 linuxidc.com@Ubuntu:~$ dmesg | grep usb [ 0.497563] usbcore: registered new interface driver usbfs [ 0.497574] ... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(329) 评论(0) 推荐(0)
摘要:未正常关闭minicomyesaidu@ywf-ubuntu:~$ls/var/lockLCK..ttyS0subsysyesaidu@ywf-ubuntu:~$kill0yesaidu@ywf-ubuntu:~$ls/var/locksubsysyesaidu@ywf-ubuntu:~$sudominicomWelcome to minicom2.3或者删除/var/lock下面以LCK开头的文件 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(107) 评论(0) 推荐(0)
摘要:摸索了一下午,终于解决了问题:主要原因是因为redhat系统配置文件默认root用户无法使用ftp,只需作如下修改就可以使用了。1、找到/etc/vsftpd/目录修改下面的连个文件2、用命令gedit /etc/vsftpd/ftpusers把其中的root给屏蔽,即变成 #root3、用命令gedit/etc/vsftpd/user_list同上把root给屏蔽ok,搞定!!!关于cuteftp的用法和设置就不再多说,网上多的是。参考:http://blog.csdn.net/zhangjs0322/article/details/7446586(注意里面的路径有些不对。) ... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(113) 评论(0) 推荐(0)
摘要:uboot详细注释讲解声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改。有些部分可能还没解释清楚,如果您觉得有必要注释,希望指出。再次强调该贴的大部分功劳应该归功于那些原创者,由于粗心,我没有留意参考的出处。我的目的是想让大家共同进步。希望大家念在我微不足道的心意,能够积极回馈,以便使帖子更加完善。以后还会把整理的东西陆续公布出来,谢谢光临!!大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(655) 评论(0) 推荐(0)
摘要:1。第二阶段的主线函数位于u-boot-2010.06/arch/arm/lib/board.c。第二阶段的功能:初始化本阶段要使用到的硬件设备。设置时钟、初始化串口。board_init函数设置MPLL、改变系统时钟,它是开发板相关的函数,在board/samsung/smdk2440/smdk2440.c中实现。值得注意的是board_init函数还保存了机器类型ID,这将在调用内核的时候传递给内核。代码如下:gd->bd->bi_arch_number = MACH_TYPE_S3C2440;//值为362串口的初始化函数主要是serial_init,它设置UART控制器,是 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(326) 评论(0) 推荐(0)
摘要:1.引导镜像区 0x0000_0000~0x07FF_FFFF2.内部存储区(1) 内部ROM 0x0800_0000~0x0BFF_FFFF(2) 内部SRAM 0x0C00_0000~0x0FFF_FFFF3.静态存储区 0x1000_0000~0x3FFF_FFFF4.动态存储区 0x4000_0000~0x6FFF_FFFFS3C6410的物理内存分成Memory和Pheriperal两部分,地址范围分别为0x0~0x6fffffff和0x7fffffff。系统通过SPINE总线访问Memory空间,通过PERI总线访问Pheriperal空间。而为了适应不同外设的访问速度,又分... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(186) 评论(0) 推荐(0)
摘要:1、首先下载u-boot(ftp://ftp.denx.de/pub/u-boot)wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz22、解压到你指定下路径中tar -jxvf u-boot-latest.tar.bz2 -C /opt步骤21、进入u-boot-文件夹cd /opt/u-boot-2011.06/cd board/samsung/2、建立smdk6410文件夹mkdirsmdk64103、复制6400文件夹下的所有代码到6410下cp -rf smdk6400/* smdk64104、进入smdk6410cd ... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(154) 评论(0) 推荐(0)
摘要:前段时间做了一个关于ARM92440资料的汇总帖,很高兴看到21ic和CSDN等论坛朋友们的支持和鼓励。当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题。感激、图报,很简单的想法。希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助!PS:在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞!嵌入式入门篇:什么是嵌入式系统 http://www.helloarm.com/Embedded-Learn/58.htm嵌入式资深工程师白话说“嵌入式”http://www.helloarm.com/Embedded-L... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(118) 评论(0) 推荐(0)
摘要:目录Linux 3.3.5系统移植 2LED驱动移植 8按键驱动移植 9LCD驱动移植 11DM9000网卡驱动移植 14搭建NFS网络文件系统 25移植触摸屏驱动 38移植Qt4.8.1 42tslib移植及测试 42移植qt-everywhere-opensource-src-4.8.145今天听了宋宝华(http://www.embedu.org/lecture/index.htm)的讲座,一下子恍然大悟,我必须做点什么。。。。。。Linux 3.3.5系统移植将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c;打开... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(1595) 评论(0) 推荐(0)
摘要:原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩。以前一直都是sd卡去进行实验的。想着,如果和公司实验室里的开发平台一样的话,那多好啊,既方便,又快捷。磨刀不误砍柴工嘛,好的开发环境可以提高很多效率的。好了,下面开始讲讲怎么去实现的吧。下文很多是参考网上的资料的,很多是雷同,我只是记录自己的过程。首先是tftp下载内核吧。网上也都说了,ok6410的uboot里面可恶的网卡驱动是cs8900的,而实际网卡是dm9000的,所以导致进入uboot后就没有... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(258) 评论(0) 推荐(0)
摘要:原文地址:arm-linux-gcc-4.5.1的安装方法作者:游牧说明:我使用的是在虚拟机下的红帽linux5 ,通过终端工具SecureCRT操作,使用虚拟机等其他工具的过程大致相同1、使用rz命令(CRT特有,虚拟机可使用samba工具)将arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz放入linux的一个目录下,我的是根目录下的myfile目录,路径:/myfile2、将arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz解压命令:#tar zxvfarm-linux-gcc-4.5.1-v6-vfp-20101103.tg... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(871) 评论(0) 推荐(0)
摘要:原文地址:06协议中向任务中添加事件基本流程说明作者:阿元osal_msg_send()函数的使用----------------------------------------------------------------------------------最近一直收到自己考博士问题的困扰,没怎么有心情看书学习。所以这两天又想起了前几天一直没有弄明白的一个问题,就是怎么往OSAL中的任务中添加一个事件。这么说有点空洞,所以,我们假设一个实验,然后大家跟着我走一个流程看看。我假设的实验是在当串口有值输入时,lcd屏幕清屏并显示我的标志位。串口回调函数用的基本是上次做过解释的串口回调函数... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(167) 评论(0) 推荐(0)
摘要:原文地址:ZigBee协议栈中AES加密算法作者:大浪淘沙Z-stack对Zigbee2006提供了全面的支持,功能之强大,性能稳定、安全性高,说到安全性是我们今天的主题。CC2430硬件支持128bit的AES加密算法,在协议栈中为了避开相同设备的干扰,和防止被其他设备监听,我们就采用这个技术将数据加密来提高数据的安全性。AES(The Advanced EncryptionStandard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、... 阅读全文
posted @ 2013-12-02 09:11 haotianling 阅读(1456) 评论(0) 推荐(0)
摘要:任务调度uC/OS-II采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/os-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。UCOS的任务调度在一下情况下发生:1)高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。2)高优先级的任务因为时钟节拍到来,在时钟中断的处... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(386) 评论(0) 推荐(0)
摘要:时间管理uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次(这个时间片段是OS的作者推荐的,大家可以参考邵贝贝翻译的《嵌入式实时操作系统ucos-II》这本书),时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。这里隐含的意思就是你选择的芯片如果想使用UCOS系统,前提条件一定要有一个Timer。 uC/OS-II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数,例如中断级的任务切换函数,系统时间函数。uCOS时间管理的相关函数1:任务延迟函数OSTimeDly()... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(189) 评论(0) 推荐(0)
摘要:uC/OS-II 中最多可以支持64 个任务,分别对应优先级0~63,其中0为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。 uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。 系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,该任务负责统计当前cpu的利用率。在系统初始化完毕后启动任务时必须创建一份用户任务,也就是说必须有一个应用程序(用户任务,使用应用程序对于我们经常使用... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(144) 评论(0) 推荐(0)
摘要:第一篇 UCOS介绍这个大家都知道。呵呵。考虑到咱们学习的完整性还是在这里唠叨一下。让大家再熟悉一下。高手们忍耐一下吧! uC/OSII(Micro Control Operation SystemTwo)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OSII最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 uC/OSII可以简单的视为一个多任务调度器,在这个任务调... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(267) 评论(0) 推荐(0)
摘要:“内容/调查报告来源:华清远见/2011-2012年中国嵌入式开发从业人员大调查”本次调查活动分别从嵌入式工程师个人基本情况、嵌入式行业研发公司的基本情况、嵌入式工程师职业生涯发展及获得技术提升、培训的方式等五个不同的角度进行问题设置,特别是考虑到近一年来嵌入式技术在物联网、云计算、移动互联网等领域的广泛应用和发展,在本次调查问卷中也专门调整增加了相关的题目和选项,并在此基础上进行反馈数据的汇总、统计和分析,以呈现出行业发展的专业性趋势和普遍的关注点,力争再次打造出2011-2012年度中国嵌入式专业领域最具广泛性、权威性和实用性的产业调查报告。行业调查总结报告一、嵌入式工程师个人基本情... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(178) 评论(0) 推荐(0)
摘要:我是在win7和VM中的ubuntu传输文件:使用一个客户端,可以正常的连接,但是当上传文件时,总是报553 Could not create file错误信息。主要原因是新建的文件夹没有更改权限!!我也是按照网上的做法,对/var/ftp目录进行权限设置,如果设置为chmod -R777 /var/ftp还会导致ftp服务器不能启动,经过摸索,终于找到了解决的方法。首先在ftp的目录中创建一个目录,然后设置权限为777$ sudo mkdir /var/ftp/write$sudo chmod -R 777 /var/ftp/write然后修改vsftp的配置文件/etc/vsftpd... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(179) 评论(0) 推荐(0)
摘要:教你如何分析题干选答案本文主要向大家介绍听力短对话的宏观方法,无论四级还是六级,听前的充分预读是必要的,因为只有认真的预读才能找到选项中的规律,另外,短对话必须遵守的一个原则就是:先听到什么不太可能是正确选项,后听到的才可能是正确答案,没听到什么最有可能选择什么!以下以六级题为例! 第一招:相关保留原则 当选项中有两项表达意思相近时,那么正确答案必在这两项之中!这时只需稍微听一听对话,即可知答案,如果出现了双重相关,便可直接确认正确选项,只需听完对话加之认证一下即可! 典型例题: 1999年12月第4题 4. A) Visiting the Browning. B) Writ... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(133) 评论(0) 推荐(0)
摘要:执行过程如下:root@zyx-VirtualBox:~# cd /opt/EmbedSky/root@zyx-VirtualBox:/opt/EmbedSky# cd linux-2.6.30.4/root@zyx-VirtualBox:/opt/EmbedSky/linux-2.6.30.4# make menuconfig*** Unable to find the ncurses librariesorthe错误再此*** required header files.*** 'make menuconfig' requires the ncurses libraries 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(248) 评论(0) 推荐(0)
摘要:emouse收集整理,转载请注明:emouse的技术专栏博客园:http://www.cnblogs.com/emouse/CSDN:http://blog.csdn.net/haozi_1989成都国嵌非常好的实验教材,建议配合视频教程学习。此教材是收费的,国嵌和视频一起一套资料580元,有兴趣的可以自己去淘宝上搜。因此这里是教材是网上流出的扫描版本,我进行了整理和压缩,不影响阅读。文档说明1、本手册所有内容均整理自互联网,版权归原作者所有。2、目前百度文库、CSDN流传的均是这个版本,内容是一样的,我只是整理合并。3、目前网上关于本手册的资源较多,本手册只是将这些资源进行整理压缩,合... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(175) 评论(0) 推荐(0)
摘要:看了OK6410的手册,感觉晕晕的。 需要整理一下思路。我觉得主要的知道下面这几个内容吧。1. 定时器的电路结构。2. 定时器的工作原理是什么。定时器如何来使用。{使用的时序是什么,在时间轴上各个寄存器应该如何配置}3. 里面涉及的寄存器都有哪些。 各个寄存器的职责是什么。1. 简单介绍 :S3C6410X中有5个定时器,这些定时器产生内部中断。其中,Timer0和Timer1具有PWM功能,而Timer2,3,4没有此功能。PWM具有两种操作模式:自动装载模式,一次触发模式。为实现PWM功能,芯片提供了16个功能寄存器。这些功能寄存器都连接APB总线。定时器具有双缓冲特性,这样就能在不... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(254) 评论(0) 推荐(0)
摘要:看到一篇很好的博文,分析2410定时器中断的使用的,很详细,和大家分享一下 转载来源于http://www.cnblogs.com/Neddy/archive/2011/07/01/2095176.htmls3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持PulseWidth Modulation—— PWM(脉宽调制 )。Timer4是一个内部定时器(internal timer),PCLK是Timer的信号源,我们通过设置每个Timer相应的Prescaler和ClockDivider把PCLK转换成输入时钟信号传送给各个Ti... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(329) 评论(0) 推荐(0)
摘要://*****************************************************************//作者:昊天////功能:在ok6410板子上跑裸板程序,用四个按键控制四个led灯的两灭及蜂鸣器的叫声,// 当按键1按下时(此时为低电平)点亮led1同时蜂鸣器响,当松手时,led1灭及蜂鸣器不响 // 以此类推剩下三个键//时间:2012/12/13 22:01//******************************************************************//蜂鸣器---GPF15#define GPF... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(301) 评论(0) 推荐(0)
摘要:wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。 不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(2208) 评论(0) 推荐(0)
摘要:原文地址:关于FPGA设计16位乘法器的两种算法作者:ChrisChan部分原代码如下:用特权的右移算法虽复杂点,但节省不少LEs,如下图:用左移算法尽管浅显易懂,但因每次都会从最右端移位,会占用更大面积,速度暂不说,如下图: 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(555) 评论(0) 推荐(0)
摘要:此质料是摘要:>,自己感觉比较有价值,现与大家分享。1.从const inti说起你知道我们声明一个变量时象这样inti;这个i是可能在它处重新变赋值的。如下:int i = 0;i = 20;不过有一天我的程序可能需要这样一个变量(暂且称它变量),在声明时就赋一个初始值。之后我的程序在其它任何处都不会再去重新对它赋值。那我又应该怎么办呢?用const。const int ic =20;ic = 40;有了const修饰的ic我们不称它为变量,而称符号常量,代表着20这个数。这就是const的作用。ic是不能在它处重新赋新值了。认识了const作用之后,另外,我们还要知道格式的写法。有两 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(145) 评论(0) 推荐(0)
摘要:原文地址:键盘消抖--特权同学代码作者:一只大笨鹅首先将按键值保存两次,以检验按键值的变化。当按键值变后将计数器置0,否则继续加1。当计数器值等于fffff的时候,说明按键是正常按下的,接着保存两次,检测值的变化。若相应位有变化,则将相应的led控制取反。(好像新的代码中键值只检验了一次,不过找不到新代码了。)`timescale 1ns / 1ps////////////////////////////////////////////////////////////////////////////////// Company:// Engineer: 特权//// Create Dat... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(569) 评论(0) 推荐(0)
摘要:每天晚上,睡觉的时候我习惯躺在床上刷刷微波,有些人的微博很有价值,浓缩了他对某件事情或人生深度认识的精华,并以简短的语句表达出来,或者是其看了某本书后的感悟,或直接截图!我感觉我每天在从中吸取营养!昨晚,当我看到下面这条微博后,竟然让我睡不着!这篇微博是周公(广州周立功懂事)的,他为嵌入式在中国的普及做了很大的贡献!应该算嵌入式大佬!睡不着是因为我有同感!我在大学旁边做嵌入式培训有三年,下面是我亲耳听到我的学生说到的现象:现象一:老师开始上课,同学都来点名,点了名后坐了几分钟,大家都从后门出去,有的靠走廊窗户坐的直接翻窗越狱!后来,老师规定上课前点一次名,上课后点一次名,于是,他们出去抽... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(151) 评论(0) 推荐(0)
摘要:假设你的月收入只有2000元,你也可以过得很好。我帮你把钱分成五份。第一份600元,第二份400元,第三份300元,第四份200元,第五份500元。第一份,用来做生活费。这么少的生活费,每天只能够分到十几元。早餐一份煮米丝,一个鸡蛋,一杯豆浆。中餐一份快餐,一个水果。晚餐自己开个小灶,煮点饭,加俩菜,睡前一杯奶。这样一月的伙食大概是500-600。不过,如果你还年轻,身体暂时还没有太多问题,这样的食谱,够你数年内不会有健康问题。第二份,用来交朋友,扩大你的人际圈。这就宽裕了。你的电话费可以用掉100元。每个月可以请客两次,每次150元。请谁呢?记住,请比你有思想的人,比你更有钱的人,和你... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(115) 评论(0) 推荐(0)
摘要:今天一直纠结于程序老是出问题,就是拿别人的源码直接编译还是出问题,现在终于明白,开发环境不同启动代码也不同,在网上下载个源码启动代码如下:.globl _start_start: ldr r0,=0x70000000 orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 @256M(0x70000000-0x7fffffff) ldr r0, =0x7E004000mov r1, #0str r1, [r0]ldr sp, =8*1024mov r0, #9bl xxxxxhalt:b halt此源码我直接在RVDS开发环境下运行还是出错了,以前老是... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(227) 评论(0) 推荐(0)
摘要:contains invalid call from '~PRES8' function to 'REQ8' functionmainRVDS编译出现contains invalid callfrom '~PRES8' function to 'REQ8' function main解决办法:在汇编文件顶部加 preserve8 伪指令错误提示如下:Error : armlink:L6238:44BINIT.o(Init) containsinvalid call from ''~PRES8'' f 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(213) 评论(0) 推荐(0)
摘要:本文开始第一篇,启动代码的编写,注意,仅仅是启动代码,并不是bootloader,因为只有boot,没有loader。 第一要明确:CPU上电之后,会从某个固定地址执行指令。ARM结构的CPU从地址0x00000000开始执行指令,MIPS结构的CPU将会从0XBFC00000取第一条指令并执行。(注意,这个地址是CPU的统一编址,需要把存储器件ROM或者flash映射到这个地址上 第二要知道启动代码需要做那些事情: 1、异常向量表 2、禁看门狗,禁中断 3、设置系统时钟 4、初始化存储控制器 5、设置各个模式下的堆栈 6、跳转到C环境执行 第三,要... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(205) 评论(0) 推荐(0)
摘要:2 下面来看看tiny6410关于LED的原理图如图(1)所示:图1 LED原理图3 LED实例,代码如下所示:(代码摘自\光盘4\实验代码\3-3-1\src\main.c)main.c[cpp]viewplaincopy#include"def.h"#include"gpio.h"#defineLED1_ON~(10;times--)for(i=0;irGPIOKCON0;uConValue&=~(0xffffrGPIOKCON0=uConValue;}voidLedRun(void){GPIO->rGPIOKDAT|=LEDALL_O 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(480) 评论(0) 推荐(0)
摘要:2月15日,“90后”独立开发者季逸超在其微博称,个人获得徐小平和红杉资本投资,成立了PeakLabs——以贝尔和施乐为目标的实验室。谁是季逸超?他现年20岁,曾单独一人做出猛犸浏览器、Rasgueado输入法等。其中猛犸浏览器从浏览器设计到美工、开发、测试、运营等工作,全部由他一人独立完成。2010年7月开始开发“猛犸1”时,他刚刚读完高二。如今已经更新到第四代,是iPhone上个人开发的浏览器里下载量最大的产品。在IT行业竞争最激烈的移动互联领域,这位黄皮肤、黑头发的大二中国少年,通过自己的个人努力,获得2011年数字世界博览会特别奖。梦想起航2010年12月的一天,iPhone粉丝... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(402) 评论(0) 推荐(0)
摘要:我的博客今天0岁52天了,我领取了徽章.2012.09.10,我在新浪博客安家。2012.09.10,我写下了第一篇博文:《[转载]C51串口的SCON寄存器及工作方式》。至今,我的博客共获得38次访问。这些年,新浪博客伴我点点滴滴谱写生活! 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(89) 评论(0) 推荐(0)
摘要:#include // void perror(const char *msg);#include // char *strerror(int errnum);#include //errnoerrno 是错误代码,在 errno.h头文件中;perror是错误输出函数,输出格式为:msg:errno对应的错误信息(加上一个换行符);strerror是通过参数errnum (就是errno),返回对应的错误信息。以下是测试程序:// p_str_error.c// perror , strerror 函数 , errno 测试#include#include#include#includ... 阅读全文
posted @ 2013-12-02 09:10 haotianling 阅读(567) 评论(0) 推荐(0)
摘要:stdout,stdin,stderr的中文名字分别是标准输出,标准输入和标准错误。在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流,也就是题目中所提到的这三个。那么什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入、输出,如果出错,还要能表现出自身的错误。这是就要从某个地方读入数据、将数据输出到某个地方,这就够成了数据流。因此,一个进程初期所拥有的这么三个数据流,就分别是标准输出、标准输入和标准错误,分别用stdout,stdin,stderr来表示。对于这三个数据流来说,默认是表现在用户终端上的,比如我们在c中使用fprintf:fpri... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(561) 评论(0) 推荐(0)
摘要:命名管道(FIFO)基本概念命名管道和一般的管道基本相同,但也有一些显著的不同:命名管道是在文件系统中作为一个特殊的设备文件而存在的。不同祖先的进程之间可以通过管道共享数据。当共享管道的进程执行完所有的I/O操作以后,命名管道将继续保存在文件系统中以便以后使用。管道只能由相关进程使用,它们共同的祖先进程创建了管道。但是,通过FIFO,不相关的进程也能交换数据。命名管道创建和操作::#include#includeint mkfifo(const char *pathname,mode_t mode);返回:若成功则为0,若出错则为-1一旦已经用mkfifo创建了一个FIFO,就可用ope... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(274) 评论(0) 推荐(0)
摘要:open函数用来打开一个设备,他返回的是一个整型变量,如果这个值等于-1,说明打开文件出现错误,如果为大于0的值参考格式 if(fd=open("/dev/ttys0",O_RDWR | O_NOCTTY |O_NDELAY))<0 {printf("cannot open"};int open(const char *pathname, int oflag, …/*,mode_t mode * / ) ;打开的操作类型有如下几种 1) O_RDONLY只读打开 2) O_WRONLY只写打开 3) O_RDWR读、写打开 4) O_APPEND每 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(13596) 评论(0) 推荐(2)
摘要:管道是单向的字节流,它将某个进程的标准输出连接到另一个进程的标准输入。管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。管道和有名管道的读写规则是在程序中应用它们的关键。管道相关的概念在linux中管道是通过指向同一个临时的VFS inode的两个file数据结构来实现的,此VFSinode指向内存中的同一个物理页面。这就隐藏了读写管道和读写普通文件的差别。管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(704) 评论(0) 推荐(0)
摘要:linux中memset的正确用法【起因】希望对各种类型的数组进行初始化,避免野值【函数头文件】提示:在linux中可以在terminal中输入 "man memset"进行查询 #include void*memset(void *s, int c, size_t n);【使用说明】Thememset() functionfills thefirst nbytesof thememory area pointed to by s with theconstantbytec. 【错误用法】 int array[10]; memset(array,1,10);//或者mems 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(5411) 评论(1) 推荐(1)
摘要:read函数从打开的设备或文件中读取数据。#includeunistd.h>ssize_t read(intfd,void*buf,size_tcount);描述:参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位置向后移。(注意:这个读写位置和使用C标准I/O库时的读写位置有可能不同,这个读写位置是记在内核中的,而使用C标准I/O库时的读写位置是用户空间I/O缓冲区中的位置。)返回值:若成功返回读到的字节数;若已到达文件结尾返回0;若出错返回-1;注:有多种情况会出现实际读到的字节数少于要求读的字节数(count)。●读普通文件时,在读到要求的字节 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(489) 评论(0) 推荐(0)
摘要:Samba是Ubuntu和Windows进行网络共享的工具,比如分享打印机,互相之间传输资料文件。安装sambasudo apt-get install samba查看samba是否安装成功sudo dpkg -l samba*Desired=Unknown/Install/Remove/Purge/Hold|Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)||/Name... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(248) 评论(0) 推荐(0)
摘要:原文地址:【转】教你如何实现linux和Windows之间的文件共享,samba的安装与配置作者:铅笔小蜡本人在虚拟机下装fedora13,已经实现。1. 首先检查os是否安装好了samba。[root@localhost /]# rpm -qa | grep smb如果出现下面三行内容,则表示已经安装好了Samba:libsmbios-libs-0.13.10-1.fc8libsmbios-bin-0.13.10-1.fc8pam_smb-1.1.7-7.2.2如果没显示,可以进行安装,方法如下:#yum install samba*即可安装完毕!2. 进入samba目录[root@l... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(155) 评论(0) 推荐(0)
摘要:Abstract 在嵌入式开发中有宿主机和目标机之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。 TFTP服务器作为工作于宿主机的软件,主要提供对目标机的主要映像文件的下载工作。Solution一.TFTP服务器的安装 利用以下命令就可以看到TFTP服务器已启动,则不用安装[root@localhost Server]# netstat -a |grep tftpudp00*:tftp*:* 若没有安装,在Redhat Enterprise Linux5的安装光盘中有RPM安装包,挂在光盘后进入到文件夹,找到相应的安装包。[root@loca... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(122) 评论(0) 推荐(0)
摘要:用过Keil和IAR,个人感觉是IAR还是很不错的。下载地址是:http://files.iar.com/ftp/pub/box/CD-EWARM-6301-3142.zipV6.30.1(该地址看着像是IAR网站的,不知是不是O(∩_∩)O~)下面再给大家一些以往的版本下载地址http://files.iar.com/ftp/pub/box/CD-EWARM-6214-2946.zipV6.21.4版本http://files.iar.com/ftp/pub/box/CD-EWARM-6211-2846.zipV6.21.1版本(下面大家应该知道从哪里看版本了吧,呵呵)http://f... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(282) 评论(0) 推荐(0)
摘要:1、基础阶段话说06年第一份工作从事的是PLC开发,用protel画原理图和PCB,写AVR单片机程序,焊焊板子,还去过华强北买器件,比较杂,但是接触面比较广,为进一步学ARM打下了基础。期间不甘心只停留在AVR单片机层次,买了邵贝贝的《uCOS-II嵌入式操作系统》,看了4-5遍,弄懂它的原理,还看了陈明计的《SmallRTOS嵌入式操作系统》,之后自己写了一个AVR的时间片调度器。2、接触ARM08年4月份换了工作,搞B超,接触三星的S3C2410,看2410的数据手册,开始接触到ARM的32个寄存器、中断管理、MMU、7种工作模式,还真的晕了好长一段时间,模模糊糊,弄不懂,挺痛苦的... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(172) 评论(0) 推荐(0)
摘要:1 FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。2CPLD更适合触发器有限而乘积丰富的结构,更适合完成复杂的组合逻辑;FPGA更适合于触发器丰富的结构,适合完成时序逻辑。3cpld连续式布线结构决定了他的时序均匀的可预测的,而fpga的分段式布线结构决定了其延时的不可预测性。cpld比fpga速度快。4在编程上fpga比cpld具有更大的灵活性。cpld通过修改具有固定内部电路的逻辑功能来编程,fpga主要通过改变内部连线的布线来编程;fpga可在逻辑门下编程,而cpld实在逻辑块编程。5在编程方式上,cpld主要是基于eepROM或flash存储器编程,编程次数可达一... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(756) 评论(0) 推荐(0)
摘要:idata是51系列单片机能识别的存储器类型之一,固定指前面0x00-0xff的256个字节的片内RAM,其中前128字节和data的128字节完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:movx ACC,@Rx。 data:直接寻址的片内RAM区低128B(00H~7FH) bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问 idata:单片机间接访问的片内RAM区,允许访问全部片内RAM pdata:Ri间接访问的片外RAM的低256B(00H~FFH) xdata:用DPTR间接访问的片外RAM,允许访... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(547) 评论(0) 推荐(0)
摘要:原文地址:C51串口的SCON寄存器及工作方式作者:batistar一,串行口控制寄存器SCON它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如下表:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位,其定义如下:SM0、SM1工作方式功能描述波特率0 0方式08位移位寄存器Fosc/120 1方式110位UART可变1 0方式211位UARTFosc/64或fosc/321 1方式311位UART可变其中fosc为晶振频率SM2:多机通讯控制位。在方式0时,SM2一定要等于0。在方式1中,当(S... 阅读全文
posted @ 2013-12-02 09:09 haotianling 阅读(1033) 评论(0) 推荐(0)