把共享库(SO)加载到指定的内存地址

一位朋友最近遇到一个棘手的问题,希望把共享库(SO)加载到指定的内存地址,目的可能是想通过prelink来加快应用程序的起动速度。他问我有没有什么方法。我知道Windows下是可以的,比如在VC6里设置/base的值就行了,所以相信在linux下也是可行的。   VC有编译选项可以设置,猜想g...

2013-03-29 17:21:17

阅读数 1528

评论数 0

ELF动态库加载技术

库用于将相似函数打包在一个单元中。Linux支持两种类型的库:静态库(在编译时静态绑定到程序)和动态库(在运行时绑定到程序)。Linux系统使用的动态库是ELF格式,后缀名为so。 1 加载 动态库内部划分为段,段分为不同的类型:  PT_LOAD段:包含代码或数据,是需要被映射...

2013-03-29 17:20:34

阅读数 1703

评论数 0

如何使用autotools工具

autotools是系列工具,读者首先要确认系统是否装了以下工具(可以用which命令进行查看)。 autoscanaclocalautoheaderautomakeautoconf 使用autotools主要就是利用各个工具的脚本文件以生成最后的Makefile。其总体流程是这样的: 使...

2013-03-29 10:21:01

阅读数 879

评论数 0

Linux编程make命令

摘要:在开发一个系统时,一般是将一个系统分成几个模块,这样做提高了系统的可维护性,但由于各个模块间不可避免存在关联,所以当一个模块改动后,其他模块也许会有所更新,当然对小系统来说,手工编译连接是没问题,但是如果是一个大系统,存在很多个模块,那么手工编译的方法就不适用了。为此,在Linux系统中,专...

2013-03-29 10:19:51

阅读数 515

评论数 0

autotools使用

Makefile固然可以帮助make完成它的使命,但要承认的是,编写Makefile确实不是一件轻松的事,尤其对于一个较大的项目而言更是如此。那么,有没有一种轻松的手段生成Makefile而同时又能让我们享受make的优越性呢?本节要讲autotools系列工具正是为此而设的,它只需用户输入简单的...

2013-03-29 10:17:50

阅读数 630

评论数 0

POSIX定时器

最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。   创建一个定时器: int timer_create(c...

2013-03-28 17:55:48

阅读数 1685

评论数 0

VxWorks中Timer机制

[摘要] Timer是实时操作系统的一个重要组成部分。本文结合近阶段的学习和实验情况,对VxWorks中的时间函数和定时器作了一些探讨。主要介绍了Timer的机制,相关的函数,并给出了一些具体的例子。   一. Tick Tick是指每秒中定时器中断的次数。POSIX标准中,tick等于50...

2013-03-28 17:54:37

阅读数 9538

评论数 0

VxWorks下几种定时延时方法的小结

1 taskDelay taskdelay()提供了一个简单的任务睡眠机制,也常用于需要定时/延时机制的应用中。 它的格式是 STATUS taskDelay(int ticks   /* number of ticks to delay task */   ), 可以看出使用该函数实现延时...

2013-03-28 17:52:53

阅读数 1932

评论数 0

VXWORKS 几种定时机制

编程过程中,出于需要,大家或多或少要用到定时/延时。VxWorks下提供了几种定时/延时机制,根据收集的一些资料和VxWorks相关文档,在学习和上机实验的基础上,对它们的使用以及我所遇到的问题做一个总结,希望对大家能有所帮助。不正确之处,恳请斧正。A 1 taskDelay-k~ taskdel...

2013-03-28 17:50:54

阅读数 1809

评论数 0

小字节序和大字节序

小字节序:(比如x86体系) 数据的低字节放在低地址处,比如一个整型数0x12345678,在内存中的           分布为:                    -----------                    |    78   | xxxx_0000       ...

2013-03-28 17:50:05

阅读数 1194

评论数 0

vxImmrGet

*PBODR(vxImmrGet()) &= 0xfcff; *PBPAR(vxImmrGet()) &= 0xfffffcff; *PBDIR(vxImmrGet()) |= 0x00000300; vxImmrGet()应该是获取powerpc 的IMMR(Inte...

2013-03-28 17:29:20

阅读数 1622

评论数 0

汉字区位码对照表

汉字区位码对照表 a-bei bei--can can-chi chi-da da-dong dong-fei fei-ge ge-guo ha-huan huan-jia jia-jing jing-kao kao-lang lang-lin l...

2013-03-28 09:41:13

阅读数 3503

评论数 0

使用 rapidxml 做配置文件

对于配置文件,一般会选用ini,xml 等等的配置格式。如何快速高效的从文件内读取自己想要的信息是每个做配置文件想要达到的效果。对以小型开发我们并不用时用到msxml这种重量级的解析器。那样会给自己添麻烦的。这里我推荐大家使用rapidxml。 之前使用tinyxml 感觉还可以。后看了rapi...

2013-03-28 09:38:29

阅读数 1183

评论数 0

非阻IO与EWOULDBLOCK EAGAIN

非阻塞读写 默认 socket 是阻塞的,读写函数 read, readv, recv, recvfrom, recvmsg 以及 write, writev, send, sendto, sendmsg 都有可能会阻塞。可以将 socket 描述字设为非阻塞,这样,当 socket 描述字...

2013-03-27 17:49:46

阅读数 1058

评论数 0

Socket的send函数在执行时报EAGAIN的错误

Socket的send函数在执行时报EAGAIN的错误] 内容提要: 当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EGGAIN的错误。该错误产生的原因是由于send  函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspa...

2013-03-27 17:49:00

阅读数 858

评论数 0

epoll机制

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗...

2013-03-27 17:48:17

阅读数 678

评论数 0

source insight快捷键及使用技巧

source insight快捷键及使用技巧   退出程序                             : Alt+F4 重画屏幕                             : Ctrl+Alt+Space 完成语法        ...

2013-03-27 17:47:06

阅读数 444

评论数 0

framebuffer测试程序

#include     #include     #include     #include     #include #define fb_write16(b,addr) (*(volatile unsigned short int *) (addr) = (b)) ...

2013-03-27 17:45:29

阅读数 616

评论数 0

vxworks点滴记录

MPC852---大端模式   对于vxWork5.5来说:  vxWorks操作系统是一个进程,其间的所有任务是该进程内的线程,因为他们有统一的地址空间。没有main函数。。 对于vxWorks6来说:  你可选支持多个进程,每个进程由独立的地址空间,有堆。。。有一个内核进...

2013-03-27 17:43:51

阅读数 1660

评论数 0

Makefile.am

一般格式 文件类型 书写格式 可执行文件 bin_PROGRAMES = foo foo_SOURCES = xxxx.c foo_LDADD = foo_LDFLAGS = foo_DEPENDE...

2013-03-27 17:42:10

阅读数 684

评论数 0

提示
确定要删除当前文章?
取消 删除