自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 剑指Offer:名企面试官精讲典型编程题

111

2011-12-15 12:21:38 1811

原创 10101010

 尽可能地采用内联函数.而不用一般的函数,可以提高代码的集成度。 程序最后至少要加上一个空行,编译器当这个空行为结尾提示符。 大胆使用位运算符

2011-06-21 15:56:00 436

原创 99999

dsp软件开发的第一步是对可用存储空间的分析.对于dsp,有两种存储空间,一种是物理空间,另一种是映射空间。物理空间是dsp上可以存放数据和程序的实际空间,数据和程序最终放到物理空间上,并不能直接访问它们。要访问物理空间,必须借助于映射空间才行但是映射空间本身是个“虚”空间。所以,往往是映射空间远远大于实际的物理空间。只有那些物理空间映射到的映射空间才是真正可访问的存储空间。 尽可能地减少除法运算

2011-06-21 15:55:00 606

原创 88888

不影响执行速度的情况下,可使用c/c++语言提供的函数库,也可以自己设计函数,这样更易于优化处理,如:进行绝对值运算,可以调用fabs或abs函数,也可以使用ifelse判断语句来替代。 要非常谨慎地使用局部变量,根据自己项目开发的需要,应尽可能多地使用全局变量和静态变量。 一定要非常重视中断向量表的问题,很多朋友对中断向量表的调用方式不清楚。其实中断向量表中的中断名是任意取定的,dsp只认地址.

2011-06-21 15:53:00 527

原创 77777777

区别,宏函数占用了大量的空间,而函数占用了时间。函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要一些CPU时间。而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,在频繁调用同一个宏函数的时

2011-06-21 15:50:00 808

原创 6666666

 方法G调用了基本的取模函数和除法函数,既有函数调用,还有很多汇编代码和寄存器参与运算;而方法H则仅仅是几句相关的汇编,代码更简洁,效率更高。当然,由于编译器的不同,可能效率的差距不大,运用这招需要注意的是,因为CPU的不同而产生的问题。在PC上用这招编写的程序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。

2011-06-21 15:49:00 402

原创 555555555

  方法I是最常见的方法,使用了1024次循环;方法J则根据平台不同做了区分,在ARM平台下,用嵌入汇编仅用128次循环就完成了同样的操作。不用标准的内存拷贝函数呢?这是因为在源数据里可能含有数据为0的字节,标准库函数会提前结束而不会完成我们要求的操作。这个例程典型应用于LCD数据的拷贝过程。根据不同的CPU,可以大大提高程序执行的效率。,使用了嵌入汇编,便限制了程序的可移植性,使程序在不同平台移

2011-06-21 15:47:00 265

原创 4444444

方法Iint I;for (I =0 ;I*(string2 + I) = *(string1 + I)方法J#ifdef _PC_int I;for (I =0 ;I*(string2 + I) = *(string1 + I);#else#ifdef _ARM___asm{ MOV R0,string1MOV R1,string2MOV R2,#0loop:LDMIA R0!, [R3-R

2011-06-21 15:46:00 803

原创 333333

  实现高效的C语言编写的第三招——使用位操作,减少除法和取模的运算。  在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。举例如下:方法Gint I,J;I = 257 /8;J = 456 % 32;方法Hint I,J;I = 257 >>3

2011-06-21 15:44:00 370

原创 222222

方法C:#define bwMCDR2_ADDRESS 4#define bsMCDR2_ADDRESS 17int BIT_MASK(int __bf) {return ((1U }void SET_BITS(int __dst, int __bf, int __val){__dst = ((__dst) & ~(BIT_MASK(__bf))) | /(((__val) }SET_BITS(M

2011-06-21 15:43:00 445

原创 111

第1招:以空间换时间  计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。例如:字符串的赋值。方法A,通常的办法:#define LEN 32char string1 [LEN];memset (string1,0,LEN);strcpy (string1,“This is a example!!”);方

2011-06-21 15:42:00 174

Linux0.11(v3.0)内核完全注释3.0

Linux0.11(v3.0)内核完全注释3.0,详细的内核注释

2011-10-05

Thinkinginembedded(嵌入式编程思想)

Thinkinginembedded(嵌入式编程思想)很好的东西,对基础讲的很好,对细节分析到位

2009-06-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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