基于CCS的DSP片外Flash直接烧写设计
在二级加载程序搬移表中,要严格按照保存的DATA段信息进行搬移表配置,其格式如下:
其中,Length为所保存的DATA段的长度:Destination Addr为DATA段IRAM中的起始地址;Source Addr为将保存的DATA段存放于外部Flash的起始位置。在线烧写程序中要严格按照此搬移表中的Source Addr值将保存的DATA段烧写到Flash的相应位置。有多个DATA段时,要配置相应个数的搬移参数表。
4 Flash在线烧写设计
将用户程序代码写入Flash的方法一般有2种:①用专门的Flash编程器实现;②根据DSP与Flash的接口,通过在线编程来实现。前者的主要优点是使用方便可靠,但要求Flash只能是双列直插等一些可插拔的封装形式,且表面贴装或PLCC封装的Flash难以利用编程器实现;后者克服了前者的缺点,使用灵活,因而在DSP系统中得到广泛采用。
Flash在线烧写操作就是将保存起来的DATA,烧写到二级加载程序搬移表所指定位置的Flash中。在线烧写的思想是,首先将保存起来的DATA加载到DSP的内部RAM或系统的外部RAM中,再通过在线烧写程序将加载的DATA写入到Flash中。DSP实验板Flash采用的是AM29LV160D,根据其数据手册分别建立擦除void ChipErase(void)和写入Byte Write(int offsent,short data)子函数。编写在线烧写程序如下:
在对Flash写操作前首先要进行其擦除,在擦除后要指定DATA存放首地址Saddr,要烧写到的Flash首地址FlashAddr,以及待烧写的数据长度Length。在有多个DATA段时,程序中要进行相应个数的DATA段烧写指定操作。
在线烧写程序设计完成后,编译将.out文件下载到DSP中,可以在擦除操作完成,开始烧写前设置断点,运行完Flash擦除操作后,将保存的DATA加载到程序中指定的位置,为了确保烧写程序的正常运行,不能将DATA加载到烧写程序占据的RAM空间。当所需要烧写的DATA全部加载完成后继续运行烧写程序,即可完成Flash的在线烧写。
基于所用到的实验板,在Flash烧写完成后断电,将DSP设置为Flash启动模式,再上电,测试到应用程序中预先设计的运行指示,表明Flash已烧写加载成功,验证了DATA方法的Flash烧写是切实可行的。
5 结语
详细介绍了DATA方法直接烧写原理,如何进行合适的COFF代码段设置,如何保存烧写数据DATA以及二级加载程序和在线烧写程序的相应设计。DATA方法容易理解,操作简单、不易出错,能够简便、快捷的完成Flash的烧写操作,为DSP开发者提供了一条有效的Flash烧写途径。该方法适应于C6000系列所有DSP,其设计思想对其他系列的DSP也提供了有益的借鉴。
- 低压闪光灯方案(06-23)
- flash接口电路的实现(07-18)
- 一种支持ISP的Flash在嵌入式设计中的应用(08-19)
- 基于多端口串行Flash的条形LED显示屏控制(08-05)
- 提高MSP430G 系列单片机的Flash 擦写寿命方法(08-28)
- 基于FLASH介质嵌入式存储方案的设计与实现(04-20)