TI中文支持网
TI专业的中文技术问题搜集分享网站

自起动.dat文件如何烧写到外扩flash中?

我用的是5502,采用并行16外部flash引导自起动,按照网上资源,已经到了.dat文件了,可是发现自己不知道怎么把它烧写到flash 中才是正确的?我采用的是用fread函数读.dat 中的数,然后暂时放在一个数组中,再将数组写到flash 中,通过内存察看到写的数据是一位一位的?不能实现自起动,那要怎么烧写才对呢?那个能具体说一下???

Shine:

能具体说明一下"写的数据是一位一位的?" 你在把.dat暂时存放在一个数组中时, 数据正确吗?  撇开.dat文件, 你的烧写程序正确吗, 比如说随便烧写个数据到flash?

zhe zhang:

回复 Shine:

按我说的那样写,可以烧写对,它就是一位一位地写进去的,而且对应的都是正确的,比如:我用记事本看到的dat中为0x0000,0x0248,烧写后,察看Flash中内容为0x0030 0x0078 0x0030 0x0030 0x0030 0x0030 0x002c 0x0030 0x0078 0x0030 0x0032 0x0038 0x0034 但是这样是不能自起动的,所以我想是不是不能这样一位一位地写,要按dat格式写进去才行呢?但是怎么才是正确的烧写方式?我现在就停这里了,不知道怎么才能实现自起动了

Shine:

回复 zhe zhang:

这样说明烧写不对啊, dat中为0x0000,0x0248, 那烧到flash也应该是0x0000,0x0248啊.

你不是把dat转成数组了么? 那你把数组烧到flash就可以了

zhe zhang:

回复 Shine:

我的问题就出现在转换成数组这里啊,我是用数据流的形式读取的dat文件(fread函数),读到数组中的数据就是烧写在flash中那样的,所以是转到数组中就已经错了,可是现在我不知道怎么转换成是正确,怎么转换才能像你说的那样呢?

Shine:

回复 zhe zhang:

需要手动合并, 如下面的代码.char data[];char buf[2];for (i = 0; i < 2; ++i){/* pack two bytes from file into target char */int buf[2];fread(buf, 2, 1, filep);data[i] = (buf[0] << 8) | buf[1];}具体参考下面文档.http://www.ti.com/lit/an/spra757/spra757.pdf

zhe zhang:

回复 Shine:

好的,我先按你说的调整一下,不过你们在用DSP有没有遇到

Error connecting to the target:Error 0x80003240/-116Fatal Error during: Initialization, OCS, Target, Control, This error was generated by TI's USCIF driver

这样的问题,本来想看看改过之后能用不了,可是半天都没有连上下载器,都要疯了,这个JTAG连接怎么这么不稳定啊,每次调程序都要罢工N次

Shine:

回复 zhe zhang:

用的是什么仿真器? CCS版本是多少? 电脑是什么操作系统?

试试重装一下仿真器驱动.

zhe zhang:

回复 Shine:

仿真器是MingWei的XDS510-USB2.0,CCS3.3,XP的电脑系统,这个接口相当之不稳定,一直死机,调程序太累了,动不动就得关了,再重新打开CCS

zhe zhang:

回复 Tony Tang:

谢谢你提供帮助,不过我还没有试过,现在下载器和板子连不上了,等连上了我试试你的方法,再有问题,将继续请教 

赞(0)
未经允许不得转载:TI中文支持网 » 自起动.dat文件如何烧写到外扩flash中?
分享到: 更多 (0)