首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
Flash存储器在TMS320C3x系统中的应用 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 23:50:54 点击数:[] ![]() |
|||||
以还要采用移位的方法写入Am29F040。 引导表的格式主要由下面几部分组成:首先,是包括引导表数据宽度和其它数据总线寄存器值的头文件。接着,是COFF文件中各个段的数据,其中每个段都包含一个该段的文件头来说明该段的代码长度和地址。最后是结束段。 这里,采用COFF格式生成引导表比较麻烦。TI公司提供了一个很有用的转换工具HEX30,只须编写一个命令文件,就可使用这个转化工具自动生成引导表。Flash存储器烧写流程如图2所示。 采用TI公司的TMS320C32的DSP,AMD公司生产的8位Am29F040作为Flash存储器,这里使用了4片Am29F040。 编写时必须注意: ①目标字宽度,也就是处理器的操作码长度。选好DSP后,该长度也就确定了。按照我们的例子为32位。 ②数据宽度。由-datawidth设定,为32位。 ③存储器宽度。由-Memwidth设定,本例中为32位。 ④ROM宽度。由-romwidth设定,为8位,由Flash存储器确定。 程序如下: C3XCHECK.OUT -MAP 29f040.MAP -i /*输出文件为Intel格式*/ -datawidth 32 -Memwidth 32 -romwidth 8 ROMS { FLASHROM:org=000000h,len=80000h,romwidth=8, /*512K×8*/ files={f040.b0 f040.b1 f040.b2 f040.b3} } SECTIONS { .text :paddr=00000040h .ffttxt:paddr=000008d1h .data:paddr=0000000h .sintab:paddr=000009eeh .paras:paddr=00000a2eh } 命令文件按照上述编写,生成了4个文件,分别为f040.b0、f040.b1、f040.b2及f040.b3,然后可以直接用编程器烧写至4片Am29F040即可。 利用上面的方法已经可以完成工作,但是我们还可以利用TMS320C32的boot loader(上电加载)功能直接调入到存储器中。 DSP芯片复位以后,将自动地运行固化0H~0FFH空间内的引导装载程序,执行引导程序装载功能。进入引导装载程序以后,DSP将一直等待中断INT0~INT3的中断状态,根据不同中断,决定是以BOOT1~BOOT3的存储空间装载程序到指定的快速闪存,还是以从串口将程序引导装载到指定的快速闪存。TI公司的引导装载程序公开的(如果需要,可由其网站下载得到)。实现引导装载功能时,需要自己设计程序头,其中必须描述: ①待装载程序的存储器宽度为8位/16位/32位; ②SWW等待状态发生器的方式; ③装载到快速RAM的程序大小; ④装载的目的地址。 如果在实际系统中目的地址不止一个,其操作过程也是一样的,当一个模块装载完毕以后,如果还有一个另外的模块,那么它将继续执行。与上面的方法一样,在程序头加上必要的信息就可以了。 如将引导表作为程序的一个初始化段,在运行程序的时候将该段的内容也直接写到Flash存储器里面。具体来说,首先编写段C语言程序,将上面由HEX30生成的文件转化为.dat数据文件(使得DSP可以识别,DSP不能识别.b0文件)。然后,在编程程序中建一个段,其中包含这个数据文件。最后,在直接运行程序时,将其中的内容烧写到存储器里面。采用这种方法,比采用EPROM编程器编程速度更快,而且省时省力,需要修改时不用取出Flash存储器,可以在线编程修改。 3 结论 通过实际的电路仿真测试,证明这种设计思想简单、程序语法正确,数据传输效率高,充分利用了TMS320C32编程语言特点。这种方法能够实现Flash存储器在系统编程和在DSP系统上电后的用户程序的自动引导。同时,由对Flash存储器Am29F040应用的讨论可知,其不仅可以利用编程器编程,而且可以通过TMS320C32在线进行擦除、读写及编程。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |