这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » TI C54xx DSP 十天速成讲义 <一>

共138条 1/14 1 2 3 4 5 6 ›| 跳转至

TI C54xx DSP 十天速成讲义 <一>

菜鸟
2006-12-15 18:26:19     打赏
[replyview][实验一 新手上路] 初学者编写的第一个程序通常是控制XF引脚的变化,然后用示波器测量XF脚波形或观察与相接的LED。这个程序也常常用来测度一下DSP能否正常工作。 实验1.1 最简单的程序:控制XF引脚周期性变化 实验目的:通过简单的程序了解DSP程序的结构,熟悉CCS开发环境。 ************************************************************* *最简单的程序:TestXF1.asm *循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化 *常用于检测DSP是否工作。 ************************************************************* .mmregs ;预定义的寄存器 .def CodeStart ;定义程序入口标记 .text ;程序区 CodeStart: ;程序入口 SSBX XF ;XF置1 RPT #999 ;重复执行1000次空指令产生延时 NOP RSBX XF ;XF清0 RPT #999 ;重复执行1000次空指令产生延时 NOP B CodeStart ;跳转到程序开头循环执行 .end NOP指令执行时间为一个时钟周期,设DSP工作频率是50MHz,可以估算出XF引脚电平的变化频率约为:50M/2000=25kHz 在没有示波器的情况下,就要将程序1.1稍作改进,增加延时,用一个延时子程序将XF脚电平变化频率降到肉眼可分辨的程度,就可以用LED来显示电平的变化,程序如下: 实验1.2 子程序调用 实验目的:学习子程序的调用 ************************************************************* *TestXF2.asm *对TestXF1.asm稍作改进,用延时子程序设置较长的延时, *可以用试验板上的LED看到XF引脚电平的变化 ************************************************************* .mmregs ;预定义的寄存器 .def CodeStart ;定义程序入口标记 .text ;程序区 CodeStart: ;程序入口 SSBX XF ;XF置1 CALL Delay ;调用延时程序 RSBX XF ;XF清0 CALL Delay ;调用延时程序 B CodeStart ;跳转到程序开头循环执行 ************************************************************** *延时子程序:Delay *用两级减一计数器来延时。调整AR1和AR2的大小LED闪烁的频率不同 ************************************************************** Delay: STM #999,AR1 ;循环次数1000 LOOP1: STM #4999, AR2 ;循环次数5000 LOOP2: BANZ LOOP2,*AR2- ;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1 RET .end ************************************************************** *注意这种延时方法并不精确,需要精确定时必须用定时器。 *按此法延时的近似公式为:4*(AR2+1)*(AR1+1)*时钟周期 *当DSP工作在50MHz(时钟周期20ns),AR1=999, AR2=4999时 *延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz ************************************************************** 设计指导: 1.源代码书写格式 源代码的书写有一定的格式,初学者往往容易忽视。简单归纳如下: 1.每一行代码分为三个区:标号区、指令区和注释区。标号区必须顶格写,主要是定义变量、常量、程序标签时的名称。指令区位于标号区之后,以空格或TAB格开。如果没有标号,也必须在指令前面加上空格或TAB,不能顶格。注释区在标号区、程序区之后,以分号开始。注释区前面可以没有标号区或程序区。另外还有专门的注释行,以*打头,必须顶格开始。 2.一般区分大小写,除非加编译参数忽略大小写。 3.标点符号有时不注意会打成中文全角字符导致错误。 书写格式的要求在很多DSP书里都没有提,初学者往往只把书上的代码输入进去,编译时得到错误的提示,而不知所措。其中最容易犯的错误指令顶格写,不过一般经提示后不会犯第二次。 有些格式CCS并没有做要求,但注意养成良好的代码书写风格,增加代码的可读性。以上两个例子的书写风格可作参考,但不是硬性规定: 1.标号区占3个TAB的间隔,即12个字符 2.指令中的指令码占两个TAB间隔,然后是操作数。 3.每一行的尾注能对齐的尽量对齐 4.标明一段程序功能的注释以*号打头顶格写,如果功能说明的注释较多,用分格线框起来。 此外其它编程语言的编程风格也可以借用过来,比如标示符命名规则、程序说明的要求等。如果项目组有规定,则按规定执行。 本书的代码尽量保持一定的风格,不过读者可以发现前面的代码注释较多,后面随着学习的深入,一般不会对每一条指令加注释,只注明程序段的功能。另外代码贴到word里后,格式有些错位,无法一一纠正。 2.链接配置文件 一个完整的DSP程序至少包含三个部分:程序代码、中断向量表、链接配置文件(*.cmd)。这里介绍一下链接配置文件文件,对本次试验影响不大的中断向量表将在后文介绍。 连接配置文件的确定了程序链接成最终可执行代码时的选项,其中有很多条目,实现不同方面的选项,其中最常用的也是必须的有两条:1.存贮器的分配 2.标明程序入口。以本次实验为例,下面的简单的链接配置文件就够用了: /* TestXF.cmd */ -e CodeStart /*程序入口,必须在程序中定义相应的标号*/ MEMORY { page 0: PRAM: org=0100h len=0F00h /*定义程序存贮区,起始0100H,长度0F00H*/ } SECTIONS{ .text:>PRAM page 0 /*将.text段映射到page0的param区*/ } 由于每个程序都需要一个链接配置文件,可以编写一个满足通常需要的链接配置文件。作为本手册通用的链接配置文件如下,可以满足本书大部分程序的需要。在未特别指明的情况下使用这个通用的链接配置文件: /* 5402.cmd */ -e CodeStart /*程序入口,必须在程序中定义相应的标号*/ -m map.map /*生成存储器映射报告文件 */ MEMORY { PAGE 0: VECT: org=0080h len=0080h /*中断向量表*/ PARAM: org=100h len=0F00h /*代码区*/ PAGE 1: DARAM: org=1000h len=1000h /*数据区*/ } SECTIONS { .text :> PARAM PAGE 0 /*代码段*/ .vectors :> VECT PAGE 0 /*中断向量表*/ STACK :> DARAM PAGE 1 /*堆栈*/ .bss :> DARAM PAGE 1 /*未命名段*/ .data :> DARAM PAGE 1 /*数据段*/ } 更多参考: 1.关于代码书写格式:SPRU102: TMS320C54x Assembly Language Tools User's Guide,3.5 Source Statement Format 2.关于链接配置文件:SPRU102: TMS320C54x Assembly Language Tools User's Guide,7.5 Linker Command Files,7.7 The MEMORY Directive,7.8 The SECTIONS Directive 练习: 1、试一下不按规定格式书写代码会产生什么样的编译错误。 2、试一下将链接配置文件中的MEMORY,SECTIONS改成小写会出现什么样的编译错误。 3.修改程序1.2中AR1,AR2的值,观察LED闪烁频率 [/replyview]



关键词: C54xx     十天     速成     讲义     程序     延时     代码         

菜鸟
2006-12-16 03:02:00     打赏
2楼
look一下 [em02]

菜鸟
2006-12-16 08:12:00     打赏
3楼
[em02][em04][em06]

菜鸟
2006-12-16 20:54:00     打赏
4楼
xiexie [em07]

菜鸟
2006-12-18 17:28:00     打赏
5楼
look

菜鸟
2006-12-19 01:47:00     打赏
6楼
look

菜鸟
2006-12-19 03:29:00     打赏
7楼
~~~~~~~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!

菜鸟
2006-12-19 18:13:00     打赏
8楼
看看 [em07]

菜鸟
2006-12-19 19:21:00     打赏
9楼
呵呵,楼主好主意!这样帖子才不止于沉下去

菜鸟
2006-12-20 05:20:00     打赏
10楼
看看

共138条 1/14 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]