
C/C++
leolinux
嵌入式、计算机网络
展开
-
C 程序优化技术
http://blog.chinaunix.net/u/22878/showart_386949.html<br />工作阶段:工作流程一般分为三个阶段。<br /> 阶段一:直接按照需要用C语言实现功能。在实际的DSP应用中,许多算法都是非常复杂,直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般都采用先用C语言来实现,然后编译运行,利用C64X开发环境的profile clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。<br />原创 2010-09-27 16:06:00 · 1032 阅读 · 0 评论 -
使用ld的wrap选项替换已有库函数
http://www.lingcc.com/2011/12/23/11907/很多时候,可能需要替换已有库函数,或者对其库函数进行修改。为了避免对那些静态链接库或者动态链接库文件大动干戈,我们可以使用ld提供的–wrap选项。例如,想把所有的malloc函数都作修改,以便让malloc出的内存都是32字节对齐的。我们可以给ld传选项“wrap=malloc”, 告诉转载 2011-12-26 20:54:01 · 2812 阅读 · 0 评论 -
对volatile变量的量化小分析
下面是一段简单的代码,试图对volatile进行一些量化分析。变量foo是一个static变量。下面分析了non volatile和volatile的不同的汇编语言结果。static int foo;void bar(void) {foo = 0;while (foo != 255);}.text.align 4,0×90.globl _bar_bar:原创 2011-10-22 09:01:34 · 582 阅读 · 0 评论 -
一步一步搭建mips-linux-gcc-4.4.0交叉编译工具
http://blog.sina.com.cn/circlewood2010一步一步搭建mips-linux-gcc-4.4.0交叉编译工具 一、准备工作: 工作环境:宿主机:ubuntu10.04 linux-2.6.32-24-generic i686转载 2011-10-03 15:29:53 · 15321 阅读 · 1 评论 -
反汇编C语言的函数
objdump -D main > dump.txt | grep function原创 2011-09-30 08:55:12 · 580 阅读 · 0 评论 -
linux gcc 编译时头文件和库文件搜索路径
<br /> <br />一、头文件<br /> <br />gcc 在编译时寻找所需要的头文件 :<br /> <br />※搜寻会从-I开始<br /> <br />※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH<br /> <br />※再找内定目录<br />/usr/include <br />/usr/local/include<br />/usr/lib/gcc-lib/i386-linux/2.95.原创 2011-05-20 08:55:00 · 492 阅读 · 0 评论 -
计算机相关试题
<br /> <br /> <br />gcc pushes the arguments in a particular order. What is the order and why?<br /> <br />Answer: gcc pushes arguments in reverse order, last argument first. Because the stack grows down on the x86 (and PDP-11), this means that the first a原创 2011-02-27 21:26:00 · 402 阅读 · 0 评论 -
C 程序性能优化
<br /> 一段c程序,功能开发完成,开始性能优化。<br /> 当然是先用 -pg 编译,再gprof看“热点”在哪里,很快找到,是计算hash值的函数,于是换了个更快的hash函数——fnv (http://isthe.com /chongo/tech/comp/fnv/),速度提高了一些。接着把该hash函数内联(inline),程序又快了一些。内联函数不是解决性能问题的灵丹妙药,因为inline之后gprof就看不到该函数的调用情况,也就不好找真正的性能瓶颈了。<br /><转载 2011-02-27 19:34:00 · 721 阅读 · 0 评论 -
拦截malloc、free等库函数(malloc挂钩)
<br />参考:http://www.gnu.org/software/libtool/manual/libc/Hooks-for-Malloc.html<br /> 3.2.2.10 Memory Allocation Hooks<br />The GNU C library lets you modify the behavior of malloc, realloc, and free by specifying appropriate hook functions. You can use the原创 2011-01-05 11:21:00 · 3282 阅读 · 0 评论 -
嵌入式 C 语言学习体会
<br /><br />第一、真正深刻地认识存储器<br /> 冯诺伊曼说过“程序等于算法加数据结构”,算法是什么?算法是通过存储在存储器中的程序代码实现的;数据结构又是什么?数据结构是存放在存储器中的各种类型的数据;程序本质上就是处理器通过执行存放在存储器中的程序代码对存放在存储器中的数据进行操作和变换的过程。在这个过程中除了处理器本身外,最核心的环节就是存储器。因为不管是程序的可执行代码还是数据都是存放在存储器中的。撇开代码、变量、数组、指针、结构、堆栈等等这些软件中的各个元素的表象,剩下的本质就原创 2010-12-27 15:30:00 · 600 阅读 · 0 评论 -
去除 Cygwin 编译的程序对Cygwin1.dll的依赖
http://hi.baidu.com/%B6%AC%D2%E2%BE%D3/blog/item/7f1c1301135ae009728da510.html 用以下命令:retsuff: lex.o retsuff.o main.o name.o$(CC) -o ./retsuff name.o retsuff.o lex.o main.o生成的一个 retsuff.exe 在转载 2012-07-17 11:41:39 · 3281 阅读 · 0 评论