美文网首页
TI DSP6657—Nand Flash 程序固化

TI DSP6657—Nand Flash 程序固化

作者: 侠之大者_7d3f | 来源:发表于2019-01-04 21:10 被阅读55次

    前言

    开发嵌入式DSP程序的时候,最终生成的可执行程序格式为.out , .out是TI CCS中一种二进制可执行程序的格式。在调试阶段,只需要DSP开发板通过JTAG仿真器连接到PC上, 在PC端通过CCS直接将.out下载到DSP芯片的RAM中,点击Run即可执行。

    但是,一旦DSP要脱离PC,仿真器, 就不能采用上面下载.out的方式,因为RAM的性质的掉电丢失的。 这时候,就需要将生成的程序保存在FLASH芯片中,Flash芯片的掉电不丢失的。下面将完整介绍DSP程序固化的流程。


    RAM与ROM,FLASH区别

    RAM与ROM区别

    ROMRAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

    RAM的类型

    RAM 有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

    ROM的类型

    ROM也有很多种,PROM是可编程的ROM,PROMEPROM (可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格很高,写入时间很长,写入很慢。

    举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。

    FLASH芯片

    FLASH 存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM 的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

    FLASH的分类

    目前Flash主要有两种NOR FlashNADN Flash

    NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

    NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。(本次固化就是在Nand Flash芯片中


    开发环境/工具

    • EVM 6657评估板
    • TI XDS200 USB 仿真器
    • Flash烧写工具
    • CCS v8
    • windows 10

    DSP程序启动

    DSP启动流程

    上电之后,程序指针会自动指向ROM中一个称为Bootloader的小程序, 这段程序使得DSP在上电之后进行一些初始化操作,然后根据期间配置的不同选择从外部存储器或者主器件中搬移代码。C66x系统DSP片内Bootloader的起始地址固定为0x20B00000

    DSP启动方式

    为了适应不同系统的需求,TI公司的C66x系列支持的自启动模式包括:

    • SPI
    • I2C
    • EMAC
    • SRIO
    • PCIE
    • EMIF16
    • Nor Flash
    • Nand Flash

    具体采用哪种启动方式由BOOTMODE[12:0] 引脚决定,DSP在上电脱离复位以后会读取这些引脚的状态,Bootloader根据引脚的值来选择相应的启动方式。

    TI DOC TI DOC

    基于Nand Flash的程序启动

    TI DOC

    实验

    step1. 准备好烧写软件

    1. CCS v8
    2. 待烧写的.out
    3. 烧写工具

    首先,在TI官网论坛下载一个Boot example,包含Nand boot。 EVM板子拨码开关拨到No boot模式。

    image.png image.png

    step2: 转换生成的.out

    在转换之前,需要进行一些配置。


    image.png
    • 设置mcsdk多核开发套件的路径
    image.png
    • rmd文件配置

    length需要根据.out的大小调整 ,其他不用变

    image.png image.png

    配置好之后,运行.bat文件,自动生成一些文件。nand Flash烧写需要用到 .dat文件。

    image.png

    step3:将转换之后的.out(.dat)烧写到Flash芯片中

    • 首先,打开一个工程,进入到Debug模式


      image.png
    image.png
    • 然后加载烧写工具 nandwriter.out


      image.png
    image.png
    • 将.dat加载到SL2内存中,load memory,加载到指定的地址。


      image.png
    image.png image.png image.png

    这里内存内容将写入的Flash芯片中。

    • 点击run, 将遍历加载到Expressions窗口


      image.png
    image.png

    dataSizeUint32设置为.dat 的大小 (10进制), 然后程序继续自动运行。 程序自动将 0x0c000000起始的内容,某个size的大小搬移到Flash芯片。

    image.png

    这样Flash芯片就烧写成功。

    step4:重新上电

    • 板子拨码开关拨到Nand Boot模式
    • 上电之后,复位

    这样,程序就自动启动成功。


    End

    相关文章

      网友评论

          本文标题:TI DSP6657—Nand Flash 程序固化

          本文链接:https://www.haomeiwen.com/subject/frekrqtx.html