上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 转自: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 阅读(648) 评论(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 阅读(201) 评论(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 阅读(778) 评论(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 阅读(5948) 评论(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 阅读(1165) 评论(0) 推荐(0) 编辑
摘要: Mov 是把立即数赋给一个寄存器,但对立即数的范围有要求。只能是由8bit连续有效位通过偶数次移位能得到的数。如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值。LDR除了普通的读数之外,也有给寄存器赋立即数的功能。你只要写 LDR R0,=0xabcdef它没有立即数范围的限制。因为这是一条伪指令。如果立即数在MOV的要求内,那就用一条汇编来实现。如果不在Mov的范围内,就用其它方式实现,如变成两条指令,或从PC偏移地址读一个32位数给寄存器。MOV是从一个寄存器或者移位的寄存器或者立即数的值传递到另外一个寄存器从本质上是寄存器到寄存器的传递,为什么会有立即数,其实也是有限制的立即 阅读全文
posted @ 2013-03-16 00:37 wust.zjf 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/ce123/article/details/6971544详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始 的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令所有的子民吃鸡蛋的时候,必须 先打破鸡蛋较小的一端,违令者重罚。然后老百姓对此法令极为反感,期间发生了多次叛... 阅读全文
posted @ 2013-03-15 20:52 wust.zjf 阅读(249) 评论(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 阅读(2631) 评论(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 阅读(7173) 评论(0) 推荐(0) 编辑
摘要: 事情应该被做得尽可能的简单,但不是任意地简单化。――爱因斯坦虽然做好的程序能按项目需求正确运行到最后一步,但在嵌入式系统开发中并不总是能成功的。由于低成本的需要硬件设计者几乎不可能设计出足够的内存和处理器性能来使得程序能被运行。当然,在软件开发过程中使得程序能够正确运行是更重要的。为了这点,通常有一个或更多的开发平台,这些平台拥有更多的内存和更快的处理器速度,能够使得软件正确运行,并且在项目开发最后阶段能够优化代码。总之,项目开发的最后目标是使得开发出的程序能够在配置低的设备上运行。1 提高代码的运行效率所有的C或C++编译器在一定程度上能够优化代码,然而,大部份的优化是基于运行速度和代码长度 阅读全文
posted @ 2013-03-11 02:14 wust.zjf 阅读(660) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页