新闻中心

EEPW首页 > 汽车电子 > DSP上电自举调试经验

DSP上电自举调试经验

——
作者:时间:2007-03-07来源:收藏

以下经验的前提:采用的是MP/MC=0的模式,采用ROM中固化的bootloader,flash映射在数据空间,曾经烧写过两类flash:Am29DL400B和SST39LF/VF200A/400A/800A。
1、烧写flash:
  关于flash的烧写程序,很容易出错的是两点:无法正常擦写,不知道是否正确写入。
  烧写flash要严格按照flash芯片的命令顺序:以Am29DL400B的写单元为例:555(地址) AA(发数据)——2AA 55—— 555 A0——PA PD
  其实555 AA都是命令,并不是真的在flash芯片的555地址写入数据AA,只是flash的命令,只有到PA PD时候,才是真在PA的地址写数据PD。而且对于这款flash,命令的最高位是忽略的。
  如果flash无法擦除和写入,可以考虑:降低工作频率,使得读写时序满足flash的datasheet的要求;检查是否按照datasheet的发命令顺序,一般是先reset再Chip Erase再Program;再就是用示波器测试一下,看看写信号和片选信号和数据是否都到达Flash芯片,测试时,可以用一个循环一直写flash,如果这些都正常,就是你的写时序出问题了。

  看看写时序是否满足Flash的写周期时间要求,等待周期是多少,写周期后的等待时间是多少,也要看读写该芯片应该插入多少等待(SWWSR寄存器)。实在不成的话,写Flash时把时钟降下来。

  不知道是否正确写入flash,可以直接用仿真器,后先不打开project,添加GEL文件后就可以在ccs中看到data空间的数据了。如果是乱七八糟的数据,有可能是GEL文件中寄存器的设置不对,但是建议不要修改GEL文件中寄存器的默认值。此时可以打开烧写flash的project,运行到reset flash命令后就可以看到

 data空间的数据了。
2、自举:

  程序正确烧写进flash后一般是能够正常自举的,如果有问题的话首先应该查询写入的自举表是否正确。10AA ,SWWSR(推荐值7FFFH), BSCR(推荐值F800H)这三个标志写对了的话就继续检查程序入口XPC,程序入口地址,程序块长度、存放目标XPC、存放目标地址,这5个值任何一个有问题都无法正常自举。还有就是数据空间FFFFH地址的8000(自举表存放首地址)是否正确写入。
  建议烧写一个小的程序,比如说让XF脚产生方波的程序,在XF脚上加一个LED灯闪烁则表示自举成功。
PS:调试的bootloader聪烧写flash到上电自举,确实会发生不少问题,需要仔细检查,最好阅读TI的开发手册中相关文档:比如TMS320VC5416 Bootloader (Rev. D).pdf



关键词: DSP 上电

评论


相关推荐

技术专区

关闭