全球旧事资料 分类
如何通过网络接口实现DSP片外Flash在线系统编程
摘要:文章针对传统设计采用RS232作为数据传输手段而造成的速度过慢的问题,设计了一种通过网络接口,使用一种特殊的UDP包对BF531片外Flash在线系统编程的方案,并给出了在系统编程的具体步骤和实现结果。实践证明该方法无须实现TCPIP协议栈,速度快,体积很小,很好地解决了以DSP为核心的应用系统软件的维护和升级问题。关键词:BF531;Flash;网络接口;ISP;UDP在以DSP为核心的现代电子设备中,通常将可执行代码存放在Flash中,设备启动的时候,DSP通过引导加载机制将Flash中的代码转移到高速存储器中运行。Flash在系统编程(ISP)是指以在不改变硬件环境的条件下,在线将程序代码(固件)下载到Flash中,从而方便地实现系统软件的调试和升级。BF531是ADI公司生产的一款高性能DSP。ADI公司在其软件VDSP下提供了通用的在系统编程工具“FlashProgrammer”,但是该工具需要使用JTAG接口,并且需要专用仿真器。另外一种方法是采用RS232作为通信接口,通过一段引导程序来进行Flash的在系统编程,缺点是速度很慢。由于目前大多数电子仪器都已经具有网络接口,本文设计了一种通过网络接口进行Flash在系统编程的方案。采用的网络接口芯片为常见的DM9000a,由于网络通信中常见的TCPIP协议栈过于庞大,本文中未使用协议栈,而是设计了一种简单的实现方法:直接构建含特殊标记头的UDP广播包来代替。一、BF531的Flash启动加载过程LDR文件是最终烧写到FLASH上面的程序文件,可以有多种格式。这里,我们生成的LDR文件是二进制格式,LDR文件分为多个块,每个块都分为一个“BLOCK”和一个10字节的“HEAD”。在“HEAD”中,头四个字节表示块应加载在BF531地址空间的地址,后四个字节表示“BLOCK”的大小,最后两个字节表示块的属性。BF531芯片本身已经提供了4种启动代码加载方式,通过启动模式引脚BMODE来选择,本设计中将该引脚设置为最常见的“01”模式,即“从816位的FLASHPROM启动”模式。BF531内部有一个BOOTROM区,用以存放“引导核”,BF531启动的时候会先运行该引导核,自动将从Flash起始地址0x2000000开始的LDR文件分块按照用户的要求分别加载到片内RAM和SDRAM中。加载完毕后,引导核会修改程序指针PC,使之为片内RAM的启动地址0xFFA08000,启动用户自己的应用程序。二、总体设计需要设计一个Bootloader程序和一个与之配合的上位机程序,并将Bootloader烧在地址0x20000000处。DSP启动后,“引导核”会自动启动该程
f序,Bootloader
好听全球资料 返回顶部