打印

如何使用单片机实现DSP在线调试

[复制链接]
1749|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probug|  楼主 | 2012-5-25 13:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通常情况下,进行DSP系统开发调试时,都要配备一片SRAM芯片作为片外程序RAM。调试时,使用相应的仿真板将程序下载到SRAM中,这样 DSP系统通过运行SRAM中的程序代码来实现相应的操作。可以看到,DSP系统调试时,关键是要将程序下载到SRAM中,因此如果能将程序代码通过单片 机写入 SRAM中,则同样可以完成对DSP系统的调试。下面具体介绍在不使用仿真板的情况下,如何运用单片机AT89S5l对DSP芯片 TMS320LF2407进行在线调试。
1 硬件设计
1.1 TMS320LF2407在线调试的实现过程
    完成DSP系统的调试,首先要将程序的源代码写入片外SRAM中。此时,单片机与SRAM组成一个系统,单片机可将分离出来的DSP程序代码写入SRAM 中。完成这一操作后,切断单片机与SRAM的联系,使DSP与SRAM组成一个独立的系统,并将LF2407配置为微处理方式,即MP/MC引脚置为高电 平。这样DSP系统开始工作,LF2407从外部SRAM的0000H单元处开始执行程序代码。当修改DSP的程序时,只需修改单片机中相应的代码区,然 后重新写入SRAM中即可。单片机的ISP功能能非常方便的完成这一过程,实现DSP系统的在线调试。
1.2 硬件实现
    单片机选用AT89S5l,该芯片具有在系统编程功能,能通过并口下载线十分方便地修改和下载程序。TMS320LF2407的片外程序RAM选用64K ×16位的SRAM芯片CY7C102lV,该芯片的BHE和BLE引脚分别用来使能SRAM的高8位和低8位。硬件框图如图l所示。

由于89S51是5V供电,而CY7C102lV是3.3V供电,因此要进行5V和3.3V电平的转换。
2 软件设计
    TI公司的CC’C2000编译后生成的*.out文件为通用对象文件格式(coft),该格式是一种结构性文件格式,而单片机的烧入程序必须为bex文件格式,所以要将*.out文件转化为hex文件格式才能烧人单片机中。转换步骤如下。
    ①生成*.out形式的公用目标文件(coff)。当在TI公司的集成开发环境CC’C2000下进行程序开发时,都会经过编译和链接,最后生成*.out文件。
    ②对*.out文件进行提取,从中筛选出对最后装载有用的代码和地址信息。
    第一步所产生的*.out文件由于是coff格式的文件,其可重定位特性使得用户可以对程序在允许的地址范围内灵活地安排。正因为如此,*.out文件还 不是完全的可执行代码,它里面包含有一些关于程序中各个段的诸如起始地址、段长度这样的辅助信息,如果把这些信息连同程序代码都装入DSP内部,程序是不 会被正常执行的。这时必须要对*.out进行辅助信息与可执行代码的提取与分离,这个任务要靠专门的程序完成。这里采用TI公司提供的程序,程序的名称是:coff_both.exe。它可以在TI的网站上免费下载。
    利用该程序将*.out文件进行操作,最后生成所需的*.out.c文件。具体操作是把Coff_both.exe和exam-pie.out文件放在同 一目录下,在DOS命令提示符下键入:Coff_both-out example.out,这时就会生成example.out.c格式的文件。该文件的形式见如下。
    sectlon=,vectors
    src_addr=0x0
    length=0x6(6)
    dest_addr_0x0
    space=0
    0x7980,Ox0150,0x7980,0xol50,
    0x7980,0x0150,
    checksum=0x78D0
    seCtlon=.text
    src_addr=0x0
    length=0xl3(19)
    dest_addr=0x150
    space=0
    0xBE4l,0xBE46,0xBE42,0xBE44,
    0xBCEO,0xAE18,0x83FE,0xAE29,
    Ox00E8,oxBCE1,0xAEl0,0x0000,
    0xAE1A,0xFFAA,0x8B00,0x8B00,
    0x8B00,0x7980,0x015E.
    Checksum=0xF59
    可以看到,这个程序有两段程序.vect和.text,起始地址分别为0000h和0150h,分别由6个字和19个字的代码组成。这些十六进制代码则是最后真正被执行的LF2407程序代码,也是单片机需要写入SRAM中的代码。
    第二步生成的*.out.c文件明确地告诉了程序有几个段,每个段的大小,段的起始地址以及每个段的十六进制代码。有了这个文件,就知道该写些什么内容到 SRAM中去才能够开始执行LF2407的程序了。接下来要做的就是编写单片机的应用程序把*.out.c文件中的十六进制代码写入SRAM内部。

3 结 论
    通过单片机对LF2407进行程序装载属于一种基于RAM的在线编程,它不用对程序存储器进行烧写,属于一种软配置。利用单片机AT89S5l的ISP功能可以实现程序的修改和烧写,使系统具有在线开发的特点。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

324

帖子

10

粉丝