基于 DSP的嵌入式系统通过地址映射方式实现片外FLASH擦写
擦写步骤如下:
① 将character[180][32]设置为全局变量。
② 将程序编译下载到DSP芯片中,打开工程目录中output文件夹中的.elf文件,找到character 数组在XRAM中存放的起始地址和长度。用户可以使用Watch Memory命令察看该段地址的数据值。
③ 使用Save Memory命令将XRAM中对应于character数组的地址段的数据以二进制形式保存在计算机上。通过UltraEdit将其打开,检看数据保存是否正确。
④ 打开FLASH擦写程序,修改数据在片内XRAM中存储的起始地址和FLASH的擦写起始地址与数据长度。编译下载后,单步执行,执行到擦除完FLASH,并将地址映射方式置为映射到片内XRAM处,使用Load Memory指令将char数据文件载入到片内XRAM的相应存储地址段中,再接着全速运行程序,几十秒之后程序执行完毕,数据便写到片外FLASH的相应地址中。
⑤ 再次打开FLASH擦写程序,单步执行到映射方式置为片外FLASH处停止,使用Save Memory命令保存FLASH中刚写入的地址段的数据值。接着使用UltraEdit的比较文件命令比较前两次保存的数据,如完全相同就表明character字模数组已经正确的写到片外FLASH中。
将数据擦写入片外数据FLASH后,就可以在用户程序中对该数据加以调用。在调用的时候要先将映射方式设置为映射到片外FLASH,然后再取数据。如下所示,取出FLASH中0x6000地址上存储的数据:
#define FLASH_ADD (unsigned int *)0x6000
*GPIO_D_DR=0x0002; /*映射方式设置为映射到片外FLASH*/
data = *(FLASH_ADD);
3 结论
本文介绍了一种通过地址映射方式,在基于 DSP的嵌入式系统中,通过DSP擦写片外FLASH的方法。该方法可适用于多种场合,针对多个 FLASH芯片可使用多个GPIO端口进行地址的扩展,并可通过DSP实现对其擦写操作;若将部分程序放置到片外FLASH中并作相应设置,即可实现系统的自举运行等。本文引用地址:https://www.eepw.com.cn/article/151235.htm linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论