TMS320C5410烧写Flash实现并行自举引导
摘要:介绍在TMS320C5410环境下对Am29LV200BFlash存储器进行程序烧写,并且实现了TMS320C5410上电后用户程序并行自举引导。
关键词:Am29LV200BFlashDSP并行自举引导自举表
Flash是一种可在线进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快等特点,并且内部嵌入算法完成对芯片的操作,因而在数字信号处理系统中得到了广泛的应用。本文通过一个完整的实例,介绍Am29LV200BFlash存储器的烧写方法,实现TMS320C5410(以下简称C5410)上电后用户程序的并行自举引导。
1Am29LV200BFlash存储器
1.1Flash存储器简介
Am29LV200B是AMD公司生产的Flash存储器,其主要特点有:3V单电源供电,可使内部产生高电压进行编程和擦除操作;支持JEDEC单电源Flash存储器标准;只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据。本文中128K×16位Am29LV200BFlash映射为C5410的片外数据存储空间,地址为:0x8000~0xFFFF,数据总线16位,用于16位方式的并行引导装载。128K的FlashROM用32K地址分四页进行访问,上电加载程序时使用FlashROM的第3页。
1.2Flash存储器的操作命令
向Flash存储器的特定寄存器写入地址和数据命令,就可对Flash存储器编程,但要按一定的顺序操作,否则就会导致Flash存储器复位。由于编程指令不能使"0"写为"1",只能使"1"变为"0",而擦除命令可使"0"变为"1",所以正确顺序是先擦除,后编程。下面就介绍几个常用的操作命令:编程命令、擦除命令、读数据命令、复位命令。
①编程命令。该命令向Flash的指定地址中写入数据,需要四个总线周期,前两个是解锁周期,第三个是建立编程命令,最后一个周期完成向编程地址中写入编程数据,如表1所列。
表1编程命令
周期1(解锁)2(解锁)3(建立)4(编程)地址0x5550x2AA0x555pa(编程地址)数据0xAA0x550xA0pa(编程数据)
由于向每个编程地址写入数据都需要四个周期,所以在循环写Flash时使用宏比较简单。FlashROM的首地址为0x8000,故偏移地址0x555对应物理地址就为0x8555。编程程序如下:
_WRITECOMMAND.macropa,pd;单一周期编程的写命
;令宏,pa是编程地址,pd是编程数据
PSHMAR1
STMpa,AR1;AR1指向编程地址
LDpd,A
STLA,*AR1;把编程数据放入AR1的编程地址中
RPT#12
NOP
POPMAR1
.endm
_WRITEFlash.macropar,pdr;编程宏,par是编程地址寄存
《TMS320C5410烧写Flash实现并行自举引导》
本文链接地址:http://www.oyaya.net/fanwen/view/174622.html
关键词:Am29LV200BFlashDSP并行自举引导自举表
Flash是一种可在线进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快等特点,并且内部嵌入算法完成对芯片的操作,因而在数字信号处理系统中得到了广泛的应用。本文通过一个完整的实例,介绍Am29LV200BFlash存储器的烧写方法,实现TMS320C5410(以下简称C5410)上电后用户程序的并行自举引导。
1Am29LV200BFlash存储器
1.1Flash存储器简介
Am29LV200B是AMD公司生产的Flash存储器,其主要特点有:3V单电源供电,可使内部产生高电压进行编程和擦除操作;支持JEDEC单电源Flash存储器标准;只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据。本文中128K×16位Am29LV200BFlash映射为C5410的片外数据存储空间,地址为:0x8000~0xFFFF,数据总线16位,用于16位方式的并行引导装载。128K的FlashROM用32K地址分四页进行访问,上电加载程序时使用FlashROM的第3页。
1.2Flash存储器的操作命令
向Flash存储器的特定寄存器写入地址和数据命令,就可对Flash存储器编程,但要按一定的顺序操作,否则就会导致Flash存储器复位。由于编程指令不能使"0"写为"1",只能使"1"变为"0",而擦除命令可使"0"变为"1",所以正确顺序是先擦除,后编程。下面就介绍几个常用的操作命令:编程命令、擦除命令、读数据命令、复位命令。
①编程命令。该命令向Flash的指定地址中写入数据,需要四个总线周期,前两个是解锁周期,第三个是建立编程命令,最后一个周期完成向编程地址中写入编程数据,如表1所列。
表1编程命令
周期1(解锁)2(解锁)3(建立)4(编程)地址0x5550x2AA0x555pa(编程地址)数据0xAA0x550xA0pa(编程数据)
由于向每个编程地址写入数据都需要四个周期,所以在循环写Flash时使用宏比较简单。FlashROM的首地址为0x8000,故偏移地址0x555对应物理地址就为0x8555。编程程序如下:
_WRITECOMMAND.macropa,pd;单一周期编程的写命
;令宏,pa是编程地址,pd是编程数据
PSHMAR1
STMpa,AR1;AR1指向编程地址
LDpd,A
STLA,*AR1;把编程数据放入AR1的编程地址中
RPT#12
NOP
POPMAR1
.endm
_WRITEFlash.macropar,pdr;编程宏,par是编程地址寄存
《TMS320C5410烧写Flash实现并行自举引导》