背景:
在使用DSP28335进行开发时,一些项目中需要将数据信息存储到Flash中,在掉电后能够对数据进行保存,以便再次上电时能够取出使用。为了完成上述操作,TI官方提供了Flash_API(application program interface),本文基于TI官网给出的技术文件"Flash2833x_API_Readme",对官网提供的Flash_API的使用方式进行简要的说明。
一、相关的库文件与工程文件
在TI官网上搜索SPR539,下载TMS320F2833x Flash APIs (v2.00),解压后安装setup_Flash2833x_API_V210,根据现有的硬件选择文件,我这里使用Flash28335_API_V210。
将lib文件夹中的库文件添加入已有工程的lib中,将include文件夹中的两个头文件:"Flash2833x_API_Config.h"与"Flash2833x_API_Library.h"添加入已有工程的include中。并在CCS中添加lib与头文件的路径。
将库文件与头文件都包含入工程中后,开始对程序进行修改。
二、程序配置
1、修改Flash2833x_API_Config.h头文件
在Flash2833x_API_Config.h中选择系统CPU的主频,我这里的主频为150MHz。给定头文件中列出了几种常见的主频,也可以根据自己硬件设备修改程序,比如125MHz时CPU_RATE为8.00L。
Flash2833x_API_Config.h头文件中还给出了Flash分频系数,该部分不需要修改。
注意!要求原工程中PLL配置正确,避免设备进入limp 模式。
2、将Flash_API中的程序复制至内部SARAM中运行
由于28335只有一个Flash array,无法在擦除、读写flash的同时执行flash中的程序,因此需要先将Flash_API中的程序复制至SARAM中,从SARAM中执行程序。此外,Flash_API函数中有严格的时序要求,复制至SARAM中运行的程序是无延时的,能够使得运行更准确。
将程序复制至SARAM中的具体操作如下