摘要: 转自:http://www.cnblogs.com/yanlingyin/archive/2012/04/23/2466141.htmlLinux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相 阅读全文
posted @ 2013-05-04 00:56 wust.zjf 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 典型坐姿如果你像大多数程序员一样,那很可能这(上图)就是你一天工作中大部分时间里身体保持的样子,耷肩勾背持续数小时趴在电脑桌前。这很不舒服。我知道,因为我也是这样。头向前倾(1),耷拉着肩膀(2),背弓着(3),上身和屁股的角度小于90度(4)。大量数据证明,这样坐着会实实在在的损害你的健康。这种姿势会引起头痛和颈痛,诱发肠胃病,容易形成啤酒肚,甚至造成你的工作效率低下,严重的影响你生活工作中的自信。为了避免这些不良问题,很多专家给出了很多建议来改进你的坐姿。正确的坐姿这是教科书上“正确”的坐姿的样子。显示器的高度刚好位于你的水平视线的下方,这样你的头颈是直的(1)。肩膀向后,背稍微有些弧度( 阅读全文
posted @ 2013-04-22 21:53 wust.zjf 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 编者按:此文作者 Leo Widrich 是 Buffer 的联合创始人兼 CMO,他在文章中整理了关于睡眠的一些最新研究进展,给出了一些建议,希望能帮到那些总是睡不好的创业者和其他朋友们。人是铁,饭是钢,吃是真的刚需,但是你可知道平均算下来,一生花在睡觉上的时间有 24 年,比吃饭多了去了。睡是如此重要,但是我们对睡眠的了解其实很少,人类到底该怎么睡,睡多久,跟谁睡,这些问题其实有很多事不清楚的。我们掌握的关于睡眠的知识中,很大部分都来自 25 年前的研究。8 小时睡眠?传说而已!“所有人都告诉我们,每天至少应该睡 8 小时,其实没有任何证据能证明其必要性。”这句话是 Daniel 在一次采 阅读全文
posted @ 2013-04-22 21:10 wust.zjf 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.eefocus.com/book/09-08/793361276059991.htmlThumb 指令可以看作是ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有16 位的代码密度。Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持ARM 指令集。因此,Thumb 指令只需要支持通用功能,必要时可以借助于完善的ARM 指令集,比如,所有异常自动进入ARM 状态。 在编写Thumb 指令时,先要使用伪指令CODE16 声明,而且在ARM 指令中要使用BX指令跳转到Thumb 指令,以切换处理器状态。编写ARM 指令时,则可使用 阅读全文
posted @ 2013-04-03 22:37 wust.zjf 阅读(1865) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.eefocus.com/article/09-08/79335s.htmlA.2.5 ARM 协处理器指令 ARM 支持协处理器操作,协处理器的控制要通过协处理器命令实现。表A-7给出全部的ARM协处理器指令。表A-7 ARM 协处理器指令 CDP 协处理器数据操作指令。ARM 处理器通过CDP 指令通知ARM 协处理器执行特定的操作。该操作由协处理器完成,即对命令的参数的解释与协处理器有关,指令的使用取决于协处理器。若协处理器不能成功地执行该操作,将产 生未定义指令异常中断。指令格式如下: CDP{cond} coproc,opcodel,CRd,CRn,CRm{ 阅读全文
posted @ 2013-04-03 22:35 wust.zjf 阅读(425) 评论(0) 推荐(1) 编辑
摘要: 转自:http://www.eefocus.com/article/09-08/79334s.htmlA.2.1 指令格式 (1)基本格式 <opcode>{<cond>}{S} <Rd>,<Rn>{,<opcode2>} 其中,<>内的项是必须的,{}内的项是可选的,如<opcode>是指令助记符,是必须的,而{<cond>}为指令执行条件,是可选的,如果不写则使用默认条件AL(无条件执行)。 opcode 指令助记符,如LDR,STR 等 cond 执行条件,如EQ,NE 等 S 是否影响CPS 阅读全文
posted @ 2013-04-03 22:34 wust.zjf 阅读(670) 评论(0) 推荐(1) 编辑
摘要: 转自:http://www.nenew.net/ubuntu-grub-cfg.html奶牛用的第一个ubuntu版本是9.04,那时候启动配置文件还是menu.lst,到了ubuntu9.10的时候就更名为grub.cfg 了,ubuntu 10.04依旧沿用的是grub.cfg,但是这个文件的内容变更并不是那么大。在ubuntu中,grub.cfg(menu.lst)就相当于 windows系统下的boot.inf文件,记录着一些启动配置信息,在这里奶牛为大家介绍一些简单的设置规则。打开命令行, sudo gedit /boot/grub/grub.cfg (或者 sudo gedit / 阅读全文
posted @ 2013-03-24 22:40 wust.zjf 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 在arm开发板上运行在宿主机上交叉编译的程序,出现提示:-/sh: ./程序名 :not found。 看了下开发板上的lib目录,发现是没有共享库。 转到宿主机上,通过arm-linux-readelf -d 程序名 来查看所需要的共享库 将交叉编译工具链目录下相应的共享库拷贝到目标机的/lib目录下。 详细用法可通过arm-linux-readelf --help 查看。 阅读全文
posted @ 2013-03-17 18:02 wust.zjf 阅读(538) 评论(0) 推荐(0) 编辑
摘要: Segment fault 之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。来自:http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_700.html#comment背景最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛的一个问题。不过,目前写一个一千行左右的代码,也很少出现段错误,或者是即使出现了,也很容易找出来,并且处理掉。那什么是段错误?段错误为什么是个麻烦事?以及怎么发现程序中的段错误以及如何避免发生段错误呢?一方面为了给自己的学习做个总结,另一方面由 阅读全文
posted @ 2013-03-17 11:54 wust.zjf 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 参考资料:韦东山编《嵌入式linux应用开发完全手册》 source insight的强大我就不说了,谁用谁知道,但强大功能的背后都有一套复杂的使用方法,动辄几十页的说明文档看着就头疼,真正常用的功能就那么几个,在此介绍下针对嵌入式linux爱好者的souceinsight的快速入门,希望对大家有用。 source insight 是windows下非常强大的程序代码阅读和编辑工具。特别是阅读程序中的某个宏或函数时,需要了解该函数的原型却不知道该函数是在本文件还是头文件中定 义的,这时可利用source insight把该文件和用到的头文件添加到一个项目中,阅读程序文件时,只用单击某函数或宏, 阅读全文
posted @ 2013-03-16 23:34 wust.zjf 阅读(1205) 评论(0) 推荐(1) 编辑