ADI DSP入门基础
DSP入门教程(非常经典)

3)对于 C5000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 SWWCR 和 SWWSR 寄存器决定,可以加入最多 14 个等待。其中程序存储器、控制程序存储器和 数据 存储器及 I/O 可以分别设置。
4)地址译码、IO 扩展等用 CPLD 或者 FPGA 来做,将 DSP 的地址线、数据线、控制信 号 线如 IS/PS/DS 等都引进去有利于调试
5、如何高效开始 TI DSP 的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发, 需要使用 DSP 的片上外设,需要控 制片外接口电路,那么建议在写程序前先好好将这个目标 版的电路设计搞清楚。最重要的是 程序、数据、I/O 空间的译码。不管是否纯做算法还是软硬结合, DSP 的 CPU,memory,program memory addressing, data mem.ory addressing 的资料都需要看.
1)看 CCS 的使用指南
2)明白 CMD 文件的编写
3)明白中断向量表文件的编写,并定位在正确的地方
4)运行一个纯 simulator 的程序,了解 CCS 的各个操作
5)到 TI 网站下相关的源码,参考源码的结构进行编程
6)不论是 C 编程还是 ASM 编程,模块化是必须的
6、选择 C 还是选择 ASM 进行编程 记住一条原则,TI 的工程师在不断改进 CCS 的 C 程序优化编译器,现在 C 优化的效率可 达 到手工汇编的 90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM 还 是有 优势,比如 G.729 编解码。但是针对一般的应用开发,C 是最好的选择。 新手编程则选择 C 和汇编混合编程更有利一些
DSP入门必须掌握知识点

1.DSP选型:主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O 口数量、中断数量、DMA通道数等。
DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。
选择DSP可以根据以下几方面决定:1)速度:DSP速度一般用MIPS或FLOPS表示,即百万次/秒钟。
根据您对处理速度的要求选择适合的器件。
一般选择处理速度不要过高,速度高的DSP,系统实现也较困难。
2)精度:DSP芯片分为定点、浮点处理器,对于运算精度要求很高的处理,可选择浮点处理器。
定点处理器也可完成浮点运算,但精度和速度会有影响。
3)寻址空间:不同系列DSP程序、数据、I/O 空间大小不一,与普通MCU不同,DSP在一个指令周期内能完成多个操作,所以DSP的指令效率很高,程序空间一般不会有问题,关键是数据空间是否满足。
数据空间的大小可以通过DMA的帮助,借助程序空间扩大。
4)成本:一般定点DSP的成本会比浮点DSP的要低,速度也较快。
要获得低成本的DSP系统,尽量用定点算法,用定点DSP。
5)实现方便:浮点DSP的结构实现DSP系统较容易,不用考虑寻址空间的问题,指令对C语言支持的效率也较高。
6)内部部件:根据应用要求,选择具有特殊部件的DSP。
如:C2000适合于电机控制;OMAP适合于多媒体等。
1)C5000系列(定点、低功耗):C54X,C54XX,C55X相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。
处理速度在80MIPS--400MIPS之间。
C54XX和C55XX一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。
值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。
两个系列的数字IO 都只有两条。
2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM 发生器、数字IO 脚等。
DSP_入门教程

DSP_入门教程DSP(Digital Signal Processing)是数字信号处理的缩写,它是利用数字技术对信号进行处理的一种方法。
在现代工程中,DSP技术广泛应用于各种领域,如音频处理、图像处理、通信系统等。
下面将为大家介绍DSP的基本概念和入门教程。
首先,我们来了解一下什么是数字信号处理(DSP)。
数字信号是指连续信号经过采样和量化处理后得到的离散数值序列,而数字信号处理就是在这个离散序列上进行一系列数学运算和算法处理的过程。
DSP可以通过数字滤波、傅里叶变换、时域分析等方法对信号进行处理,使其具备滤波、降噪、压缩等功能。
要学习DSP,首先需要了解一些基本概念。
首先是采样和量化。
采样是指将连续信号在时间上进行离散化,即以一定的时间间隔对信号进行观测,得到一系列的采样值。
量化是指将采样得到的连续幅度值转换为离散幅度值的过程。
采样和量化是将连续信号转换为离散信号的关键步骤。
接下来是数字滤波。
数字滤波是指在离散时域或频域上进行滤波操作。
常见的数字滤波器有低通滤波器、高通滤波器、带通滤波器等。
数字滤波可以用于信号去噪、提取感兴趣的频率成分、改善信号质量等。
另外,我们还需要了解一些基本的数学运算和算法。
傅里叶变换是一种重要的信号处理方法,可以将时域信号转换为频域信号,从而分析信号的频谱特性。
在DSP中,快速傅里叶变换(FFT)是一种常用的算法,可用于高效计算傅里叶变换。
此外,数字信号处理还涉及到一些常见的算法,如卷积、相关、自相关、互相关等。
这些算法可以用于信号的滤波、特征提取、模式识别等任务。
要学习DSP,可以首先通过学习相关的数学知识打好基础。
掌握离散数学、线性代数、复变函数等基本概念,对于理解和应用DSP技术非常重要。
其次,可以学习一些基本的DSP算法和工具。
如学习使用MATLAB软件进行信号处理,掌握常用的DSP函数和工具箱,进行信号的滤波、频谱分析等操作。
另外,可以学习一些经典的DSP案例和应用。
dsp重点知识点总结

dsp重点知识点总结1. 数字信号处理基础数字信号处理的基础知识包括采样定理、离散时间信号、离散时间系统、Z变换等内容。
采样定理指出,为了保证原始信号的完整性,需要将其进行采样,并且采样频率不能小于其最高频率的两倍。
离散时间信号是指在离散时间点上取得的信号,可以用离散序列表示。
离散时间系统是指输入、输出和状态都是离散时间信号的系统。
Z变换将时域的离散信号转换为Z域的函数,它是离散时间信号处理的数学基础。
2. 时域分析时域分析是对信号在时域上的特性进行分析和描述。
时域分析中常用的方法包括时域图形表示、自相关函数、互相关函数、卷积等。
时域图形表示是通过时域波形来表示信号的特性,包括幅度、相位、频率等。
自相关函数是用来描述信号在时间上的相关性,互相关函数是用来描述不同信号之间的相关性。
卷积是一种将两个信号进行联合的运算方法。
3. 频域分析频域分析是对信号在频域上的特性进行分析和描述。
频域分析中常用的方法包括频谱分析、傅里叶变换、滤波器设计等。
频谱分析是通过信号的频谱来描述信号在频域上的特性,可以得到信号的频率成分和相位信息。
傅里叶变换是将时域信号转换为频域信号的一种数学变换方法,可以将信号的频率成分和相位信息进行分析。
滤波器设计是对信号进行滤波处理,可以剔除不需要的频率成分或增强需要的频率成分。
4. 数字滤波器数字滤波器是数字信号处理中的重要组成部分,通过对信号进行滤波处理,可以实现对信号的增强、降噪、分离等效果。
数字滤波器包括有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器两种类型。
有限冲激响应(FIR)滤波器是一种只有有限个系数的滤波器,它可以实现线性相位和稳定性处理。
无限冲激响应(IIR)滤波器是一种有无限个系数的滤波器,它可以实现非线性相位和较高的滤波效果。
5. 离散傅里叶变换(DFT)和快速傅里叶变换(FFT)离散傅里叶变换(DFT)是将时域离散信号转换为频域离散信号的一种数学变换方法,其计算复杂度为O(N^2)。
DSP基础知识简洁版(适合考试用)

一、名词解释1、数字信号处理理论(Digital Signal Processing):频谱分析、数字滤波器设计、自适应信号处理、信号压缩、信号建模……2、数字信号处理器 (Digital Signal Processor) :专门针对数字信号的数学运算需要而设计开发的一类集成电路芯片3、冯·诺依曼结构:也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
4、哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。
可以减轻程序运行时的访存瓶颈。
5、专用的硬件乘法器:典型的FFT、IIR和FIR等数字信号处理算法中,乘法是DSP运算的重要组成部分;DSP芯片中有专用的硬件乘法器,一次或多次的乘法累加运算可以在一个指令周期内完成。
6、特殊的DSP指令:专门为实现数字信号处理的算法而设置特殊指令;位倒序寻址、循环寻址等特殊指令能够方便快速地实现FFT算法。
7、流水线操作:执行指令的几个阶段在程序执行过程中是重叠的,即几条不同的指令同时处于激活状态,每条指令处于不同的阶段。
8、晶振时钟信号:‘28x DSP片上晶振电路模块允许采用内部振荡器或外部时钟源为CPU内核提供时钟;在使用片上晶振模块的内部振荡器时,应当在X1/XCLKIN和X2两个引脚之间连上一个石英晶振,片上晶振模块输出与石英晶振频率相同的时钟信号,典型的晶振频率是30MHz。
采用外部时钟应把时钟信号直接接到X1/XCLKIN引脚,X2引脚则必须悬空,这时内部振荡器不工作,片上晶振模块输出该外部时钟信号。
二、简答题1.PWM变化PWM输出变化由一个对称/非对称波形发生器和一个相关输出逻辑控制,同时还要依赖于以下几种情况:(1)GPTCONA/B中位的定义;(2)定时器的计数模式;(3)定时器处于连续增/减计数模式下的计数方向。
DSP入门教程

DSP入门教程DSP(Digital Signal Processing,数字信号处理)是一门与数字信号进行各种处理的技术与领域。
在现代科技的发展中,DSP扮演着非常重要的角色,它在通信、图像处理、音频处理、雷达系统等各个领域都有广泛的应用。
本文将为大家介绍DSP的基本概念和入门知识,并推荐一些经典的学习教材。
首先,DSP的基本原理是将信号转换为数字形式,然后利用计算机算法对数字信号进行处理。
数字信号是连续时间信号的离散化,可以通过采样和量化将连续时间信号转换为数字形式。
然后,通过各种算法对数字信号进行滤波、变换、压缩等处理,最后再将数字信号转换为模拟信号输出。
为了更好地理解DSP的原理和算法,有一些经典的教材是非常推荐的。
以下是一些经典的DSP学习教材:1.《数字信号处理(第四版)》这本教材是DSP领域里的权威之作,被广泛认为是DSP的入门经典。
书中介绍了数字信号处理的基本概念和原理,并涵盖了滤波、变换、解调等常见的DSP算法。
2.《信号与系统:连续与离散时间的综合》这本书是DSP的前身,信号与系统的经典教材之一、书中介绍了连续时间信号和离散时间信号的基本概念和特性,以及各种信号处理方法与算法。
3.《数字信号处理:实用解决方案》这本书是一本非常实践的DSP教材,通俗易懂地介绍了数字信号处理的基本理论和应用。
书中还提供了大量的MATLAB实验和示例代码,非常适合初学者上手和实践。
4.《数字信号处理和滤波》这本书介绍了数字信号处理和滤波的基本概念和原理,并通过实验和示例演示了各种滤波方法的应用。
书中的内容结构清晰,适合初学者系统地学习和理解DSP。
此外,如果你喜欢在线学习,一些在线学习平台也提供了优质的DSP 课程,如Coursera、edX、Udemy等。
这些平台上的DSP课程涵盖了从入门到高级的知识内容,配有视频讲解和练习项目,非常适合自学和深入学习。
总结起来,DSP是一门应用广泛的技术与领域,学习DSP需要掌握信号采样与量化、滤波、变换等基本概念和算法。
DSP入门必看(非常好的DSP扫盲文章)

DSP入门必看(非常好的DSP扫盲文章)(ZZ)(7)如何设置硬件断点?在profiler ->profile point -> break pointc54x的外部中断是电平响应还是沿响应?是沿响应,准确的说,它要检测到100(一个clk的高和两个clk的低)的变化才可以。
参考程序,里面好象都要dISAble wachdog,不知道为什么?watchdog是一个计数器,溢出时会复位你的DSP,不dISAble的话,你的系统会动不动就reset。
时钟电路选择原则1,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;2,单一时钟信号时,选择晶体时钟电路;3,多个同频时钟信号时,选择晶振;4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路;6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路C程序的代码和数据如何定位1,系统定义:.cinit 存放C程序中的变量初值和常量;.const 存放C程序中的字符常量、浮点常量和用const声明的常量;.switch 存放C程序中switch语句的跳针表;.text 存放C程序的代码;.bss 为C程序中的全局和静态变量保留存储空间;.far 为C程序中用far声明的全局和静态变量保留空间;.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间2,用户定义:#pragma CODE_SECTION (symbol, "section name");#pragma DATA_SECTION (symbol, "section name")cmd文件由3部分组成:1)输入/输出定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的交叉索引文件;.out文件:链接器生成的可执行代码;链接器选项2)MEMORY命令:描述系统实际的硬件资源3)SECTIONS命令:描述“段”如何定位为什么要设计CSL?1,DSP片上外设种类及其应用日趋复杂2,提供一组标准的方法用于访问和控制片上外设3,免除用户编写配置和控制片上外设所必需的定义和代码什么是CSL?1,用于配置、控制和管理DSP数字信号处理片上外设2,已为C6000和C5000系列DSP设计了各自的CSL库3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响CSL的特点1,片上外设编程的标准协议:定义一组标准的APIs:函数、数据类型、宏;2,对硬件进行抽象,提取符号化的片上外设描述:定义一组宏,用于访问和建立寄存器及其域值3,基本的资源管理:对多资源的片上外设进行管理;4,已集成到DSP/BIOS中:通过图形用户接口GUI对CSL进行配置;5,使片上外设容易使用:缩短开发时间,增加可移植.为什么需要电平变换?1) DSP系统中难免存在5V/3.3V混合供电现象;2)I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;3)5V器件输出信号高电平可达4.4V;4)长时间超常工作会损坏DSP器件;5)输出信号电平一般无需变换电平变换的方法1,总线收发器(Bus Transceiver):常用器件:SN74LVTH245A(8位)、SN74LVTH16245A(16位)特点:3.3V供电,需进行方向控制,延迟:3.5ns,驱动:-32/64mA,输入容限:5V应用:数据、地址和控制总线的驱动2,总线开关(Bus Switch)常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)特点:5V供电,无需方向控制延迟:0.25ns,驱动能力不增加应用:适用于信号方向灵活、且负载单一的应用,如McBSP等外设信号的电平变换3,2选1切换器(1 of 2 Multiplexer)常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)特点:实现2选1,5V供电,无需方向控制延迟:0.25ns,驱动能力不增加应用:适用于多路切换信号、且要进行电平变换的应用,如双路复用的McBSP4,CPLD3.3V供电,但输入容限为5V,并且延迟较大:>7ns,适用于少量的对延迟要求不高的输入信号5,电阻分压10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V未用的输入/输出引脚的处理1,未用的输入引脚不能悬空不接,而应将它们上拉活下拉为固定的电平1)关键的控制输入引脚,如Ready、Hold等,应固定接为适当的状态,Ready引脚应固定接为有效状态,Hold引脚应固定接为无效状态2)无连接(NC)和保留(RSV)引脚,NC 引脚:除非特殊说明,这些引脚悬空不接,RSV引脚:应根据数据手册具体决定接还是不接3)非关键的输入引脚,将它们上拉或下拉为固定的电平,以降低功耗2,未用的输出引脚可以悬空不接3,未用的I/O引脚:如果确省状态为输入引脚,则作为非关键的输入引脚处理,上拉或下拉为固定的电平;如果确省状态为输出引脚,则可以悬空不接。
DSP开发入门基础知识

DSP开发入门基础知识发布日期:2009-3-6 11:12:07 文章来源:搜电浏览次数:111DSP是Digital Signal Processing(数字信号处理)或Digital Signal Processor(数字信号处理器)的缩写。
这一章中我们要讲的内容是,如何开始采用一个或多个数字信号处理芯片对输入信号(数字信号)进行分析、处理。
所以在你进行DSP开发之前,你应该明确以下几个问题:(1).你是否应该或需要使用DSP?(2).你应该选择哪个型号的DSP?(3).你熟悉你即将使用的DSP吗?包括它的硬件结构、外设控制、指令系统、寻址方式以及开发环境(工具)?1-1为什么要采用数字信号处理?(1)灵活性在模拟处理系统,当需要改变一个模拟系统的应用时,你可能不得不修改硬件设计,或调整硬件参数。
而在数字处理系统,你可以通过改变数字信号处理软件来修改设置,以适应不同的需要。
(2)精度在模拟处理系统,系统精度受元器件影响,同一批次产品可能有不同的性能。
而在数字处理系统中,精度仅与A/D的位数和计算机字长、算法有关,它们是在设计系统是就已经决定了的。
(3)可靠性和可重复性模拟系统易受环境温度、湿度、噪声、电磁场等的干扰和影响,而数字系统的可靠性和可重复性好。
(4)大规模集成模拟系统尽管已有一些模拟集成电路,但品种较少、集成度不高、价格较高。
而数字系统中DSP体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高。
(5)虚拟特性与升级一套模拟系统系统只能对应一种功能,升级意味着新型号的系统的研制。
而数字系统中一套系统对应多种功能,只要装上不同的软件即可。
图1软件使得数字系统更加灵活(6)特殊应用:有些应用只有数字系统才能实现例如:信息无失真压缩(LOSSLESS COMPRESSION)、V型滤波器(NOTCH FILTER)、线性相位滤波器(LINEAR PHASE FILTER)等等.但数字信号处理也有局限性:(1) 实时性模拟系统中除开电路引入的延时外,处理是实时的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADI DSP入门那点事儿专题三--主讲LDF【Open ADSP开源社区】[嵌入式]发
布时间:2011-11-22 17:09:38
LDF是ADI DSP处理器开发中的一个至关重要的技术点,也是困扰初学者的一个难点,我们为此做了一个LDF的专题,从简单易懂处入手,旨在稍微加快初学者对其的理解!
优酷链接:/v_show/id_XMzI0OTcwMDMy.html
清晰版下载地址:/file/dn8vtfbq 如需提取码,则是:dn8vtfbq
开发板链接:/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvus&id=9026190872&
LDF专题先发布了,视频采集模块会延后,我们要再对该模块的内容进行一下调整。
手把手视频即将进入高级应用代码讲解的部分。
我们在讲完了Blackfin处理器的外设、各个模块驱动之后,以高级应用代码的讲解,把多个模块的驱动结合起来,以应用开发的方式展现给大家,我想这个节奏应该比较符合学习的常规过程吧
3.10 BF53x_LDF
3.101 模块功能介绍
ADSP上的LDF(Linker Description Files)连接器描述文件是处理器用来进行资源分配的文件,通过对LDF文件的修改,可以分配自己需要的空间片断。
通常情况下,不需要对LDF文件进行修改,通过简单指令即可使用LDF文件分配的空间,本章介绍一下如何通过LDF文件指定代码使用内存。
3.102 LDF文件的生成
用Visual DSP++ 5.0 软件,连接好板卡,打开要添加LDF文件的工程,在工程名上按鼠标右键,选择“工程选项”。
在弹出窗口中选择“add Startup Code/LDF”
选择“Add an LDF and startup code”后,在左边窗口会出现关于LDF的选项操作。
如图,把使用外部SDRAM选项勾上,选择与板卡SDRAM容量匹配的选项,ADSP-EDU-BF533板卡的SDRAM容量为32MB。
选好后点“确定”。
在弹出的选择框上选择“是”
在工程里会自动添加LDF及其相关文件
3.103 LDF文件说明
使用图形打开
在LDF文件上进行双击鼠标左键,或者按右键在弹出菜单中按下图选择,会弹出LDF文件的图形界面。
图形界面分左右两个窗口,左边为LDF文件分配的空间片断的标识符。
右边为DSP整个空间的分配地址和使用情况。
从左边的标识符中可以看到SDRAM区域分为sdram0,sdram0_bank1, sdram0_bank2, sdr am0_bank3等区域,如果要使用SDRAM的空间,就可以通过这些描述符来定义。
可以点击右上角放大按钮,将内存分布放大,观察当前内存使用情况。
使用代码打开
在LDF文件上按右键在弹出菜单中按下图选择,会以代码方式打开文件。
在代码中,可以找到如下图代码,该代码是指定DSP所使用空间的大小分配表,可以根据需要修改其空间分配的大小。
搜索“MEM_SDRAM0_BANK1”,可以找到如下代码,该代码中调用了很多库函数,来定义空间功能,最后对该空间片断做了标识符映射,其标识符为“sdram0_bank1”,通过调用该标识符,可以使用该空间。
如果自己定义一个空间片断,可以在上面的空间地址中定义一个空间片断的地址区域,注意不要使空间重复,然后复制下面的代码,建立一个自定义空间的功能描述,修改为自己定义的描述符即可。
在LDF文件定义空间时,常在空间片断描述符后面看到“ZERO_INIT”标志,该标志表示在编译代码时,将该段空间清为0,也可以不对该空间操作,其标识符写作“NO_INIT”
将sdram0_bank0 初始化时数据清为0:
将sdram0_bank0 初始化时保持原数据:
在正常使用时,原则上不建议大家来修改LDF的代码,以免因为LDF文件问题,为开发后期来带麻烦。
3.104 如何使用LDF文件定义的空间
要在代码中使用LDF文件定义的空间,可以通过“section(“*** ”)”指令来定义,“***”代表空间片断标识符,即用图形界面打开,在左边窗口中看到的空间片断名称。
如定义一个数组“buffer[10000]”,将其放到“sdram0_bank1”的空间地址中,可以定义如下:
在VDSP软件上,打开memory查看窗口
在窗口中输入定义的数组名称,按“回车”键,找到内存中该数组定义的位置。
从上图中可以看到,buffer这个数组被定义在了0x800000 这个地址区域,通过下图可以看出,这个地址位于sdram0_bank1的起始地址。
除了将一个数组定义在指定的空间片断,还可以指定一个函数,定义在指定的片断,其定义方法是在函数前面加入定义使用空间的指令。
通过memory查看器,可以看到在默认情况下,“Set_PLL” 函数是定义在地址0xffa00a1c地址,该代码断位于“L1_CODE”地址。
现指定“Set_PLL”函数将其放入“sdram0_bank2”空间
在Visual DSP++ 5.0 up 8软件上,如果定义的数组过大,超过了L1的空间,即使不使用“section”指令指定放置在SDRAM空间,系统也会自动将该数组放置在SDRAM空间中,但前提是必须使用该工程生成LDF文件。
对于早期的VDSP软件版本,则没有该功能,必须指定数组放置的空间。
如果该工程没有自动生成LDF文件,也可以拷贝其他的LDF文件到该工程文件夹下,然后添加到该工程中,同样可以通过“section”指令指定使用。
3.105 代码实现功能
代码实现了通过工程生成LDF文件,通过“section”指令定义一个数组和一个函数的空间,通过mem ory查看器查看该数组和函数定义的空间地址。
运行代码,代码会将变量i生成的数据写入buffer数组内。
3.106 测试结果
可以看到通“section”指令指定的数组和函数位于内存中位置的变化。