用单片机实现DSP在线调试的一种方法

发布者:SerendipityDawn最新更新时间:2006-06-15 来源: 单片机及嵌入式系统应用关键字:单片机  在线  烧写 手机看文章 扫描二维码
随时随地手机看文章

  通常情况下,进行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电平的转换。图1中,单片机端的地址线和控制线分别通过 74LVCl6245和74LVC245将5V电子转换为3.3V电平。数据线的电平转换建议采用74LVC245,该芯片采用5V和3.3V双电源供电,它可以将数据线上的5V和3.3V电平相互转换,可实现单片机读、写RAM中的数据。读出的数据可以通过串口发送到计算机上,这样可以检验写入 SRAM中的代码是否正确。89S5l为8位单片机,而CY7Cl02lV和DSP数据位都为16位,所以代码的写入要分两次写入,先写低8位,再写高8 位。高8位数据线和低8位数据线之间可以加一个8位的拨码开关,当向SRAM中写数据时合上开关,而当要运行DSP时则必须将拨码开关断开。当代码正确写入SRAM后,将DSP的MP/MC引脚跳至高电平,选择MP方式运行片外程序RAM复位后,即可以使DSP运行。设计中一定要注意以下情况:由于MCU -SRAM和DSP-SRAM两个系统的数据线和地址线存在共用的情况,所以当一个系统在运行时,数据线和地址线不能受到另一芯片相关引脚状态的影响,否则这一系统将无法正常运行。因此,一定要注意控制好各个芯片的片选信号,以保证两个系统分别运行时地址线和数据线不相互影响。

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内部。程序框图如图2所示。

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

关键字:单片机  在线  烧写 引用地址:用单片机实现DSP在线调试的一种方法

上一篇:基于ADmC812和DSP的实时数据采集系统设计
下一篇:用单片机实现DSP在线调试的一种方法

推荐阅读最新更新时间:2024-05-02 20:25

51单片机“积木式”实验板的制作
这套实验板每块板上的元件数不多,采用万能板和敷铜板丙种方法制作均可,上图中的实物就是用l5xLOCm万能板制作的。主控板的制作要注意的是PO口的引出端,从主控板原理下图可以看到,PO口引出端接线柱的排列方向和51 芯片 的PO口引脚的排列方向正好相反,所以要接跳线,别的三个 端口 的对外接线柱排列方向和51芯片的端口引脚方向一致。这样安排主要是保证不管主板怎样摆放,板上边两个端口各自的8个接线柱排列从左到右分别按PX.7、PX.6、...、PX.1、PX.0(X为0、1、2、3)的顺序,这样容易记忆,特别是外接数码管驱动时尤为方便。 另外要注意各元件的安装高度,保证40脚锁紧式插座装上芯片后,锁紧柄按下不被板上所装的元件挡住。
[单片机]
51<font color='red'>单片机</font>“积木式”实验板的制作
STM32单片机怎么实现?
有一次我在给内部学员直播的时候,有几个小伙伴问我,为什么要进入临界,临界有什么用? 当时一时半会没想到好的解释,今天举几个例子来解答下。 如果有大佬觉得我说得不对请私聊我纠正,不要偷偷在评论区喷我,我改还不行吗。 进入临界和退出临界,我第一次接触是在ucos系统,当时我也感觉这个专业术语很牛逼很复杂的样子。 等我讲完人话,你会发现其实也挺low。 进入临界就是关闭单片机总中断, 退出临界 就是恢复单片机中断 , 记住最好是恢复,不是打开 ,因为进入临界之前单片机总中断未必是开着的。 那为什么要进入临界?有什么作用? 我们假设一种场景: 我们来看这样一段代码。 假设我们程序执行到第12行,也就是a = 0的位置,*p的值肯定
[单片机]
如何使用ATtiny85单片机制作便携式超声波测距仪
在很多应用中,经常需要测量物体与人、设备或车辆等之间的距离,例如机器人运动控制、车辆控制、盲人手杖、医疗设备等。测量距离有多种方法,其中使用超声波传感器进行测距是最便宜的方法之一。在本篇文章中,我们将使用ATtiny85单片机和OLED显示模块以及HC-SR04超声波传感器来制作一款超声波数字测距仪。我们在自制了PCB电路板,该电路板可用于距离测量、物体检测和许多其他应用。 所需的组件 ● ATtiny85单片机 ● HC-SR04 超声波传感器 ● I2C OLED 显示模块 ● AMS1117 5V 稳压器 ● 3× 10KΩ 电阻 ● 1× 10 µf 电容 ● 9V电池 超声波测距仪的电路图 使用 A
[单片机]
如何使用ATtiny85<font color='red'>单片机</font>制作便携式超声波测距仪
一种用单片机制作的高频正弦波逆变器
1.引 言   逆变器有方波逆变器和正弦波逆变器两大类,方波逆变器虽然结构筒单,造价低廉,但是由于谐波太多,不适合感性、容性电路的工作,而市场上的正弦波逆变器的价格普遍较高,使一些用户难以接受,从而限制了它的推广和应用。本文主要介绍一种简单实用的正弦波逆变器。   正弦波脉冲调制是正弦波逆变器的关键,它们都需要一个正弦波发生器,利用它产生的正弦波和三角波(锯齿波)进行比较,实现正弦波调制。产生正弦波的方法和途径很多。通常应用的方法有模拟式和数字式两类,通过不同的多种方式去实现。如用带滤波电路和正反馈放大器构成的正弦波振荡发生器电路,这是最常用的经典电路,但调整较复杂,频率精度不高。还有用函数发生器等方法产生正弦波电路。用大规模
[电源管理]
一种用<font color='red'>单片机</font>制作的高频正弦波逆变器
STM32在线调试正常,上电运行不正常
贴了两块样板,烧写同样的固件。其中一块工作正常,但是另外一块出现了很奇怪的现象:在线调试正常;每次烧写完后工作正常;重新上电有时候工作正常,有时候工作不正常;工作不正常时,按下复位按键,恢复正常。 工作异常现象:main函数中的系统运行指示灯不闪烁,但是初始化过程中点的一个灯是亮的!说明程序运行一段时间后,不工作了。 由于在线调试模式,板子工作正常,无法通过在线调试的方式判断程序运行的异常状态。 分析可能的原因: 1、初始化过程中,程序陷入死循环。但程序初始化过程中,没有while(1)死循环的代码。 2、板子上电后不断复位,导致无法进入main函数中的while(1)循环。 问题查找: 硬件: 1、确认BOOT0管脚接10k
[单片机]
恩智浦推出集成USB驱动器的ARM Cortex-M0微控制器
恩智浦半导体NXP Semiconductors N.V.近日宣布推出LPC11U2x系列,这是业界首款基于ARM® Cortex™-M0处理器并集成USB驱动程序的微处理器。LPC11U2x在其ROM中集成了多款USB驱动程序,而使其闪存达到利用率最大化,可节省最多16KB的代码空间,同时还提供经全面测试并且易于使用的API程式,只需几分钟即可完成USB集成。恩智浦LPC11U00系列微处理器搭载了最高128 KB闪存和最高4K EEPROM,专门针对消费、工业、手持和计算应用而设计,为工程师提供低成本、易用型USB解决方案的理想选择。 恩智浦同时还宣布将启动一项全球计划,向MCU客户提供供应商ID(VID)的可转让授权
[单片机]
恩智浦推出集成USB驱动器的ARM Cortex-M0<font color='red'>微控制器</font>
高性价比Flash MCU系列【盛群半导体】
盛群推出全新精简的New Flash MCU系列,有I/O型的HT68F1x系列及A/D型的HT66F1x系列,全系列符合工业上 ﹣40℃ ~ 85℃工作温度与高抗噪声之性能要求,搭配盛群ICP (In Circuit Programming)技术方案,可轻易实现成品韧体更新,可有效提高生产效能与产品弹性。 New Flash MCU系列Program Memory为1~4K Words,SRAM由64~192 Bytes,除Crystal、ERC mode外并内建精准Internal RC oscillator,提供4/8/12Mhz 及32Khz四种频率.具有4个software SCOM输出,可直接驱动小
[单片机]
高性价比Flash <font color='red'>MCU</font>系列【盛群半导体】
基于多线程温度控制专家系统
0 引言     随着科学技术的发展,温度的自动控制已经广泛地应用在生产和生活中,因此对自动控温方法的研究具有很强的实际意义。由于温度具有大惯性和纯延滞的非线性特性,实际温度控制过程的复杂性又使温度控制系统的参数不易确定,因此实际的温度控制系统是一个复杂的自动控制系统,用一般的控制理论难以得到较为满意的结果。以此为目的,在此设计了基于80C196KB单片机为核心的温度控制系统,通过多线程和专家系统优化程序的算法,对温度进行闭环控制,从而达到精确控温的目的。 1 硬件系统设计     图1为系统原理框图,通过图示可以看出,硬件系统分为:温度采样及放大、显示、按钮输入、温度控制四个部分。系统首先通过AD590采样将温度信号转化为电压信号
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved