在仿真环境下实现TMS320C6000系列DSP的程序自引导
摘要介绍了3206000系列在仿真环境下对闪速存储器的语言编程方法,同时根据这种的程序自引导机制,介绍了从进行引导的新途径,从而为3206000系列的开发提供了一种新的思路。
关键词3206000;;开发DSP系统应用板,最终要脱离仿真器而独立运行,这时就需要一个能在断电后保存程序及初始化数据的存储器。 系统上电时,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器如内部SRAM,SDRAM等中。 由于FLASH具有电信号删除功能而已成为此种存储器的首选。
将用户程序代码写入FLASH的方法有两种第一种是用专门的FLASH编程器实现,第二种是通过系统微处理器与FLASH的接口来实现。
第一种方法的主要优点是使用方便可靠,但要求FLASH只能是双列直插等一些可插拔的封装形式,由于芯片制造工艺的提高,芯片的集成度越来越高,FLASH正向小型化、贴片式发展,从而使表面贴装或PLCC封装的FLASH难以利用编程器编程。
第二种方法克服了第一种方法的缺点,且使用灵活,因而在DSP系
且删除速度快,集成度高,因
统中的应用日益广泛。
由于FLASH的存取速度较慢,写入FLASH的程序将在系统上电时被DSP装载到快速的存储器中运行,这个过程称为bootloader。
不同的DSP有不同的引导方式,本文将以TMS320C6713为例来介绍TMS320C6000系列的bootloader方式。 1
FLASH的工作方式及在系统编程目前,市场上的FLASH型号很多,但工作方式大体相同,下面以AM29LV160D为例进行介绍。 1.1AM29LV160DFLASH存储器简介AM29LV160D是AMD公司生产的2M×8bit/1M×16bitFLASH存储器,它的数据宽度为8位、16位可选,采用3.3V供电,完全兼容JEDEC标准,并支持在系统编程,用户只需向其内部的命令寄存器写入命令序列即可实现部分擦除、全部擦除、数据写入等功能;同时可提供硬件和软件方法来检查FLASH的操作执行情况。
图11.2编程方法对FLASH的在系统编程就是通过一定的编程命令序列来控制FLASH的工作方式,这些命令序列是一些特定字符的组合,只要向FLASH中的特定寄存器以特定的顺序输入这些字符即可进入相应的编程模式。
AM29LV160D中的主要命令序列和写入地址如图1所示。 具体说明如下●复位命令序列对FLASH中任一地址写入F0,即可实现复位。
●自动选择模式此模式主要用于编程器编程时,由编程器根据从数据线DQ7~DQ0读出的识别码自动配置编程逻辑,当然也可以通过命令序列在在系统情况下将自动选择码读出。
●编程命令序列程序可以以字节方式或字方式写入,这主要根据FLASH外部引脚BYTE的状态而定。
●芯片擦除命令序列FLASH编程时应先执行擦除命令,这是因为编程指令只能将数据由1变为0,反之则不行。
●扇区擦除命令序列为了编程方便及保护有用数据,数据擦除可以只擦除某些无用的扇区。
●擦除暂停和恢复命令序列这个命令序列只在进行扇区擦除时有效,它允许编程者中断一个扇区的擦除操作,接着从没有被擦除的扇区读出或写入数据。
●写入命令也分为字节模式和字模式,分别对应FLASH的8位和16位工作方式,具体为哪种模式,可由FLASH的BYTE脚的输入来决定,低电平为字节模式,高电平为字模式。
在对FLASH进行编程时,FLASH提供硬件和软件机制来获得FLASH的状态,以确定数据写入或擦除操作是否完成。
硬件方法主要是利用FLASH的外部引脚RY/BY的输出信号在命令序列的最后一个写脉冲WE的上升沿之后有效。
当该输出为低电平时,表示FLASH正在编程或擦除中,而当该输出脚为高电平时,即表示编程或擦除已完成。
将此引脚与TMS320C671x系列DSP的ARDY引脚相