版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DSP系统应用中FLASH在线编程方法黎明也 时间:2008 年 10月 15 日关键词 :<"cblue" " target='_bla nk'>力卩载 <"cblue" "htt p:/target='_bla nk'> 烧写 <"cblue" "htt p:/ 编程" target='_blank'> 在线编程 <"cblue" " 引导程序 " target=
2、'_blank'> <"cblue" " 存储器宽度 " target='_blank'> 存储器宽度加载"烧写"在线引导程序摘 要:介绍了在TI公司TMS320VC33 DS应用系统中,通过DSP外部 FLASH存储器实现 v"cblue" " 在线编程 " title=" 在线编程 ">在线编程的方法,给出了示例源程序,完成了 DSP系统加电后的自动装载运行。关键词:DSP JTAG FLASH存储器 在线编程Boo
3、tloadJTAG 口对FLASH存储器是一种高密度、非易失性的电可擦写存储器,存储量大,使 用方便,适用于低功耗、高性能的系统。在高速DSP应用系统中,为了充分发挥DSP性能,在加电后需要将用户代码装载到高速RAM存储器中运行。下面介绍 SST29LE020型 FLASH存储器的 <"cblue"" 烧写 " title="烧写"> 烧写方法,以及如何实现TMS320VC3上电后用户程序的自举引导(Bootload)。1 SST29LE020的特点及操作SST29LE02(是SST公司生产的一种 256KX 8 FLAS
4、H 它有10万次以上的 擦写寿命,其内部分为 2048 个页面,每个页面 128 字节,页面写周期为 5ms。如果页面中一个数据需要改变,则这个分区的所有数据必须重新装入。FLASH支持软件数据保护功能(Software Data Protection),当执行三字节SDP写指令时,保护功能将自动加上,任何后续的写操作必须带上三字节 SDP写指令。SST29LEO20勺读操作与传统EPR0读操作一致;在进行数据编程操作时, 它支持内部定时(Internal Timer) 、数据查询(Data#Polling)、跳变位(Toggle Bit)三种方式,以测试内部编程操作是否完成。FLASH软件擦
5、除指令为6字节<"cblue" "htt p: /加载"title=" 加载"> 加载指令,该指令执行后,最多等待20ms整个芯片便被擦除,即将FLASH每个数据位 都恢复为1状态的全FF状态。SST29LE02(软件指令序列可在SST公司的数据手册上查到,如表1所示。 在FLASH编程之前,需对FLASH进行擦除,由表1可知,擦除操作需要六个总 线周期。FLASH页面写操作在使用内部定时方式时的流程如图1所示。J2 TMS320VC3:简介TMS320VC3是美国TI公司推出的TMS320C3系列的32位浮点数字信号处
6、理器,它是在TMS320C3浮点DSP的基础上开发的一个价格更低的 DSP该产 品具有高速、低功耗、低成本、易于开发等显著优点。TMS320VC3采用内部1.8V,外部3.3V供电,因而它的功耗比原有型号 TMS320C3的功耗降低了大约 一个数量级,而且能支持高达150M/ FLOPS勺运行速率。其主要特性如下:CPU! 32bit的高性能CPU可进行16/32b整数和32/40b的浮点操作; 内含8个扩展精度寄存器;有2个地址发生器、8个辅助寄存器和2个辅助寄 存器算术单元(ARAU)b片内存储器为32bit指令字、24bit地址线、34KX 32b(1.1Mb)的双静态 RAM外围接口具
7、有启动程序装载功能;内含 5倍频的锁相环(PLL)时钟发生器; 片内存储器可映射外设,其中包括一个串行口、两个 32bit定时器和一个 DMA具有四个内部译码页选,可大大简化 TMS320VC3与 I /O及存储器的接 口。3 TMS320VC3S序引导功能TMS320VC3具有两种存储器映射方式,即 MP( Micro processor Mode)方式 和MC/BL(Microcomputer/Bootloader Mode) 方式,两种方式下中断向量的位置 不同。常用的是MC方式。在该方式下,MCBL/M引脚接高电平,内部 ROM被映 射到000FFF空间。这段ROM中含有器件生产厂家固
8、化的<"cblue""引导程序"title="引导程序"> 引导程序(BootLoader),该引导程序可以将DSP实时运行的程序和数据从外部低速 ROM 或串行口装入到高速RAM中。TMS320VC3复位后即运行内部固化的引导程序,弓I导程序通过查询四个中INT3、断引脚来确定装入方式。这些引脚为低电平有效,查询顺序依次为INTO、INT1、INT2;当INT3有效时,为串行装入方式;当INTO有效时,从外 部地址0x001000处装入(BOOT1;当INT1有效时,从外部地址 0x400000处装 入(BOOT2)当I
9、NT2有效时,从外部地址 0xfff000 处装入(BOOT3。TMS320VC3具有四个快速页选信号,用于对外部地址空间寻址,其映射如 表2所示。使用外部存储器装入数据时,外部存储器数据头位置需包含以下信息:(1) 外部 v"cblue" "存储器宽度"title=" 存储器宽度"> 存储器宽度(8/16/32位);(2) 程序代码块的长度;(3) 装入数据的目的起始地址;(4) 存储器访问的定时控制参数。头信息之后是用户的程序代码,程序代码按低位在前、高位在后的顺序排列。程序代码之后,必须有一个全零字,即0x00000000
10、,用以指示引导程序用户程序代码已结束。引导完成后,即从装入的目的地址处开始执行用户程序。4 FLASH在线编程方法BOOT方式下的在线编程TMS320VC3的调试使用 CC for C3x/4X(Code Composer)集成编译环境,通 过JTAG头仿真用户板,用户代码先放在外部 RA附调试,调试成功后,就可以 将用户程序代码写入FLASH了。下面介绍在并行装入 方法。FLASH片选CE弓I脚直接OE引脚的最简单的处理SST29LE02(与 TMS320VC3的连接方法比较简单, 连接至TMS320VC3的 PAGE引脚;FLASH的输出使能方法是采用跳线方式(当向FLASH写入数据时,接
11、高电平;通常情况下,接 地)。在调试用户程序时,需根据用户板的存储器空间分配制作CMDfc件,假设其CM以件如用户扩展的外部 RAM为32bit,起始地址为0x00c00000,长度为32K;外部 FLASH起始地址为0x00400000(使用BOOT方式),长度为256K。下:MEMORY/*32K*/*256K*/INTRAM1:origin = 0x00800000, le ngth = 0x00008000 INTRAM2:origin = 0x00809800, le ngth = 0x000007c1 VEC: origin = 0x00809fc1, le ngth = 0x3f
12、 EXTRAM:origin = 0x00c00000, le ngth = 0x00008000 FLASH: origin = 0x00400000, le ngth=0x00040000SECTIONS /*用户程序代码及初始化数据放在外部 RAM*/.vectors > VEC /*VC33规定的中断向量地址*/.text : LOAD = EXTRAM.cinit> EXTRAM.data : RUN = EXTRAM.bss : RUN = INTRAM2.stack > INTRAM1第一步:在CC下编译后,装入用户.OUT文件,用户程序代码即被写入 EXRA空
13、间。第二步:依照TMS320VC3的BOOT格式,并根据CC产生的用户.MAP文件 找出程序入口地址、各加载块的入口地址以及长度,编写 FLASH烧写文件。示 例源程序清单如下:#define MEM_WIDE 0x00000008 /*Flash 存储器宽度 */ #define CG_REGISTER 0x000010c8 /* 全局存储器配置参数 */ #define ENTER_POINT 0x00c00064 /* 程序代码入口地址 */ volatile int *flash_add = (volatile int *)0x400000; /*外部 Flash的映射地址 */#de
14、fine BOOTORG 0xc00064 /*.MAP 文件中的程序入口地址 */#define BOOTBLK 3/*.MAP 文件中的加载块数量 */#define BOOTSRC1_ADD 0x00809fc1 /*第 1 个加载块地址 */ volatile int *bootblk1_add = (volatile int *)0x00809fc1;#define BOOTBLK1_LEN 0x3a /* 第 1 个加载块长度 */#define BOOTSRC2_ADD 0x00c00000 /*第 2 个加载块地址 */ volatile int *bootblk2_add =
15、 (volatile int *)0x00c00000;#define BOOTBLK2_LEN 0xa3 /* 第 2 个加载块长度 */#define BOOTSRC3_ADD 0x00c000a3 /*第 3 个加载块地址 */ volatile int *bootblk3_add = (volatile int *)0x00c000a3;#define BOOTBLK3_LEN 0x17/* 第 3个加载块长度 */* 定义 Flash 地址及页面字节数变/ unsigned int flashaddnum,bytenum;量*/软件等待1ms子程序*/void waite(int m
16、s) /* 软件数据保护子程序 */字节芯片SDP旨令*/void sdp_flash()/*flash_add0x5555=0xaa; /*3 flash_add0x2aaa=0x55; flash_add0x5555=0xa0;void era_flash()/* 擦除芯片子程序 */ flash_add0x5555=0xaa;/*6 字节芯片擦除旨令 */ flash_add0x2aaa=0x55;flash_add0x5555=0x80;flash_add0x5555=0xaa;flash_add0x2aaa=0x55; flash_add0x5555=0x10;waite(20);/
17、*20ms 等待芯片擦除完成 */void write_flash(int bootdata)/*unsigned int i;for(i=0;i v =3;i+) /* 一个 int 型数分成四个字节写入 */ if(bytenum=0) /* 如果是页面第 sdp_flash(); flash_addflashaddnum=bootdata; /*/*Flash页面字节加写一个 int 型数据 */1个字节,先写SDP旨令*/flashaddnum+; bytenum+; if(bytenum > 127) bytenum=0;waite(11); bootdata >>
18、 =8; void main() unsigned int i,j,lenth;/*/*向 Flash 地址写一个字节 */地址加 1*/1*/* 一个页面写完,页面字节置 0,等待 11ms*/* 待写数据右移 8 位*/主程序 */bytenum=0;flashaddnum=0; /*Flash 地址及页面字节数置 0*/ waite(1);/* 等待 1ms*/era_flash();/* 擦除 Flash 芯片*/write_flash(MEM_WIDE); /* 写外部 Flash 存储器宽度 */ write_flash(CG_REGISTER);/* 写寄存器配置参数 */wri
19、te_flash(1);/* 第 1 个 boot 的数据长度为 1*/write_flash(ENTER_POINT);/ * 写入 boot 的目的地址 */write_flash(0);/* 第 1 个 boot 的数据*/for(i=0;iv BOOTBLK; i +)/* 分别烧写需要 boot 的数据块*/址*/if(i=0)/* 每个数据块烧写的起始 2 字节分别是长度和源地lenth=BOOTBLK1_LEN;write_flash(BOOTBLK1_LEN);write_flash(BOOTSRC1_ADD);else if(i=1)lenth=BOOTBLK2_LEN;wr
20、ite_flash(BOOTBLK2_LEN);write_flash(BOOTSRC2_ADD);else if(i=2)lenth=BOOTBLK3_LEN;write_flash(BOOTBLK3_LEN);write_flash(BOOTSRC3_ADD);else;for(j=0;jvienth;j+)/*将数据块内容写入 Flash*/if(i=0)write_flash(bootblk1_addj);else if(i=1)write_flash(bootblk2_addj);else if(i=2)write_flash(bootblk3_addj);else;/* 代码最后位置写全零 */*等待10ms,保证Flash写完成*/write_flash(0);waite(10);第三步:修改.CMD文件SECTIONS,将烧写程序链接到内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医管科岗位工作制度
- 医院医调办工作制度
- 医院质控科工作制度
- 华谊新材料工作制度
- 南充市弹性工作制度
- 卫生室各项工作制度
- 卫生院会计工作制度
- 卫生院药具工作制度
- 危险品自查工作制度
- 县委资料科工作制度
- DB29-296-2021 海绵城市雨水控制与利用工程设计规范
- 资源教室工作方案设计
- 新供应商QSA-QPA审核checklist及审核报告
- 2015版ISO90001标准课件教学
- 溺水自救与施救课件
- GB/T 12451-2023图书在版编目数据
- 年产万吨电铜电解车间的设计
- 无机及分析化学说课
- 家庭装修施工合同
- 2021年湖南省衡阳市国家公务员公共基础知识真题二卷(含答案)
- 物业品质服务提升计划表最终版
评论
0/150
提交评论