+ NOR Flash 芯片的引导(三)
前文已将NorFlash的引导方式及AIS的转换方法叙述殆尽。本文将开始谈谈AIS文件的固化。何为固化,我理解就是将固件程序烧写近Flash。NorFlash是相对简单的Flash芯片,操作起来比NandFlash简单多了。NorFlash的生产厂家有很多,但总结起来也很清晰。主要区别在于操作NorFlash的命令有差异。但个人觉得作为学习来讲熟悉任何一款NorFlash的操作之后其他厂家的芯片也就无所畏惧了。下文以AMD格式的命令来说明NorFlash芯片的简单操作。
考虑到本文的宗旨不是为了详尽的讲述Flash芯片的操作,所以接下来只述说NorFlash最基本的三类操作:1.擦除。2.读。3.写。
一、擦除。
Flash芯片在烧写之前需要进行擦除操作。一般情况下刚出厂的芯片所有的存储空间都是FF即擦除操作完成后所有的存储空间都会变成1。擦除又分为不同的操作对象,有按照扇区擦除,整片擦除……。根据实际需要可以选择不同的擦除方式。需要注意的是:不同芯片不同方式的擦除时间可能不同。所以要考虑到应用的需求。整片擦除的话时间可能比较长。如果是DSP固件程序的话建议还是用多少扇区擦多少,这样一来后边未使用的扇区还可以用作其他用途,也可以节省时间。
图.擦除相关指令
这里摘出三种擦除命令。第一个是扇区擦除,第二个是块擦除,第三个是整片擦除。
二、读
读操作主要是DSP的任务,在Boot器件,DSP会根据Nor模式配置字来读取NorFlash中的数据,然后搬移相应的代码到内存当中运行。这个过程可以不予关注。因为NorFlash的地址会统一映射到DSP内部,以CS2空间为例,Norflash对应的地址就是从0x60000000。
三、写
写,也就是烧写。要将AIS文件写入NorFlash大概是这个思路,首先将要写的文件读入DSP内存,然后使用写Flash指令将数据全部写入Flash。因此首先要将Flash的驱动部分搞定。说白了就是首先要写一个接口函数负责读取DSP内存中的数据,然后写到Flash里边。Flash部分的驱动代码TI的StartWare里边已经给出了。另外,TI给出的BIOS C6SDK软件包中也有相关代码。具体文件位置位于C:\Program Files\Texas Instruments\c6sdk_02_00_00_00\tools\OMAP-L138_FlashAndBootUtils_2_36\OMAP-L138\CCS\NORWriter 这个路径下,使用CCS打开改工程即可看到。这就是写NorFlash的工程,这个工程师CCS3.3的工程。