保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

利用Flash实现DSP对多个程序有选择的加载


  
  ??对Flash的操作要靠写入一系列特定的地址和数据序列来完成。在每次对Flash写入之前,要对其原来的内容进行擦除。Flash的擦除包括块擦除和芯片擦除两种。块擦除是对一个模块进行擦除,芯片擦除是擦除整个Flash的内容。因此,对Flash的操作,是以模块为基本单元的。对Flash的操作由指令决定,其必须满足Flash的时序要求,每条指令需要1~6个不等的指令周期。主要操作指令包括读数据指令、编程指令、复位指令、自动选择指令和擦除指令。每个指令周期由一个命令构成,每个命令代码所执行的任务如表1所列。
  
  表1Flash的命令说明
  
  HEX代码命令00h有效/保留10h芯片擦除确认20h保留30h模块擦除继续/确认80h建立擦除90h读电平信号/模块保护状态A0h编程B0h擦除中止F0h读阵列/复位
  ??下面以M29W800ABFlash的块擦除指令为例,具体说明Flash的操作时序:块擦除指令需要6个总线周期,先以2个解锁周期开始,然后是1个擦除建立周期,接下来又是2个解锁周期,最后是1个擦除确认周期,其指令时序如表2所列。
  
  表2Flash擦除指令说明
  
  周期第1周期第2周期第3周期第4周期第5周期第6周期地址5555h2AAAh5555h5555h2AAAh模块地址数据AAh55h80hAAh55h30h
  ??其C语言程序设计代码如下:
  
  #defineflash((volatileunsignedint*)0x8000)
  
  Block_Erase(ADDR){
  
  flash[0x5555]=0x00AA;
  
  wait(1000);
  
  flash[0x2AAA]=0x0055;
  
  wait(1000);
  
  flash[0x5555]=0x0080;
  
  wait(1000);
  
  flash[0x5555]=0x00AA;
  
  wait(1000);
  
  flash[0x2AAA]=0x0055;
  
  wait(1000);
  
  flash[ADDR]=0x0030;
  
  }
  
  ??需要注意的是,Flash相对于DSP来说是慢速设备,编程时,对Flash的访问需要有足够的延时等待。对其它指令这里就不一一介绍了。要了解更多内容,可参考具体的Flash存储器手册。
  
  3引导装载
  
  ??TMS320VC5410和TMS320VC5416片内ROM中固化有TI公司的引导装载(Bootloader)程序,用于在上电复位时把用户代码从外部存储器引导到片内RAM中运行。引导程序是在一些片内固化的一个程序,它负责上电时初始化存储器。换句话说,它将程序从非易失性存储器(如Flash存储器)中调入系统的存储器中。其提供的片内引导模式有:HPI(主机接口)引导、并行EPROM引导、并行I/O引导和串行口引导等。下面先介绍这两块芯片的上电引导过程。
  
  ??DSP上电复位后,先检测其MP/MC引脚,如果MP/MC=“0”,表示使用片内ROM引导。此时,DSP从0xFF80处开始执行TI的片内引导程序。进入引

《利用Flash实现DSP对多个程序有选择的加载(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/170031.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。