工程问题的DSP实现(一)课件_第1页
工程问题的DSP实现(一)课件_第2页
工程问题的DSP实现(一)课件_第3页
工程问题的DSP实现(一)课件_第4页
工程问题的DSP实现(一)课件_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章工程问题的DSP实现(一)DTMF的编解码

1用DSP实现双音多频(DTMF)的拨号产生和解码。DTMFDual-ToneMultipleFrequency用DSP实现双音多频(DTMF)的拨号产生和解码。2实现步骤对象分析算法设计DSP选择系统设计系统实现系统调试实现步骤对象分析算法设计DSP选择系统设计系统实现系统调试3对象分析

对所要开发的系统的功能、性能要有深入的了解和分析,尤其对技术指标,要作透彻的理解和把握。对象分析对所要开发的系统的功能、性能要有深入的了解和4DTMF用一对频率(行频/列频)来表示一个符号(电话键盘上的0—9,A—D,*,#,共16个符号)

一次按键的时间是100ms,其中,频率对存在的时间是45ms,不允许超过55ms,其余的时间是静音。DTMF用一对频率(行频/列频)来表示一个符号5

6CCITT关于DTMF的指标Lowband:697、770、852、941(Hz) RBW<3.5% Highband:1209、1336、1477、1633(Hz)RBW<3.5% TWIST: STD>4dBREV>8dB DYNRANGE:>25dB GUARDTIME:MINTONETIME45msSNR: NOISE-24dBV

CCITT关于DTMF的指标Lowband:697、77算法设计

算法设计是非常关键的步骤,因为算法决定运算量和存储器的大小,从而决定DSP的选择,进而决定系统的设计,包括硬件和软件的设计。算法设计算法设计是非常关键的步骤,因为算法决定运8DTMF拨号的产生

基于DSP的DTMF的音频信号发生器,使用两个二阶的数字正弦波振荡器,一个产生行频,一个产生列频。DTMF拨号的产生基于DSP的DTMF的音频9

10DTMF发生器的系数和初始条件DTMF发生器的系数和初始条件11DTMF发生器的信号流程DTMF发生器的信号流程12音频检测Goertzel算法是DTMF解码器的基础,实际上是一个两极点的IIR滤波器。DFT或FFT需要在处理之前准备好一个数据块,而Goertzel算法是一个递归的结构,就每个输入的样本进行计算。音频检测Goertzel算法是DTMF解码器的基础,实际上是13Goertzel算法Goertzel算法14Goertzel算法的特点Goertzel算法的IIR滤波器结构涉及两个复共轭极点,但对于实际的DTMF音频检测,只要有幅度信息就够了(实际上使用幅度平方),从而简化为只需要一个实系数参与计算。Goertzel算法要比FFT快得多,因为只需要提供8个行/列频和它们的二次谐波的信息(二次谐波的信息用于将DTMF与话音或音乐区别开来)。Goertzel算法的特点Goertzel算法的IIR滤波器15行频/列频及相应的系数行频/列频及相应的系数16有效性检查信号强度

DTMF行频、列频信号之和的强度是否达到一定的门限值有效性检查信号强度17有效性检查扭曲度

标准扭曲:行频峰值>列频峰值4dB反向扭曲:

列频峰值>行频峰值8dB有效性检查扭曲度18有效性检查二次谐波强度

以便将DTMF信号与其他语音信号、音乐信号等区别开来。有效性检查二次谐波强度19有效性检查数字信息的稳定性

如果一个数字成功地检测到两次,认为该数字是稳定的有效性检查数字信息的稳定性20有效性检查数字信息的有效性

检测到的数字前面必须是静音符时,该数字才是有效的,以便将各次击键区别开来有效性检查数字信息的有效性21

22

23编码器对速度和存储器的要求编码器对速度和存储器的要求24解码器对速度和存储器的要求解码器对速度和存储器的要求25DSP芯片选择算法对DSP芯片计算速度的要求系统的管理(如任务管理、进程管理、存储器管理、I/O管理等)对DSP的要求片内存储器和片外存储器的要求(包括容量的要求和速度的要求)DSP芯片选择算法对DSP芯片计算速度的要求26DSP芯片选择对外设(如串口、并口、定时器、总线宽度、等待状态等)的要求DSP封装对印制板的设计影响甚大开发环境技术支持性能价格比DSP芯片选择27DSP芯片的速度DSP芯片的速度28DSP的片内存储器DSP的片内存储器29DSP的外设DSP的外设30BGA(BALLGRIDARRAY)BGA(BALLGRIDARRAY)31PLCC(PLASTICJ-LEADEDCHIPCARRIER)PLCC(PLASTICJ-LEADEDCHIPCAR32PQFP(PLASTICQUADFLATPACK)PQFP(PLASTICQUADFLATPACK)33PDLP(PLASTICDUAL-IN-LINEPACKAGE)PDLP(PLASTICDUAL-IN-LINEPACK34LCCC(LEADLESSCERAMICCHIPCARRIER)LCCC(LEADLESSCERAMICCHIPCAR35系统设计硬件系统设计软件系统设计工作软件测试软件功能框图(指标分配)电原理图印制板(数字与模拟电路,接地,电源,多层板)系统设计硬件系统设计软件系统设计功能框图(指标分配)36系统的实现从C程序作起

用CCompiler将C源程序编译成为汇编语言源程序,然后汇编、连接后输出可执行代码;也可以使用shell程序,将编译、汇编、连接一齐完成系统的实现从C程序作起37工程问题的DSP实现(一)课件38

39源程序分析器

输入是C源文件。读入源语句,检查语法和语意错误,写出一个中间文件(.if)源程序分析器输入是C源文件。读入源语句,检查40优化器

可选择项。其输入是分析器产生的中间文件(.if)。当运行优化器时,用户可以选择优化的层次。产生一个与中间文件格式相同的高效率版本。优化器可选择项。其输入是分析器产生的中间文件41代码生成器

输入是分析器或优化器产生的中间文件(.if或.opt文件),产生一个汇编语言源文件代码生成器输入是分析器或优化器产生的中间文件42内部列表公用程序

输入是C编译器产生的汇编语言源程序和C源程序。产生的是按C文件的语句展开的汇编语言源文件内部列表公用程序输入是C编译器产生的汇编语言43汇编器和连接器汇编器的输入是代码生成器产生的汇编语言文件,产生COFF目标文件连接器的输入是汇编器产生的COFF目标文件,产生可执行的目标文件汇编器和连接器汇编器的输入是代码生成器产生的汇编语言文件,产44运行C编译器cl500[-options]filenames[-z[link_options][objectfiles]]cl500调用编译器和汇编器的命令。-options影响编译器处理输入文件的途径filenames一个或多个C源文件、汇编语言源文件,或目标文件。-z运行连接器的选择项。link_options影响连接器处理输入文件的途径objectfiles命名编译器产生的目标文件运行C编译器cl500[-options]filena45cl500-qsymtabfileseek.asm–z

编译文件symtab和file,汇编第三个文件seek.asm,连接这三个文件,并使用quiet选择项,抑制输出处理信息cl500-qsymtabfileseek.46如果不使用-q选择项,就会输出以下处理信息:[symtab]TMS320C54xANSICCompilerVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c”==>main“symtab.c”==>lookupTMS320C54xANSICCodegenVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c”==>main“symtab.c”==>lookup如果不使用-q选择项,就会输出以下处理信息:[symtab]47

TMS320C54xCOFFAssemblerversionx.xxCopyright©1997TexasInstrumentsIncorporatedPASS1PASS2NoErrors,NoWarningsTMS320C54xCOFFAssemblerve48汇编器输出的列表文件:1*******************************************2**Assembleintothe.textsection.**3*******************************************40000 .text50000e800 LD#0,A6*******************************************7**Allocate4wordsin.bssforTEMP.**8*******************************************90000 Var_1: .bssTEMP,410汇编器输出的列表文件:1*****************49

11*******************************************12**Stillin.text**13*******************************************140001f000 ADD#56h,A00020056150003f066 MPY#73h,A000400731611**************************50

17*******************************************18**Allocate100wordsin.bssforthe**19**symbolnamedARRAY;thispartof**20**.bssmustfitonasinglepage.**21*******************************************220004 .bss ARRAY,100,12324*******************************************25**Assemblemorecodeinto.text.**26*******************************************2700058000- STLA,Var_12817**************************51

29*******************************************30**Declareexternal.bsssymbols.**31*******************************************32.globalARRAY,TEMP33.end29**************************52连接器-m选择项建立映射列表文件-mfilename该连接器映射列表描述:存储器划分输入与输出段的位置外部符号重新定位后的地址连接器-m选择项建立映射列表文件-mfilename53

当没有发现错误时,连接器就建立一个输出模块,省缺名为a.out。也可以使用-o选择项,将输出模块写入另外的文件:-ofilename其中的文件名就是新的输出模块的文件名当没有发现错误时,连接器就建立一个输出模块,54lnk500–orun.outfile1.objfile2.obj

将ile1.obj和file2.obj连接起来,建立一个名为run.out的输出模块lnk500–orun.outfile1.obj55可以将上述文件名及选择项,再加上注释写入一个命令文件link.cmd

:a.obj /*Firstinputfilename*/b.obj /*Secondinputfilename*/-oprog.out/*Optiontospecifyoutputfile*/-mprog.map/*Optiontospecifymapfile*/并用该命令文件来调用连接器:lnk500link.cmd可以将上述文件名及选择项,再加上注释写入一个命令文件link56包含连接器伪指令的命令文件:a.objb.objc.obj

/*Inputfilenames*/-oprog.out-mprog.map

/*Options*/MEMORY

/*MEMORYdirective*/{RAM:origin=100h

length=0100hROM:origin=01000h

length=0100h}SECTIONS

/*SECTIONSdirective*/{.text:>ROM.data:>ROM.bss:>RAM}包含连接器伪指令的命令文件:a.objb.objc.ob57MEMORY

{

PAGE0:name1[(attr)]:origin=constant,length=constant;

PAGEn:namen[(attr)]:origin=constant,length=constant;

}

PAGE说明一个存储器空间。用户最多可以说明255页。通常,page0是程序存储器,page1是数据存储器。name命名一个存储器范围。一个存储器的名字可以是1—8个字符,其中包括A—Z,a—z,$,.,_。MEMORY

{

PAGE0:name1[(at58

Attr存储器的属性:R存储器可读W存储器可写X存储器可包含可执行代码I存储器可以初始化Attr存储器的属性:59

origin指定存储器的开始地址length指定存储器范围的长度。fill为存储器范围指定一个填入的字符,其值是2-byte的整常数。origin指定存储器的开始地址60TMS320C54x省缺的地址配置:MEMORY{PAGE0:PROG:origin=0x0080length=0xFF00PAGE1:DATA:origin=0x0080length=0xFF80}SECTIONS{.text:PAGE=0.data:PAGE=0.cinit:PAGE=0;cflagoptiononly.bss:PAGE=1}TMS320C54x省缺的地址配置:MEMORY61连接器使用举例

本例连接三个目标文件demo.obj、fft.obj和tables.obj,并建立输出文件demo.out。符号SETUP是程序的输入点。连接器使用举例62连接器命令文件demo.cmd/******************************************************//***SpecifyLinkerOptions***//*******************************************************/-ecoeff

/*Definetheprogramentrypoint*/-odemo.out

/*Nametheoutputfile*/-mdemo.map

/*Createanoutputmap*//*******************************************************//***SpecifytheInputFiles***//*******************************************************/demo.objfft.objtables.obj连接器命令文件demo.cmd/*************63

/**********************************************************//***SpecifytheMemoryConfigurations***//**********************************************************/MEMORY{PAGE0:RAM_PG:origin=00080h

length=06F80hROM:

origin=0C000h

length=03F80hPAGE1:ONCHIP:origin=00080h

length=0F7FhEXT:

origin=01000h

length=0EFFFh}/****************************64

/*******************************************************//***SpecifytheOutputSections***//*******************************************************/SECTIONS{.text:

load=ROM,page=0

/*link.textintoROM*/var_defs:

load=ONCHIP,page=1

/*defsinRAM*/.data:

fill=07A1Ch,load=ONCHIP,page=1{tables.obj(.data)

/*.datainput*/fft.obj(.data)

/*.datainput*/.=100h;

/*createhole,fillwith07A1Ch*/}/*andlinkwithONCHIP*/.bss:

load=RAM_PG,

page=0,

fill=0FFFFh/*Remaining.bss;fillandlink*/}/****************************65映射文件demo.mapOUTPUTFILENAME:<demo.out>ENTRYPOINTSYMBOL:0MEMORYCONFIGURATIONNameoriginlengthattributesfill

PAGE0:RAM_PG00000080000006f80RWIXROM0000c000000003f80RWIXPAGE1:ONCHIP00000080000000f7fRWIXEXT0000100000000efffRWIX映射文件demo.mapOUTPUTFILENAME:66

SECTIONALLOCATIONMAPoutputattributes/sectionpage origin length inputsections

.text 0 0000c000 00000015 0000c000 00000008 demo.obj(.text) 0000c008 00000007 fft.obj(.text) 0000c00f 00000006 tables.obj(.text)var_defs1 00000080 00000002 00000080 00000002demo.obj(var_defs).data 1 00000082 00000108 00000082 00000000 tables.obj(.data) 00000082 00000000 fft.obj(.data) 00000082 00000100 [fill=7a1c] 00000182 00000008 demo.obj(.data)SECTIONALLOCATIONMAP67

.bss 0 00000080 0000007b 00000080 00000013demo.obj(.bss)[fill=ffff] 00000093 00000000 fft.obj(.bss) 00000093 00000068tables.obj(.bss)[fill=ffff]xy 1 0000018a 00000014 UNINITIALIZED 0000018a 00000014 demo.obj(xy)GLOBALSYMBOLSaddress name address name

00000080 .bss 00000080 .bss00000082 .data 00000082 .data0000c000 .text 00000093 TEMP00000097 ARRAY 00000097 ARRAY00000093 TEMP 000000fb end0000018a edata 0000018a edata000000fb end 0000c000 .text0000c015 etext 0000c015 etext[8symbols].bss 0 00000080 0000007b68系统的调试1.硬件测试2.软件调试1)开发环境的使用2)应用软件的调试3.系统的联调1)制作、使用测试软件2)系统与外部环境的适配性测试3)全系统联调系统的调试1.硬件测试69

第七章工程问题的DSP实现(一)DTMF的编解码

70用DSP实现双音多频(DTMF)的拨号产生和解码。DTMFDual-ToneMultipleFrequency用DSP实现双音多频(DTMF)的拨号产生和解码。71实现步骤对象分析算法设计DSP选择系统设计系统实现系统调试实现步骤对象分析算法设计DSP选择系统设计系统实现系统调试72对象分析

对所要开发的系统的功能、性能要有深入的了解和分析,尤其对技术指标,要作透彻的理解和把握。对象分析对所要开发的系统的功能、性能要有深入的了解和73DTMF用一对频率(行频/列频)来表示一个符号(电话键盘上的0—9,A—D,*,#,共16个符号)

一次按键的时间是100ms,其中,频率对存在的时间是45ms,不允许超过55ms,其余的时间是静音。DTMF用一对频率(行频/列频)来表示一个符号74

75CCITT关于DTMF的指标Lowband:697、770、852、941(Hz) RBW<3.5% Highband:1209、1336、1477、1633(Hz)RBW<3.5% TWIST: STD>4dBREV>8dB DYNRANGE:>25dB GUARDTIME:MINTONETIME45msSNR: NOISE-24dBV

CCITT关于DTMF的指标Lowband:697、776算法设计

算法设计是非常关键的步骤,因为算法决定运算量和存储器的大小,从而决定DSP的选择,进而决定系统的设计,包括硬件和软件的设计。算法设计算法设计是非常关键的步骤,因为算法决定运77DTMF拨号的产生

基于DSP的DTMF的音频信号发生器,使用两个二阶的数字正弦波振荡器,一个产生行频,一个产生列频。DTMF拨号的产生基于DSP的DTMF的音频78

79DTMF发生器的系数和初始条件DTMF发生器的系数和初始条件80DTMF发生器的信号流程DTMF发生器的信号流程81音频检测Goertzel算法是DTMF解码器的基础,实际上是一个两极点的IIR滤波器。DFT或FFT需要在处理之前准备好一个数据块,而Goertzel算法是一个递归的结构,就每个输入的样本进行计算。音频检测Goertzel算法是DTMF解码器的基础,实际上是82Goertzel算法Goertzel算法83Goertzel算法的特点Goertzel算法的IIR滤波器结构涉及两个复共轭极点,但对于实际的DTMF音频检测,只要有幅度信息就够了(实际上使用幅度平方),从而简化为只需要一个实系数参与计算。Goertzel算法要比FFT快得多,因为只需要提供8个行/列频和它们的二次谐波的信息(二次谐波的信息用于将DTMF与话音或音乐区别开来)。Goertzel算法的特点Goertzel算法的IIR滤波器84行频/列频及相应的系数行频/列频及相应的系数85有效性检查信号强度

DTMF行频、列频信号之和的强度是否达到一定的门限值有效性检查信号强度86有效性检查扭曲度

标准扭曲:行频峰值>列频峰值4dB反向扭曲:

列频峰值>行频峰值8dB有效性检查扭曲度87有效性检查二次谐波强度

以便将DTMF信号与其他语音信号、音乐信号等区别开来。有效性检查二次谐波强度88有效性检查数字信息的稳定性

如果一个数字成功地检测到两次,认为该数字是稳定的有效性检查数字信息的稳定性89有效性检查数字信息的有效性

检测到的数字前面必须是静音符时,该数字才是有效的,以便将各次击键区别开来有效性检查数字信息的有效性90

91

92编码器对速度和存储器的要求编码器对速度和存储器的要求93解码器对速度和存储器的要求解码器对速度和存储器的要求94DSP芯片选择算法对DSP芯片计算速度的要求系统的管理(如任务管理、进程管理、存储器管理、I/O管理等)对DSP的要求片内存储器和片外存储器的要求(包括容量的要求和速度的要求)DSP芯片选择算法对DSP芯片计算速度的要求95DSP芯片选择对外设(如串口、并口、定时器、总线宽度、等待状态等)的要求DSP封装对印制板的设计影响甚大开发环境技术支持性能价格比DSP芯片选择96DSP芯片的速度DSP芯片的速度97DSP的片内存储器DSP的片内存储器98DSP的外设DSP的外设99BGA(BALLGRIDARRAY)BGA(BALLGRIDARRAY)100PLCC(PLASTICJ-LEADEDCHIPCARRIER)PLCC(PLASTICJ-LEADEDCHIPCAR101PQFP(PLASTICQUADFLATPACK)PQFP(PLASTICQUADFLATPACK)102PDLP(PLASTICDUAL-IN-LINEPACKAGE)PDLP(PLASTICDUAL-IN-LINEPACK103LCCC(LEADLESSCERAMICCHIPCARRIER)LCCC(LEADLESSCERAMICCHIPCAR104系统设计硬件系统设计软件系统设计工作软件测试软件功能框图(指标分配)电原理图印制板(数字与模拟电路,接地,电源,多层板)系统设计硬件系统设计软件系统设计功能框图(指标分配)105系统的实现从C程序作起

用CCompiler将C源程序编译成为汇编语言源程序,然后汇编、连接后输出可执行代码;也可以使用shell程序,将编译、汇编、连接一齐完成系统的实现从C程序作起106工程问题的DSP实现(一)课件107

108源程序分析器

输入是C源文件。读入源语句,检查语法和语意错误,写出一个中间文件(.if)源程序分析器输入是C源文件。读入源语句,检查109优化器

可选择项。其输入是分析器产生的中间文件(.if)。当运行优化器时,用户可以选择优化的层次。产生一个与中间文件格式相同的高效率版本。优化器可选择项。其输入是分析器产生的中间文件110代码生成器

输入是分析器或优化器产生的中间文件(.if或.opt文件),产生一个汇编语言源文件代码生成器输入是分析器或优化器产生的中间文件111内部列表公用程序

输入是C编译器产生的汇编语言源程序和C源程序。产生的是按C文件的语句展开的汇编语言源文件内部列表公用程序输入是C编译器产生的汇编语言112汇编器和连接器汇编器的输入是代码生成器产生的汇编语言文件,产生COFF目标文件连接器的输入是汇编器产生的COFF目标文件,产生可执行的目标文件汇编器和连接器汇编器的输入是代码生成器产生的汇编语言文件,产113运行C编译器cl500[-options]filenames[-z[link_options][objectfiles]]cl500调用编译器和汇编器的命令。-options影响编译器处理输入文件的途径filenames一个或多个C源文件、汇编语言源文件,或目标文件。-z运行连接器的选择项。link_options影响连接器处理输入文件的途径objectfiles命名编译器产生的目标文件运行C编译器cl500[-options]filena114cl500-qsymtabfileseek.asm–z

编译文件symtab和file,汇编第三个文件seek.asm,连接这三个文件,并使用quiet选择项,抑制输出处理信息cl500-qsymtabfileseek.115如果不使用-q选择项,就会输出以下处理信息:[symtab]TMS320C54xANSICCompilerVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c”==>main“symtab.c”==>lookupTMS320C54xANSICCodegenVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c”==>main“symtab.c”==>lookup如果不使用-q选择项,就会输出以下处理信息:[symtab]116

TMS320C54xCOFFAssemblerversionx.xxCopyright©1997TexasInstrumentsIncorporatedPASS1PASS2NoErrors,NoWarningsTMS320C54xCOFFAssemblerve117汇编器输出的列表文件:1*******************************************2**Assembleintothe.textsection.**3*******************************************40000 .text50000e800 LD#0,A6*******************************************7**Allocate4wordsin.bssforTEMP.**8*******************************************90000 Var_1: .bssTEMP,410汇编器输出的列表文件:1*****************118

11*******************************************12**Stillin.text**13*******************************************140001f000 ADD#56h,A00020056150003f066 MPY#73h,A000400731611**************************119

17*******************************************18**Allocate100wordsin.bssforthe**19**symbolnamedARRAY;thispartof**20**.bssmustfitonasinglepage.**21*******************************************220004 .bss ARRAY,100,12324*******************************************25**Assemblemorecodeinto.text.**26*******************************************2700058000- STLA,Var_12817**************************120

29*******************************************30**Declareexternal.bsssymbols.**31*******************************************32.globalARRAY,TEMP33.end29**************************121连接器-m选择项建立映射列表文件-mfilename该连接器映射列表描述:存储器划分输入与输出段的位置外部符号重新定位后的地址连接器-m选择项建立映射列表文件-mfilename122

当没有发现错误时,连接器就建立一个输出模块,省缺名为a.out。也可以使用-o选择项,将输出模块写入另外的文件:-ofilename其中的文件名就是新的输出模块的文件名当没有发现错误时,连接器就建立一个输出模块,123lnk500–orun.outfile1.objfile2.obj

将ile1.obj和file2.obj连接起来,建立一个名为run.out的输出模块lnk500–orun.outfile1.obj124可以将上述文件名及选择项,再加上注释写入一个命令文件link.cmd

:a.obj /*Firstinputfilename*/b.obj /*Secondinputfilename*/-oprog.out/*Optiontospecifyoutputfile*/-mprog.map/*Optiontospecifymapfile*/并用该命令文件来调用连接器:lnk500link.cmd可以将上述文件名及选择项,再加上注释写入一个命令文件link125包含连接器伪指令的命令文件:a.objb.objc.obj

/*Inputfilenames*/-oprog.out-mprog.map

/*Options*/MEMORY

/*MEMORYdirective*/{RAM:origin=100h

length=0100hROM:origin=01000h

length=0100h}SECTIONS

/*SECTIONSdirective*/{.text:>ROM.data:>ROM.bss:>RAM}包含连接器伪指令的命令文件:a.objb.objc.ob126MEMORY

{

PAGE0:name1[(attr)]:origin=constant,length=constant;

PAGEn:namen[(attr)]:origin=constant,length=constant;

}

PAGE说明一个存储器空间。用户最多可以说明255页。通常,page0是程序存储器,page1是数据存储器。name命名一个存储器范围。一个存储器的名字可以是1—8个字符,其中包括A—Z,a—z,$,.,_。MEMORY

{

PAGE0:name1[(at127

Attr存储器的属性:R存储器可读W存储器可写X存储器可包含可执行代码I存储器可以初始化Attr存储器的属性:128

origin指定存储器的开始地址length指定存储器范围的长度。fill为存储器范围指定一个填入的字符,其值是2-byte的整常数。origin指定存储器的开始地址129TMS320C54x省缺的地址配置:MEMORY{PAGE0:PROG:origin=0x0080length=0xFF00PAGE1:DATA:origin=0x0080length=0xFF80}SECTIONS{.text:PAGE=0.data:PAGE=0.cinit:PAGE=0;cflagoptiononly.bss:PAGE=1}TMS320C54x省缺的地址配置:MEMORY130连接器使用举例

本例连接三个目标文件demo.obj、fft.obj和tables.obj,并建立输出文件demo.out。符号SETUP是程序的输入点。连接器使用举例131连接器命令文件demo.cmd/******************************************************//***SpecifyLinkerOptions***//*******************************************************/-ecoeff

/*Definetheprogramentrypoint*/-odemo.out

/*Nametheoutputfile*/-mdemo.map

/*Createanoutputmap*//*******************************************************//***SpecifytheInputFiles***//*******************************************************/demo.objfft.objtables.obj连接器命令文件demo.cmd/*************132

/**********************************************************//***SpecifytheMemoryConfigurations***//**********************************************************/MEMORY{PAGE0:RAM_PG:origin=00080h

length=06F80hROM:

origin=0C000h

length=03F80hPAGE1:ONCHIP:origin=00080h

length=0F7FhEXT:

origin=01000h

length=0EFFFh}/****************************133

/*******************************************************//***SpecifytheOutputSections***//*******************************************************/SECTIONS{.text:

load=ROM,page=0

/*link.textintoROM*/var_defs:

load=ONCHIP,page=1

/*defsinRAM*/.data:

fill=07A1Ch,load=ONCHIP,page=1{tables.obj(.data)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论