DM642 优化
文章平均质量分 72
henhen2002
Chao Zuo received B. Sc.degree from the School of Elec. Eng. & Opto.Tech., Nanjing Univ. of Sci. and Tech. in 2009. And he is currently pursuing his Ph.D. degree in the School of Elec. Eng. & Opto. Tech., NUST, Nanjing, P.R. China. He is interested
展开
-
C6XX优化经验总结
一、c6x的编译的常用选项(一)c6x的编译程序为“cl6x.exe”使用的方法Cl6x [options] [filenames]Cl6x: 编译程序Options: 编译选项Filenames: C或汇编源文件说明:编译选项是一个字母或者两个字母,对大小写不敏感。编译选项的前面需要有一个“-”符号。一个字母的选项可以合并在一起。比如“-sgq”与“-s -g -q”相同。两转载 2009-09-07 07:00:00 · 1018 阅读 · 1 评论 -
关于编译优化选项o3的问题
今天我在优化代码的时候。出现了问题。如下://----------------PERIPH.C---------------------/* 读寄存器,参数 地址 返回内容*/unsigned int ReadCMD(unsigned char addr){ unsigned int temp; XCS_L(); WriteByte(0x03);原创 2009-11-26 19:50:00 · 3260 阅读 · 0 评论 -
DSP 数据的定标
DSP 数据的定标一 DSP定点算数运算1 数的定标在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。如无特别说明,本书均以16位字长为例。DSP芯片的数以2的补码形式表示。每个16位数用一个符号位来表示数的正负,0表示数值为正,l则表示数值原创 2009-10-08 13:21:00 · 3963 阅读 · 0 评论 -
DM642下浮点转定点操作
float x = 0.23; float y = 0.14; float z; int Qx; int Qy; int Qz; //数据转化部分 Qx = (int)(x*1048576); //转化成Q20格式,DM642支持Q31 Qy =原创 2009-10-07 22:36:00 · 2587 阅读 · 0 评论 -
DATA_SECTION pragma
ti的帮助文档里是这么讲的:The DATA_SECTION pragma allocates space for the symbol in a section called section name. The syntax for the pragma in C is:#pragma DATA_SECTION (symbol, "section name");The syntax for th原创 2009-09-30 08:09:00 · 4329 阅读 · 1 评论 -
DSP优化,通用的调整性能的策略
1 通用的调整性能的策略1.1 选择恰当的编译器选项必须要用的选项 –O[2|3] 可以使用-mt(要确保写的数据和读的数据在内存空间上没有重合) -mh Specify speculative load byte count threshold 如果源代码里含有永远不会执行的代码,使用选项-mo Place each function in a separate原创 2009-09-17 15:08:00 · 3792 阅读 · 0 评论 -
DSP中字节/字对齐的问题
DSP对于char,short,int的字节对齐是强制的,表现为char按字节对齐,int按4字节对齐,short按2字节对齐,则当char*指向0x1时,使用(int*)char*,则实际引用的是0位置,当*(int*)char*=xx时,就会将原先存在0x1中的数据冲掉,造成错误。看下面的例子:char * size_1;int * size_4;size_1 = (char*)0原创 2009-09-16 17:12:00 · 5924 阅读 · 0 评论 -
Ti IMGLIB库简介
Image Librapy使用 通常开发一款图像采集和处理产品的流程是熟悉硬件平台的特性、根据CPU的特点优化算法,最后调试整个系统软件。由于大多数厂家CPU支持的汇编语言不相同,尤其DSP芯片的汇编语言,如TI公司有自己的甚长汇编指令集,而AD公司也有自己的汇编指令集。通常只有根据各个厂家的CPU内核特点和汇编指令特点,才可以更好地优化图像算法,而且往往这方面影响着产品的开发进度,影转载 2009-09-15 13:15:00 · 2753 阅读 · 0 评论 -
DSP程序优化方法
1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,原创 2009-09-14 21:29:00 · 3599 阅读 · 0 评论 -
从dct简单了解一种线性汇编优化方法
一直在看这方面的东西,自己也写过代码,但是始终都没有掌握其中的真谛。其实现在也是半懂不懂,然而还是感觉有些灵感了,写起代码也不那么慢了。今天下午就调试了四个代码,前提是这四个函数前几天是看过的:dct4x4dc,idct4x4dc,quant4x4dc和iquant4x4dc。效果dct变换还是很好的,基本提高了一半的效率,而iquant就没甚么改进,而且quant还不如以前了,原因估计是代码太长转载 2009-09-14 16:55:00 · 1586 阅读 · 0 评论 -
CCS中时间统计方法(profile)
我们以实例来介绍在CCS里如何统计程序的运行时间,内容修改自CCS的教程,程序见后面:我们将使用CCS的profiling功能来统计标准puts()函数的执行情况。1. 选择File→Reload Program。2. 选择Profiler→Enable Clock。标记“√”出现在Profile菜单Enable Clock项的旁边,该选项使能就可计算指令周期。3.原创 2009-09-14 21:48:00 · 4375 阅读 · 1 评论 -
对FOR循环优化心得
在程序中经常用到FOR循环,当一些算法实时性要求非常高时,对FOR循环的优化有时可以带来意想不到的收获。通常使用的FOR循环语句形式有:int i;for (i=0;i{}这种循环形式,我想一般人都用过,对这种循环的优化如下:int i;for (i=n;i>0;i--){}明眼人一下就看出来了这两种形式的区别,这里涉及到编译器对判断语句的编译。在CCS中,对于i>0使用的是AGT原创 2009-09-14 17:20:00 · 2799 阅读 · 1 评论 -
Ti c64x 优化基本策略
Ti c64x 优化基本策略以下摘自新浪博客一、优化流程一般分为三个阶段。阶段一:直接按照需要用C语言实现功能。在实际的DSP应用中,许多算法直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般先用C语 言来实现,然后编译运行,利用C64X开发环境的profile; clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。阶段二:C语言级的优化。选择转载 2009-09-14 07:59:00 · 1897 阅读 · 0 评论 -
C6000软件优化经验总结
DSP 优化心得 1<a style="line-height: 1; font-size: 12px;" onclick="function onclick(){diggit(60696);}" href="javascript:void(null)">推荐C6XX优化经验总结一、c6x的编译的常用选项(一)c6x的编译程序为“cl6x.ex转载 2009-09-13 23:32:00 · 2180 阅读 · 0 评论 -
基于 DSP 的视频算法系统优化若干策略
数字视频产品需求近些年出现猛增。主流应用包括视频通信、视频监控与工业自动化,而最热门的要算娱乐应用,如 DVD、HDTV、卫星电视、标清(SD)或高清 (HD) 机顶盒、数码相机与 HD 摄像机、高端显示器(LCD、等离子显示器、DLP)以及个人摄像机等。这些应用都向高质量的视频编解码算法及其标准提出巨大需求,目前主流压缩标准主要有MPEG2、MPEG4和H.264/AVC,而针对这些编解码标准有原创 2009-09-13 08:29:00 · 1242 阅读 · 0 评论 -
堆(heap)和栈(stack)有什么区别??
简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap转载 2010-04-13 07:33:00 · 1290 阅读 · 1 评论