11 2009 档案
摘要:经过1个月时间的优化,AMR-WB解码性能总体提高了近10倍。1. 从ITU官方网站下载代码,在ADS1.2上调试通过。对于测试码流为23.85kbps的向量tst_m8.cod,在ARM926EJS平台上,性能为105MIPS,156MCPS。2. 根据profile的测试结果,占时间最大的是那些基本算术运算的操作。用ARMv5的内联汇编替换掉以后,性能大概为52MIPS, 70MCPS。3. 这时占时间的函数 Filt_7k Syn_filt_32 Filt_6k_7k Pred_lt4 Syn_filt Oversamp_16k 这几个函数都需要自己写汇编,只有汇编才能体现优化思路,C.
阅读全文
摘要:要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。一个ARM程序包含3部分:RO,RW和ZIRO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO就是readonly,RW就是read/write,ZI就是zeroARM映像文件的组成所谓ARM映像文件就是指烧录到ROM中的bin文件,也成为image文件。以下用Image文件来称呼它。Image文件包含了RO和RW数据。之所以Image文件不包含ZI数据,
阅读全文
摘要:1.r0,r1,r2,r3,在调用函数时,用来存放前4个函数参数和返回值,r4-r11,r14,在调用函数时必须保存这些寄存器到堆栈当中。如果函数的参数多于4个,则多余参数存放在堆栈当中,即sp,sp+4,sp+8,…依次类推。2.函数内部通用的入栈出栈代码可以为:STMFD sp!,{r4-r11,lr}// body of ASM codeLDMFD sp!,{r4-r11,pc}如果函数并没有用到那么多的寄存器,则没有必要把所有的寄存器入栈。如果函数要调用子函数,则r0,r1,r2,r3,r12,r14这些寄存器里面值将被改变,必须小心处理这些寄存器,一种可行的方法是,修改被调用子函数的
阅读全文
浙公网安备 33010602011771号