摘要:
1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码作用是相同的,但是效率不一样。 数组索引指针运算 For(;;){p=array A=array[t++];for(;;){ a=*(p++ 阅读全文
随笔分类 - DSP相关
在TMS320F2812上实现从flash拷贝整个程序到RAM上运行的方法探讨
2008-04-10 15:35 by htc开发, 898 阅读, 收藏,
摘要:
在TMS320F2812上实现从flash拷贝整个程序到RAM上运行的方法探讨1. 前言TMS320F2812 DSP 里,代码从内部flash里运行,比从内部RAM里运行要慢30%左右,所以对运行时间苛刻的程序直接在flash里运行,往往不能满足要求。故而,需要将代码拷贝到RAM以提高运行速度。TI文档只提供了部分代码从flash拷贝到RAM中的方法。然而,在一些应用中,需要将整个代码段都拷贝到RAM中执行,以提高整体运行速度。本文通过对TMS320F2812 的启动代码研究,来探讨如何在从FLASH启动后将整个代码段拷贝到RAM中,然后在RAM中运行的方法。2. TMS320F2812 启 阅读全文
DSP TMS320F2812的SPI使用总结
2008-01-04 11:50 by htc开发, 580 阅读, 收藏,
摘要:
1. spi速率不能超过15M,超过后会出现严重误码2. 如果接收方式为中断接收,SPICCR字符长度控制位决定了中断的字长。如字长为8,中断等级为1,则每接收一个字节产生一次中断。如字长为16,中断等级为1,则每接收2个字节产生一次中断。3. 注意主模式和从模式的极性一定要相同。主模式为上升沿采样,下降沿输出。从模式也应该为上升沿采样,下降沿输出。否则会出现采样数据不准确。4. 注意数据写入SPITXBUF时是左对齐,而读入SPIRXBUF是右对齐。这个问题在16位字长时不突出。但是在16位以下数据字长时要特别注意。一般方法是做左移运算。5. 注意SPI FIFO的用法。本人在调试过程中,遇 阅读全文
关于DSP中全局变量与局部变量的使用
2007-10-26 23:15 by htc开发, 410 阅读, 收藏,
摘要:
正解: 一般堆栈都在高速ram区,所以局部变量会快一点,而全局变量在ebss或bss区,这个区域比较大,一般定义在外部ram,速度比较慢。所以看你的变量需要的多少来定。 如果是做解码等计算量大的工作,那么程序结构以函数包为主,那么基本上都是用局部变量,如果是做控制,那么需要大量的变量来控制和记录程序运行的流程,那么这些变量基本都是static或全局变量。 阅读全文
FPGA与DSP共享外部总线问题
2007-08-12 10:58 by htc开发, 269 阅读, 收藏,
摘要:
不知道为什么,FPGA一烧入芯片之后,DSP访问外部总线就无法正常。估计原因出在FPGA的总线上,将原本不是给FPGA的数据当成自己的了。所以DSP无法正常访问。 因为我不是搞硬件的,所以遇到这个问题我也无能为力。不过,已经见识了FPGA的强大功力了,很想好好接触一下。但是事情很多,不知道有没有这个时间学习。 下下周才能上班,要解决这个问题,还能花功夫。FPGA还有很多问题,以后的数据传输又是一难题。真难为了硬件组的那个新手了。 当然,我对DSP的外部总线理解也比较肤浅,利用这难得的假期,好好看一遍。 阅读全文
关于dsp定时器同步需要注意的问题
2007-05-14 14:42 by htc开发, 424 阅读, 收藏,
摘要:
文/蒹葭 zhang.zhilong#gmail.com因为项目中某一个芯片时钟和使能信号对同步有非常严格要求。故而采用PWM定时器来解决。项目参数:F2812,主频100M,外设频率50M。1. 定时器计数是从0开始计数的。所以要计10个数,则周期寄存器应设为0x09,而不是0x0A2. 定时器2控制寄存器的T2SWT1位置一。同时注意,在启动定时器之前,不能将两定时器控制寄存器使能位置1。否则不能同步。3. PWM电平变化,由定时器比较寄存器的数值决定,例如:比较寄存器设为0x05,则表示计数器数值到5(从0开始计数),电平跃变,而不是第五个。4. 通过将定时器2的SELT1PR位置位与. 阅读全文
浙公网安备 33010602011771号