用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

两类DSP芯片的引导过程分析

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:37:59
.obj文件,对于C5402,编译时要采用-V548的编译描述符。

(2)链接文件,将.obj文件生成.out文件。.out文件中应包括初始化的段落。如.text,.const,.cinint等。以上两步在仿真时,也需要执行,以便得到仿真用的.out文件。

(3)使用数制转换工具生成.HEX文件或.BIN文件,C40使用的数据转换工具为hex30.exe,C5402使用数制转换工具编写命令文件,命令文件的编写很重要,下面分别例举了C40和C5402系统引导的两个CMD命令文件。

例1:C40系统引导的CMD文件

myfile.out /*要进行转化的COFF文件名*/

-i /*建立INTEL十六进制文件的输出*/

-image /*产生ROM所指出的内存映射*/

-o n_t_fcom.hex /*输出的文件名*/

-map n_t_hex.map /*输出的MAP文件名*/

-romwidth 8 /*EEPROM的数据宽度*/

-cg 000000000H /*全局数据总线控制字*/

-cl 3e3fbfd0H /*本地数据总线控制字*/

-datawidth 32 /*数据宽度*/

-memwidth 8 /*存储器的宽度*/

-boot /*将所有的输入文件创建引导表*/

-bootorg 0000H /*EPROM的0000H,系统的0030 0000H*/

-ivtp 00700000H /*IVTP指针的初始值*/

-tvtp 00000000H /*TVTP指针的初始值*/

-iack 0300000H /*IACK指令的响应地址*/

-e 00704000H /*程序的开始执行地址*/

ROMS /*ROM的映射范围*/

{

EPROM:org=00300000h,len=8000H

}

例2:C5402系统引导CMD命令文件

Myfile.out /*要进行转化的COFF文件名*/

-e 0300H /*程序运行的入口点*/

-i /*建立INTEL十六进制文件的输出*/

-boot /*将所有的输入文件创建引导表*/

-bootorg 0000H /*EPROM中引导表的始地址*/

-memwidth 8 /*EEPROM的数据宽度是8位*/

-o myfile.hex /*输出的文件名*/

下面给出操作符的几点说明:

(1)-bootorg指定引导表的地址,注意这里使用的是0000H,.HEX文件的始地址就是0000H。在C40中,EEPROM28C256的0000H地址单元,在系统中地址是0030 0000H。若改为-bootorg 0030 0000H,在用烧录器打开.HEX文件时,可以看到起始地址是0030 0000H,若将.HEX文件烧到EEPROM中,需要修改烧录芯片的起始地址,比较麻烦。但你可以将.HEX文件转化为.BIN文件,则地址就不必修改。

(2)输出文件的格式

-a 输出ASCII码的十六进制文件

-I 输出INTEL十六进制文件

-m1 输出Motrorola的S1数据格式文件

-m2 输出Motorola的S2数据格式文件

-m3 输出Motorola的S3数据格式文件

-t 输出TI的数据格式文件

-x 输出Tektronix数据格式文件

(3)检查.HEX文件正确与否,可以查看MAP映射文件,在.MAP文件里列出了.HEX文件中的一些具体配置。如32BIT数据位的排放顺序,即4个字节的排放顺序;系统引导表的参数:引导表的首地址、程序入口点、各个寄存器的初始值等;源程序中各段的起始地址、大小以及宽度等信息。对照它,就可以确定内存资源是否得到了合理的配置和有无地址冲突。

以下是C40 MAP文件的举例:

*********************************************

TMS320C3x/4x Hex Converter Version 5.00

********************************************

Fri Jun 8 09:47:33 2001

INPUT FILE NAME:<n.out>

OUTPUT FORMAT:Intel

PHYSICAL MEMORY PARAMETERS

Default data width:32

Default memory width:8(LS-->MS)

Default output width:8

BOOT LOADER PARAMETERS

Table Address: 00300000,PAGE 0

Entry Point: 00704000

Global Memory Configuration:00000000

Local Memory Configuration: 3e3fbfd0

Interrupt Vector Table Pointer(IVTP):00700000

Trap Vector Table Pointer(TVTP):00000000

IACK Location: 00300000

OUTPUT TRANSLATION MAP

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

00300000..00307fff Page=0 Memory Width=8 ROM Width=8 "EPROM"

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

OUTPUT FILES:n_t_fcom.hex [b0..b7]

CONTENTS:00300000..003013ff BOOT TABLE

intvect:dest=00700000 size=00000040 width=00000004

.text:dest=00704000 size=0000048a width=00000004

.data:dest=00705000 size=00000026 width=00000004

003004f0..00307fff FILL = 00000000

(4)烧录芯片。C40可以直接将生成的INTEL格式的.HEX文件烧到28LV256中。或将十六进制的文件用hexbin.exe转化为二进制的.BIN文件,再烧录到芯片中。对于C5402,还需要手动添加EEPROM在系统中的起始地址。如果采用28LV256(32K×8BIT),引导表的首地址为8000H,那么生成的.HEX文件用芯片烧录器加载到烧录器软件的内存后,手动修改28LV256的7FFEH和7FFFH单元(即系统的FFFEH和FFFFH单元)为80和00H,再绕到芯片中。

以上步骤的操作都是在DOS环境中执行的。新版本的DSP开发软件可以在WINDOWS环境中使用,其原理是一样的,这里不再多述。

源程序数据的存储格式(8位并行装载)如表2所示,当烧录时可以对比一下。

表2 源程序数据的储存格式

C40引导程序C5402引导程序表格
内存宽度(00000008H)32
全局数据总线控制字32
本地数据总线控制字32
第一段的存储空间范围32
第一段程序的目的地址32
程序代码(1)32
……
程序代码(N)32
……
最后一段的存储空间范围32
最后一段程序的目的地址32
程序代码(1)32
……
程序代码(N)32
0000 0000H程序块装载结束标志
IVTP
TVTP
IACK指令的响应地址0030 0000H
C8AAH16
软件可编程等待状态寄存器的初值SWWSR16
块切换控制寄存器的初值BSCR16
XPC16
PC16
第一段的存储空间范围16
第一段的目的(XPC)16
第一段的目的地址(PC)16
程序代码(1)16
……
程序代码(N)16
……
最后一段的存储空间范围16
最后一段的目的(XPC)16
最后一段的目的地址(PC)16
程序代码(1)16
……
程序代码(N)16
0000(指示引导表格的结束)

本文详细介绍了C4X和C54XX两类DSP芯片系统引导的详细设计步骤,其它型号的DSP也大同小异,如C3X与C4X类似。笔者希望通过共享系统引导的经验,使系统引导不再成为DSP设计中的最大障碍,从而加速DSP的抗推广和使用。




上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:21,906.25000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号