1.Boot Loader到底干什么
简单的说,就是从DSP串口或者外部存储空间(通常是FLASH之类)COPY程序到其它RAM空间,然后跳转到RAM空间执行。因为VC33没有自己的内部FLASH。
网上个别用户将自己用来烧写FLASH的程序叫做Boot Loader,似乎不妥当。毕竟,它不过是一个在RAM空间运行的小程序,没有任何LOAD操作。要说有,那就是将FLASH数据从RAM空间搬迁到了FLASH空间。
2.Boot Loader需要哪些软件资源和硬件资源
软件资源,一个是TI已经固化在VC33内部ROM的BOOTLOADER程序,一个是用户自己固化在外部FLASH空间的数据。前者是主,上电复位后就执行;后者是从,将会被后者COPY到其它RAM空间去。
硬件资源,按照关键信号管脚来说,有MCBL/MP,INT0~INT3以及RESET信号。脱机运行时,MCBL/MP管脚应该设为高电平。复位后,INT0~INT3中必须有一个管脚为低电平,以便让DSP内部的BOOTLOADER程序识别出来,确定到底要到哪个存储空间装载程序。具体对应关系如下:
管脚 电平 存储空间
INT0 0 0x00 1000
INT1 0 0x40 0000
INT2 0 0xFF F000
INT3 0 串口
※此处有一个问题,我没有搞明白,那就是如何在复位期间控制INTx信号?复位后INTx信号是不是就可以当作普通的管脚使用,例如用作AD结束转换中断触发输入?
3.用户FLASH空间数据存储结构应该如何安排
根据TI SPRU031.PDF文档P730的源程序可以看出,用户外部FLASH空间的数据结构应该安排如下: WORD 0 : FLASH宽度,如8,16,32等
WORD 1 : 控制字,用来写入VC33的总线控制寄存器
WORD 2 : BLOCK大小
WORD 3 :BLOCK将要装载到的目标地址
WORD 4~N :程序内容 ... ... ...
存储地址往下都是程序块。每一个程序块都包含三个部分的内容,即大小、要装载到的目标地址、程序内容。
4.如何烧录用户自己的FLASH
最简单的办法,就是先将要烧录的程序通过JTAG下载到RAM区,或者干脆直接转换为字符数组包含在你用来烧录FLASH的小程序中去,然后将你用来烧录FLASH的小程序联机(MCBL/MP = 0)跑起来,就搞定了。一般来说,这个小程序中应该包含一个擦除FLASH函数和一个编程FLASH的函数,相信各位网上可以下载到很多烧录FLASH的程序,呵呵 。
用户1032346 2011-5-23 17:20
用户1032346 2011-5-23 17:19
用户720343 2007-9-29 12:54
可以提供样品,及产品相关技术资料.需求者可以留下MAIL.
联系人:黄于庭 13798235028
QQ:183116982
用户720343 2007-9-29 12:52