`
happmaoo
  • 浏览: 4472032 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于DSP中全局变量与局部变量的使用

阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

正解:

一般堆栈都在高速ram区,所以局部变量会快一点,而全局变量在ebss或bss区,这个区域比较大,一般定义在外部ram,速度比较慢。所以看你的变量需要的多少来定。
如果是做解码等计算量大的工作,那么程序结构以函数包为主,那么基本上都是用局部变量,如果是做控制,那么需要大量的变量来控制和记录程序运行的流程,那么这些变量基本都是static或全局变量。




分享到:
评论

相关推荐

    DSP程序变量存储问题

    - `.bss`:为全局变量和局部变量保留空间,程序启动时,`cinit`段中的数据会被复制到`.bss`段中。 - `.ebss`:大寄存器模式下的全局变量和静态变量的存储空间,同样地,程序启动时`cinit`段中的数据也会被复制到...

    DSP2833x_GlobalVariableDefs.rar_DSP2833x

    在DSP2833x的程序开发中,全局变量的定义和使用对于优化代码性能、提高内存管理效率以及简化程序结构都具有重要意义。 文件"DSP2833x_GlobalVariableDefs.c"是专门为DSP2833x芯片定义全局变量的源代码文件。在这个...

    TI DSP各种段的定义

    2. **.ebss**:与`.bss`类似,`.ebss`段也是为全局变量和静态变量预留空间的,但其主要针对大寄存器模式下使用的变量。 3. **.stack**:这部分为系统堆栈保留空间,主要用于函数调用时参数的传递以及局部变量的存储...

    使用CC++语言编写基于DSP程序的注意事项

    2. 局部变量与全局变量:尽量谨慎地使用局部变量,因为它们会占用栈空间,并可能导致频繁的内存分配和释放。根据项目需求,优先考虑使用全局变量和静态变量,因为它们在整个程序运行期间持续存在,减少了内存管理...

    使用C语言操作DSP的寄存器

    2. **定义寄存器变量**:基于头文件中的定义,我们可以声明全局或局部变量来表示特定的寄存器。例如,`volatile unsigned int *myControlReg = (unsigned int *)0x12345678;` 这行代码声明了一个指向控制寄存器的...

    单片机与DSP中的单片机程序死机跑飞六大原因

    如果遇到难以定位的问题,可以尝试将函数内联化,并将占用内存大的局部变量转换为全局变量。 以上六个方面是单片机程序运行中常见的故障点,通过仔细检查和优化代码,可以有效地避免这些错误,提高程序的稳定性和...

    变量的作用域.zip

    1. **全局变量与局部变量**: - 全局变量:在整个程序中都可访问的变量,从定义它的文件开始,直到程序结束。在"变量的作用域.cpp"、"StdAfx.cpp"和"test.cpp"这样的源文件中,可能会定义全局变量。 - 局部变量:...

    基于DSP编程的几个关键问题

    汇编程序中的全局变量需要在文件中定义,局部变量可以直接声明,但不同文件中同名但未定义的局部变量会被视为不同变量。使用`.mmregs`宏可以定义和重定义寄存器,例如定义DMA寄存器地址。 5. **ST1寄存器中CPL位的...

    DSP汇编伪指令汇总

    现代编程中更倾向于使用命令文件来进行地址定位,因此该伪指令使用较少。 - **.bss** 符号,字数[,块标号] - 作用:未初始化变量段,用于为未初始化的变量在`.bss`段内保留空间。 - 说明:用于定义未初始化的变量...

    第七章 DSP软件设计.ppt

    - **.stack**: 栈段,用于存放局部变量和函数调用时的临时数据。 - **.vectors**: 向量段,存储中断向量表。 - **.const**: 常量段,存储常量数据。 #### 七、初始化C环境 - **Boot.c in rts.lib**: - 初始化全局...

    TMS320F2812 DSP存储器映射及CMD详解

    - **非初始化段**:包括`.bss`(为全局变量和局部变量预留空间)、`.ebss`(为大寄存器模式下的全局变量和静态变量预留空间)、`.stack`(为系统堆栈预留空间)、`.sysmem`(为动态存储分配预留空间)和`.esysmem`...

    example_dsp.rar_DSP28335头文件和源文件_votetu5

    2. 变量声明:源文件中声明的全局变量可供程序各部分共享,而局部变量则仅限于其所在的作用域内。 三、开发流程 在使用DSP28335进行项目开发时,通常会遵循以下步骤: 1. 理解芯片手册:首先,需要深入研究DSP...

    DSP中C语言编程总结.doc

    - C语言通过堆栈访问局部变量,而汇编语言可以使用DP或SP寄存器直接寻址。在混合编程中,通常使用DP寻址以避免影响SP寄存器,需要正确设置ST1寄存器的CPL位来切换寻址方式。 5. **DSP C语言编程要点**: - **CMD...

    DSP汇编语言与C语言混合编程关键技术研究.pdf

    需要了解文档的结构和内容,由于OCR扫描的原因,文档中部分内容存在识别错误,但我们可以推测此文档研究了数字信号处理器(DSP)在使用TI公司的LF240xA系列芯片上汇编语言与C语言混合编程的关键技术。文档详细探讨了...

    DSP入门必看知识点

    - `.stack`:为系统堆栈预留存储空间,用于保存返回地址、函数间参数传递、存储局部变量和保存中间结果。 - `.sysmem`:用于动态分配存储空间,如`malloc`、`calloc`和`realloc`函数。 2. **用户自定义**:用户...

    DSP环境下C语言编程的优化实现.pdf

    - **局部变量**: 尽可能使用局部变量而非全局变量,因为局部变量通常被存储在寄存器中,访问速度快。 - **寄存器变量**: 在可能的情况下,将频繁访问的变量定义为寄存器变量,以加快访问速度。 ##### 2.5 函数调用...

    TMS320C6000DSP优化教程

    - **局部变量与全局变量**:合理使用局部变量和全局变量,减少内存访问时间。 3. **编译器特性** - **编译器优化选项**:利用编译器提供的各种优化选项(如-O3)。 - **向量化**:利用C6000 DSP的向量处理能力,...

    单片机与DSP中的DSP编程的几个关键问题

    汇编语言程序中的全局变量需要在`.def`中定义,而局部变量可以直接声明,但未定义的同名变量在不同文件中会被视为不同的变量。`.mmregs`宏用于定义和确认寄存器使用,允许对默认寄存器进行重定义。 5. **ST1寄存器...

    DSP CCS 高级 优化编译

    - 在需要频繁移动数据的算法中使用循环缓冲区,避免显式的数据移动操作,提高效率。 **6. 专用指令使用** - 利用DSP处理器提供的专用指令来加速特定类型的运算,如乘法、平方等。 **7. 并行指令** - 利用DSP的...

Global site tag (gtag.js) - Google Analytics