文章内容
分页烧写Flash多页程序并行自举方法
作者:佚名 来源:本站整理 发布时间:2012-04-12 23:34:47
TI公司的DSP芯片TMS320Vc5410(简称5410)是性能精彩的低功耗定点DSP,在 嵌入式系统 中有着广泛的利用。5410没有自带的片上非易失性存储器,因此需要外部的非易失性存储介质,如EPROM或 Flash ,来存储程序和数据。5410片内有64 K字RAM,由于在片内RAM运行程序比片外运行有高速度低功耗等明显优点,通常上电后都需要从片外EPROM或Flash上加载程序到片内RAM,但是芯片自带的自举程序(简称Bootloader)只支撑32 K字以内的外部程序加载,因此程序设计往往局限于32 K字空间内,限制了编程的机动性,不能充分施展5410的性能。当程序空问大于32 K字时,就需要自己编写程序来实现自举。下面首先介绍利用5410对Am29LV200BFlash存储器进行程序分页烧写的方法,然后重点介绍利用Bootloader来编程实现多页并行自举领导的方法。
1 Am29LV200B Flash 存储器的分页烧写
1.1 FIash 存储器简介
Am29LV200B(简称Flash)是AMD公司生产的Flash存储器,重要特点有:3 V单电源供电,可内部产生高电压进行编程和擦除操作;支撑JEDEC单电源Flash存储器标准;只需向其命令存放器写人标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其他部分的数据。文中128K×16位Am29LV200B Flash映射为5410的片外数据存储空间,地址为:0x8000~0xFFFF,数据总线16位,用于16位方法的并行领导装载。128K的Flash被分为7页进行访问。本文通过DSP的I/O端口向FPGA写把持字,由FPGA把持Flash的换页引脚对各个分页进行访问;以烧写2个页面为例,利用Flash的第1、2页,初始化时选中第l页。
1.2 Flash 存储器的分页烧写
Flash的页面分配和相应的引脚把持如表1所列。关于Am29LV200B的擦除、写、校验等详细操作。从表1可以看到,通过对A16、A15等地址引脚的把持,可以实现Flash的页面切换。在烧写过程中,只要在指定页面烧写完预定空间后就对Flash进行换页,然后将烧写指针指向新的一页的首地址,就可以持续进行烧写,当程序烧写完成后需要将页面换回到第1页,在第1页的FFFFH地址写入8000H,这样Bootloader可以从这一页开始自举。全部烧写程序流程如图1所示。
2 多页并行加载的实现
实现多页加载,要害问题是要让Bootloader知道什么时候可以换页;但是Bootloader是固化在5410片上ROM内的,无法对其进行编程。解决的方法是通过自己编写一段“前导”加载程序(简称Loader)来实现加载中的换页:首先将Loader和用户程序都烧写到Flash中,当系统上电后,Bootloader将Loader加载到片上并运行,然后Loader将Flash中的用户程序加载到目标RAM空间。这个加载过程是用户编程可控的,因此在需要换页时,可以把持Flash进行换页,加载完成后,Loader跳转到用户程序的人口地址处运行用户程序。
1 Am29LV200B Flash 存储器的分页烧写
1.1 FIash 存储器简介
Am29LV200B(简称Flash)是AMD公司生产的Flash存储器,重要特点有:3 V单电源供电,可内部产生高电压进行编程和擦除操作;支撑JEDEC单电源Flash存储器标准;只需向其命令存放器写人标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其他部分的数据。文中128K×16位Am29LV200B Flash映射为5410的片外数据存储空间,地址为:0x8000~0xFFFF,数据总线16位,用于16位方法的并行领导装载。128K的Flash被分为7页进行访问。本文通过DSP的I/O端口向FPGA写把持字,由FPGA把持Flash的换页引脚对各个分页进行访问;以烧写2个页面为例,利用Flash的第1、2页,初始化时选中第l页。
1.2 Flash 存储器的分页烧写
Flash的页面分配和相应的引脚把持如表1所列。关于Am29LV200B的擦除、写、校验等详细操作。从表1可以看到,通过对A16、A15等地址引脚的把持,可以实现Flash的页面切换。在烧写过程中,只要在指定页面烧写完预定空间后就对Flash进行换页,然后将烧写指针指向新的一页的首地址,就可以持续进行烧写,当程序烧写完成后需要将页面换回到第1页,在第1页的FFFFH地址写入8000H,这样Bootloader可以从这一页开始自举。全部烧写程序流程如图1所示。
2 多页并行加载的实现
实现多页加载,要害问题是要让Bootloader知道什么时候可以换页;但是Bootloader是固化在5410片上ROM内的,无法对其进行编程。解决的方法是通过自己编写一段“前导”加载程序(简称Loader)来实现加载中的换页:首先将Loader和用户程序都烧写到Flash中,当系统上电后,Bootloader将Loader加载到片上并运行,然后Loader将Flash中的用户程序加载到目标RAM空间。这个加载过程是用户编程可控的,因此在需要换页时,可以把持Flash进行换页,加载完成后,Loader跳转到用户程序的人口地址处运行用户程序。
- 1
- 2
- 3
- 下一页