03 2013 档案

摘要:转自: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 阅读(460) 评论(0) 推荐(0)
摘要:在arm开发板上运行在宿主机上交叉编译的程序,出现提示:-/sh: ./程序名 :not found。 看了下开发板上的lib目录,发现是没有共享库。 转到宿主机上,通过arm-linux-readelf -d 程序名 来查看所需要的共享库 将交叉编译工具链目录下相应的共享库拷贝到目标机的/lib目录下。 详细用法可通过arm-linux-readelf --help 查看。 阅读全文
posted @ 2013-03-17 18:02 wust.zjf 阅读(568) 评论(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 阅读(736) 评论(0) 推荐(0)
摘要:参考资料:韦东山编《嵌入式linux应用开发完全手册》 source insight的强大我就不说了,谁用谁知道,但强大功能的背后都有一套复杂的使用方法,动辄几十页的说明文档看着就头疼,真正常用的功能就那么几个,在此介绍下针对嵌入式linux爱好者的souceinsight的快速入门,希望对大家有用。 source insight 是windows下非常强大的程序代码阅读和编辑工具。特别是阅读程序中的某个宏或函数时,需要了解该函数的原型却不知道该函数是在本文件还是头文件中定 义的,这时可利用source insight把该文件和用到的头文件添加到一个项目中,阅读程序文件时,只用单击某函数或宏, 阅读全文
posted @ 2013-03-16 23:34 wust.zjf 阅读(1273) 评论(0) 推荐(1)
摘要:转自:http://www.embedu.org/Column/Column476.htm 从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用 层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用 class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下: struct class *myclass ; class_create(THIS_MODULE, “my_device_d... 阅读全文
posted @ 2013-03-16 20:14 wust.zjf 阅读(672) 评论(0) 推荐(0)
摘要:main.c :10:2 warning: no newline at the end of file修复这个警告,在文件结尾回车一下就行了。可以很少会有人去仔细探究,为什么gcc会给出这么一个警告?原因其实也很简单,因为标准规定如此。C99第5.1.1.2节这样写道:Each instance of a backslash character (/) immediately followed by a new-line character is deleted, splicing physical source lines to form logical source lines.Only 阅读全文
posted @ 2013-03-16 19:47 wust.zjf 阅读(234) 评论(0) 推荐(0)
摘要:转自:http://blog.chinaunix.net/uid-9525959-id-2001831.htmlLinux中ELF格式文件介绍ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定 义和gnu工具链对它的支持使它十分灵活,它保存的足够了系统相关信息使它能支持不同平台上的交叉编译和交叉链接,可移植性很强.同时它在执行中支持动态 链接共享库。通过本文,可以大致了解Linux系统中ELF格式文件的分类,组成,作用,以及其中包含的内容。另外后 阅读全文
posted @ 2013-03-16 15:10 wust.zjf 阅读(840) 评论(0) 推荐(0)
摘要:本文转自《S3C2410完全开发手册》在开始后续实验之前,我们得了解一下arm-linux-ld连接命令的使用。在上述实验中,我们一直使用类似如下的命令进行连接:arm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_tmp.o我们看看它是什么意思:-o选项设置输出文件的名字为led_on_c_tmp.o;“--Ttext 0x00000000”设置代码段的起始地址为0x00000000;这条指令的作用就是将crt0.o和led_on_c.o连接成led_on_c_mp.o可执行文件,此可执行文件的代码段起始地址为0x00000 阅读全文
posted @ 2013-03-16 11:03 wust.zjf 阅读(6175) 评论(0) 推荐(0)
摘要:我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:1)预处理(Pre-Processing)2)编译(Compiling)3)汇编(Assembling)4)链接(Linking) Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,. 阅读全文
posted @ 2013-03-16 10:59 wust.zjf 阅读(1233) 评论(0) 推荐(0)
摘要:Mov 是把立即数赋给一个寄存器,但对立即数的范围有要求。只能是由8bit连续有效位通过偶数次移位能得到的数。如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值。LDR除了普通的读数之外,也有给寄存器赋立即数的功能。你只要写 LDR R0,=0xabcdef它没有立即数范围的限制。因为这是一条伪指令。如果立即数在MOV的要求内,那就用一条汇编来实现。如果不在Mov的范围内,就用其它方式实现,如变成两条指令,或从PC偏移地址读一个32位数给寄存器。MOV是从一个寄存器或者移位的寄存器或者立即数的值传递到另外一个寄存器从本质上是寄存器到寄存器的传递,为什么会有立即数,其实也是有限制的立即 阅读全文
posted @ 2013-03-16 00:37 wust.zjf 阅读(381) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/ce123/article/details/6971544详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始 的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令所有的子民吃鸡蛋的时候,必须 先打破鸡蛋较小的一端,违令者重罚。然后老百姓对此法令极为反感,期间发生了多次叛... 阅读全文
posted @ 2013-03-15 20:52 wust.zjf 阅读(266) 评论(0) 推荐(0)
摘要:转自:http://www.ibm.com/developerworks/cn/linux/l-kdb/index.html调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题。但是,Linux 系统的开发者出于保证内核代码正确性的考虑,不愿意在 Linux 内核源代码树中加入一个调试器。他们认为内核中的调试器会误导开发者,从而引入不良的修正[1]。所以对 Linux 内核进行调试一直是个令内核程序员感到棘手的问题,调试工作的艰苦性是内核级的开发区别于用户级开发的一个显著特点。尽管缺乏一种内置的调试内核的有效方法,但是 Linux 系统在 阅读全文
posted @ 2013-03-15 12:46 wust.zjf 阅读(2806) 评论(0) 推荐(0)
摘要:感觉对这些概念很是搞不清.... 以下都是摘自百度百科,也没怎么整理,看完后,还是觉得有点搞不懂,有不少疑问需解决(最后)。 字节:数据存储是以“字节”(Byte)为单位,数据传输是以“位”(bit)为单位,一个位就代表一个0或1,每8个位(bit)组成一个字节 (Byte)。8bit=1Byte 注意1b不等于1B,数据传输是以10进制表示,数据存储是以2进制表示所以1Kb不等于 1KB,1Kb=1000bit,1KB=1024Byte=1024*8bit 在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。 字:在计算机中,一串数码作为一个整体来处. 阅读全文
posted @ 2013-03-15 10:45 wust.zjf 阅读(7652) 评论(0) 推荐(0)
摘要:事情应该被做得尽可能的简单,但不是任意地简单化。――爱因斯坦虽然做好的程序能按项目需求正确运行到最后一步,但在嵌入式系统开发中并不总是能成功的。由于低成本的需要硬件设计者几乎不可能设计出足够的内存和处理器性能来使得程序能被运行。当然,在软件开发过程中使得程序能够正确运行是更重要的。为了这点,通常有一个或更多的开发平台,这些平台拥有更多的内存和更快的处理器速度,能够使得软件正确运行,并且在项目开发最后阶段能够优化代码。总之,项目开发的最后目标是使得开发出的程序能够在配置低的设备上运行。1 提高代码的运行效率所有的C或C++编译器在一定程度上能够优化代码,然而,大部份的优化是基于运行速度和代码长度 阅读全文
posted @ 2013-03-11 02:14 wust.zjf 阅读(735) 评论(0) 推荐(0)
摘要:一、程序效率程序效率,是用执行的步骤(step)数――时间复杂度、占内存的多少来衡量的――空间复杂度。完成某项工作,执行的步骤(step)的次数最少、占用内存最小是程序员所追求的。特别是嵌入式系统的开发,内存等资源都是有限的。因此,提高效率的着眼点应该是减少执行次数减少占用空间二、效率改善的指导原则-满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率;如果程序的正确性、可靠性得不到保证,提高效率就失去了根本;如果程序的健壮性得不到保证,提高效率就失去了目标;如果程序的可读性得不到保证,提高效率就失去了方向;-以提高程序的全局效率为主,提高局部效率为辅;如何只从局部角度出发 阅读全文
posted @ 2013-03-10 13:39 wust.zjf 阅读(1193) 评论(0) 推荐(1)
摘要:我们使用top命令来查看CPU使用状况。top不会产生输出,屏幕内容保持不变。它刷新屏幕以显示新信息。因此,如果您只执行top并保持屏幕一直开启,则屏幕始终显示最新信息。退出top的命令为q,或者按下Ctrl-C.top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00 Tasks: 172 total, 1 running, 171 sleeping, 0 stopped, 0 zombieCpu(s): 0.2% us, 0.1% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% 阅读全文
posted @ 2013-03-10 11:12 wust.zjf 阅读(640) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/21aspnet/article/details/6729724文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取它的值的话需要访问两次内... 阅读全文
posted @ 2013-03-06 22:22 wust.zjf 阅读(213) 评论(0) 推荐(0)
摘要:转自:http://blog.163.com/xychenbaihu@yeah/blog/static/1322296552013023030673/敏捷精神:一种把以人为本、团队合作、快速响应变化和可工作的软件作为宗旨的开发方法一. 态度决定一切 选定了要走的路,就是选定了通往的目的地。1. 做事: 指责不会修复bug, 把矛头对准问题解决的方法,而不是人。一个重大的错误应该被当作是一次学习而不是指责他人的机会。 团队成员在一起工作,应相互帮助,而不是相互指责。2. 欲速则不达: 不要因为时间紧迫给自己找借口,而坠入快速简单的修复之中。在没有真正解理代码之前,不要急于进行bug修复。 必须. 阅读全文
posted @ 2013-03-06 20:43 wust.zjf 阅读(294) 评论(0) 推荐(0)
摘要:转自:http://blog.163.com/xychenbaihu@yeah/blog/static/1322296552012692314819/关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1) 无论在函数体内,类内,还是全局变量,全局静态变量,在程序启动的时候,静态变量,全局变量的空间已经分配好了。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限 阅读全文
posted @ 2013-03-06 20:25 wust.zjf 阅读(744) 评论(0) 推荐(0)
摘要:转自:http://yunli.blog.51cto.com/831344/248828goto 语句在C/C++语言中可谓是“臭名昭著”,乃至有的书(或公司的编程规范)提出禁用goto语句的说法。其结果就是,造成有的程序员一看到goto语句 在某程序中被使用,就本能地认为这个程序写得很“垃圾”。此外,也使得有些程序员因为使用了goto语句而觉得自己很不专业。其实,凡事都不能太偏 激,goto语句运用得好能大大地简化程序,以及提高程序的可读性和可维护性。在开始示例其好处之前,先用一些统计数据来说明goto语句并没有因为“臭 名昭著”而被抛弃,这些统计数据可能并不是百分之百的精确,但很具有说服力 阅读全文
posted @ 2013-03-06 13:30 wust.zjf 阅读(495) 评论(0) 推荐(0)
摘要:Linux下的静态链接库,做起来比较容易,只要将目标文件用ar打包就可以,下面写一下动态链接库的制作和使用方法,完全是根据个人理解和经验总结,有不对的地方还请大家指正。动态链接库的生成:代码上与写静态链接库没什么区别,主要是在编译时,以两个文件举例:/*mylib.h*/voidPrint();/*mylib.c*/#include<stdio.h>#include"mylib.h"voidPrint(){printf("Thisisinmylib\n");}编译方法如下:gcc -fpic -shared mylib.c -o mylib. 阅读全文
posted @ 2013-03-04 21:50 wust.zjf 阅读(477) 评论(0) 推荐(0)
摘要:Linux 中的应用程序以以下两种方式之一链接到外部函数:要么在构建时与静态库( lib*.a)静态地链接,并且将库代码包含在该应用程序的可执行文件里;要么在运行时与共享库( lib*.so)动态地链接。通过动态链接装入器,将动态库映射进应用程序的可执行内存中。在启动应用程序之前,动态链接装入器将所需的共享目标库映射到应用程序的内存,或者使用系统共享的目标并为应用程序解析所需的外部引用。现在应用程序就可以运行了。 先介绍静态库: 静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用“.a”作为文件的后缀。可以用ar这个程序来产生静态函数库文件。Ar 是archiver的缩写。.. 阅读全文
posted @ 2013-03-04 21:21 wust.zjf 阅读(252) 评论(0) 推荐(0)
摘要:从做完就在搞这个问题,一共有三种方案,dnw和dnw2还有usb2ram第一种需要加载驱动,后面两种需要安装libusb-dev.其中第二种的烧写速度很快,我都能听到电流声.但是也很不稳定.经常出现的提示是:"usb_bulk_write failed: Resource temporarily unavailable"从提示的信息来看是烧写的文件大于容量了.但是实际情况没有,原因不明.有人说是每次烧写都要重新插拔一次usb.usb2ram提示的信息是找不到设备,原因不明========================================使用dnw2经常出现的错 阅读全文
posted @ 2013-03-02 22:56 wust.zjf 阅读(848) 评论(0) 推荐(0)