TMS320LF2406调试入门Word下载.docx

上传人:b****4 文档编号:17268959 上传时间:2022-11-30 格式:DOCX 页数:15 大小:21.15KB
下载 相关 举报
TMS320LF2406调试入门Word下载.docx_第1页
第1页 / 共15页
TMS320LF2406调试入门Word下载.docx_第2页
第2页 / 共15页
TMS320LF2406调试入门Word下载.docx_第3页
第3页 / 共15页
TMS320LF2406调试入门Word下载.docx_第4页
第4页 / 共15页
TMS320LF2406调试入门Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

TMS320LF2406调试入门Word下载.docx

《TMS320LF2406调试入门Word下载.docx》由会员分享,可在线阅读,更多相关《TMS320LF2406调试入门Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

TMS320LF2406调试入门Word下载.docx

C:

\CCStudio-V3.1\Drivers\Seedusb2.cfg

安装USB驱动程序

插上仿真器,这时就会跳出新硬件向导画面,不要Windows自动安装,选从列表或指定位置安装,点击“浏览”直接去包含有:

:

Seedusb2.inf和Seedusb2.sys文件的文件夹,安装即可.

将仿真器JTAG头插入目标板,上电,运行USB20emurst.exe:

点击Rest在下面就会出现:

“SEEDUSB2.0XDS510CARDISRESET,HARDWAREVERION1”

表明连机正常:

现在就可使用了。

点击桌面SetupCCStudiov3.1配置CPU和驱动文件;

一下为要选择项以供参考:

F2406XDS510Emulator

在上述选项上点右键,选Properties进入;

Aut-Generateboarddatafilewithextraconfigur

\CCStudio_v3.1\drivers\Seedusb2.cfg

I/OPort0X240

若要烧芯片还要安装C2000-3.1-flash.exe插件程序,直接安装即可.

三、搭建调试平台

1.调试平台构思:

由于LF2406不像LF2407那样可以在外部扩充程序RAM,调试相对比较困难;

仅靠烧写芯片效率太低;

为了减少写片次数,提高工作效率,我们充分利用LF2406中的2K宝贵的SARAM资源:

将在有限的舞台上,将大的程序分成小块,分别调试,等调好了各个程序模块,再将它们组合成大系统整体调试。

2实现方法:

应当明白,

CCS3.1集成环境下

File-LoodFrogram只能将程序加载RAM上运行;

借助仿真器运行;

Tool-On-chipflashprogram只能将程序烧写到FLASHA上;

不用仿真器自行运行;

LF2406中存储区的安排是固定的;

<

程序存储器中

a.0000H~7FFFH为FLASH;

b.8000H~87FFH为SARAM;

(PON=1)

c.0000H~003FH为中断矢量;

d.FF00H~FFFFH为DRAM;

(CNF=1)

数据存储器中:

a.0000H~005FH为D寄存器区;

b.0060H~007FH为DARAM的B2区;

c.0200H~02FFH为DARAM的B0区;

(CNF=0)

d.0300H~03FFH为DARAM的B1区;

e.0800H~0FFFH为SARAM区;

(PON=0)

f.7000H~7FFFH为寄存器区;

由上面的分析可知

FLASH区最大32K;

接下来能用到程序上的只有2KSARAM,256字的DRAM的B0区一般不用。

因此,我们将程序代码分为两部分:

.基本固定部分-放入FLASH;

尽量多放:

调试通过的部分就放入;

.频繁变化部分-放入SARAM;

尽量少放;

为了便于相互连接,在每一部分的代码都要明确定位:

FLASH部分:

.中断向量表,这是固定的,用户不能随便定位:

常定义以为VECTORS段,地址:

0000H~003FH;

.外围模块中断向量表,用户可定位,常定义为PVECS段,地址:

44H~FFH;

.中断处理程序的公共代码-GISR,用户可自行定位,此处定义为PRGISR段,地址为:

200H~FFFH;

SARAM部分:

.主程序代码区,用户可自行定位,常定义为TEXT段,地址:

8000H~86FFH;

.二级中断处理程序代码区,因为不论是定时器中断,AD转换,或串行通讯等中断处理都用同一区域来分别调试的,因此命名为TEST-ISR,测试中断处理程序;

定义为RAMISR段,地址为:

8700H~87FFH:

4.程序执行过程:

上电从FLASH的0000H跳至SARAM的8000H处开始运行主程序:

中断时,假定XINTI设置为高优先级中断:

中断外部触发PIE向CPU申请INTI内核中断触发跳到FLASH的中断向量表INTI的0002H由0002H跳到FLASH的GISR-0200H的中断公共处理程序得到FLASH的外围中断向量表中的地址:

PVECTORS+2XPIVR由FLASH的外围表找到RAM中的8700H的TEST-ISR程序入口完成中断任务处理返回

四、注意事项

初学的朋友,特别是由单片机转型过来的DSP工程师应注意一下几个问题:

(我是受过教训了)

1、禁止内部看门狗,再调试;

2、注意外部看门狗捣乱,如烧写芯片时;

3、不要将指令或宏放在标号位置(第一列),指令和宏就当成标号了,指令也就不存在了,又不会报错,很难察觉,这一点和单片机大不相同;

一定要注意;

4、DSP的位操作功能很差,要以端口为单位来操作;

有用OR,AND或XOR指令;

5、DSP的许多重要位清零和单片机不同,并非写0而是写1;

6、当用发光管指示有无脉冲时,当脉冲频率太高或脉宽太窄时容易误判断:

认为是高电平或低电平,而无脉冲;

要借助示波器判断。

刚开始最好将闪烁频率设置低一点。

7、烧写LF2406时,一定保证40h---43h为FFFFH(LF2406A);

;

CLKIN设置为有源晶振频率,PLL设置值保证与CLK的乘积不大于40MHz(LF2406A,30MHz--LF2406);

不能正常写时,重新启动CCS3.1再写;

五、主要代码

1、硬件背景介绍

这儿的目的是构建调试平台,主要测试FLASH与SARAM间程序流通,中断的配合,程序很简单:

IOPE4口输出十多Hz的方波,去触发XINT1外部中断口16脚,中断处理程序通过IOPE3驱动放光管闪烁显示。

先将相对比较稳定变化不频繁的代码烧入LF2407,接下来在SARAM中通过LOADPROGRAM加载程序运行调试。

本程序有两个CMD文件,需要烧写芯片时选FLASH.CMD;

需要加载程序时选用SARAM.CMD。

注意,许多变换是通过伪指令.if,.else,.endif完成。

20MHz有源晶振,CLKOUT为20MHz;

比例系数为1。

在用SARAM调试程序时,实际上还要用FLASH部分的代码,两者相互配合完成调试,又符合DSP程序流程规范。

2、主要程序()

主程序-----------DSPINVER.ASM

.title"

DSPINVER.ASM"

DP_B2.set0;

page0ofdataspace

ST0REG.usect"

.usect"

1

ST1REG.usect"

AR0REG.usect"

AR1REG.usect"

AR2REG.usect"

AR3REG.usect"

AR4REG.usect"

AR5REG.usect"

AR6REG.usect"

AR7REG.usect"

TREG_TMP.usect"

PREG_TMP.usect"

================================

FLASHP.set1

SARAMP.set0

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SLECTP.setSARAMP;

FLASHP;

烧写芯片选FLASHP;

加载程序选SARAMP

.def_c_int0

.ifSLECTP

;

==========LOADFLASH

.copy"

Vector.ASM"

====================

.else

==========LOADSARAM

.defPVECTORS

.sect"

.pvecs"

PVECTORS:

.endif

.include"

F2407REGS.H"

;

引用头部文件

宏定义

IOPE3---CPUgB-----O----------D3

------------------------------------------------------

D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0

1101100100001000

------------------------------------------------------

CPUgB_F.macro;

驱动LED闪动;

ldp#PEDATDIR>

>

7

laclPEDATDIR

xor#00008h

saclPEDATDIR

.endm

TEST_F.macro;

产生方波信号驱动XINT1;

xor#00010h

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

.text

_c_int0:

nop;

1000H/8000H

callInit_DSP

※※※※※※※※※※※※※※※※※※※※※※

loop:

nop

TEST_F

callDelay

bloop

※※※※※※※※※※※※※※※※※※※※※

Init_DSP.ASM"

----------------------------------------------------------

function:

Delay延时

input:

ar4

output:

---

usege:

ar4, 

ar0

Delay:

larar4,#01h

dy_lp:

larar0,#0ffffh

dy_lp0:

nop

mar*,ar0

banzdy_lp0

mar*,ar4

banzdy_lp

ret

==========================================================

中断处理区域

--------------------通用中断程序入口----------------------

.prgisr"

GISR:

0200h---FLASH

-----保护现场程序开始----------------------

sst#0,ST0REG

sst#1,ST1REG

ldp#DP_B2

push

sarAR0,AR0REG

sarAR1,AR1REG

sarAR2,AR2REG

sarAR3,AR3REG

sarAR4,AR4REG

sarAR5,AR5REG

sarAR6,AR6REG

sarAR7,AR7REG

spm0

pac

saclPREG_TMP

mpy#1

saclTREG_TMP

-----保护现场程序结束----------------------

-------------中断检查----------------------

ldp#PIVR>

laccPIVR,1

add#PVECTORS

bacc

-----------------------假中断处理--------------------------

PHANTOM:

CLRCINTM

RET

.ramisr"

TEST_ISR:

8700h---SARAM

CPUgB_F

ldp#XINT1CR>

splk#8001h,XINT1CR

-----恢复现场程序开始----------------------

larAR0,AR0REG

larAR1,AR1REG

larAR2,AR2REG

larAR3,AR3REG

larAR4,AR4REG

larAR5,AR5REG

larAR6,AR6REG

larAR7,AR7REG

ltPREG_TMP

ltTREG_TMP

pop

lst#1,ST1REG

lst#0,ST0REG

-----恢复现场程序结束----------------------

clrcINTM

ret

==========================================================

====================

.endif

EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

.end

Vector.ASM文件()

-------------------定义主向量段--------------

--------------------Vector.ASM

.sect"

.vectors"

;

定义主向量段

RESETB8000h;

_c_int0;

地址0000H,复位,优先级1

INT1BGISR;

200h;

FLASH;

地址0002H,INT1,优先级4

INT2BPHANTOM;

地址0004H,INT2,优先级5

INT3BPHANTOM;

地址0006H,INT3,优先级6

--------------------------------------------------------------------------------------

----------------定义子向量段-------------------------

.sect"

---0044h;

定义子向量段

PVECTORSBPHANTOM;

偏移地址0000H

B8700h;

TEST_ISR;

PHANTOM;

偏移地址0001H

BPHANTOM;

偏移地址0002H

偏移地址0003H

偏移地址0004H

偏移地址0005H

偏移地址0006H

偏移地址0007H

偏移地址0008H

偏移地址0009H

----------------------------------------------------

FLASH.CMD文件()

/*---------FLASH.CMD----------*/

-stack40

/*-------------------------------------------------------------------------*/

/*LF2406FLASHSARAMDARAM*/

MEMORY

{

PAGE0:

VECS:

origin=0h,length=40h

PVECS:

origin=44h,length=100h

PRGISR:

origin=200h,length=0E00h

PROG:

origin=1000h,length=7eafh

PAGE1:

B2:

origin=0060h,length=20h

B01:

origin=0200h,length=80h

B02:

origin=0280h,length=80h

B11:

origin=0300h,length=80h

B12:

origin=0380h,length=80h

}

SECTIONS

.reset:

{}>

VECSPAGE0

.vectors 

:

VECSPAGE0

.pvecs:

PVECSPAGE0

.prgisr:

PRGISRPAGE0

.text:

PROGPAGE0

.usect:

B2PAGE1

.bss:

B01PAGE1

.data:

B02PAGE1

.data0:

B11PAGE1

.stack:

B12PAGE1

FLASH.CMD文件()

/*---------SARAM.CMD----------*/

/*--------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1