在做用DNW下载文件到目标板时,如将WAV文件装入目标板来测试AC97功能,下载总是不正确,如将一55146字节的WAV文件下载时,显示如图1所示: https://bbs.21ic.com/upfiles/img/20094/2009421162659725.jpg 下载了的文件显示55153基本正确,而“文件大小”却相错很远。 它的文件大小是这样得来的: AC97_size = *(AC97_BUF) | *(AC97_BUF + 1)<<8 | *(AC97_BUF + 2)<<16 | *(AC97_BUF + 3)<<24;
经过研究WAV文件格式,第五字节开始为文件大小,说明没有读到文件中的“文件大小”字节,经调整一下: AC97_size = *(AC97_BUF + 9) | *(AC97_BUF + 10)<<8 | *(AC97_BUF + 11)<<16 | *(AC97_BUF + 12)<<24; 此时读到的是正确的文件中“文件大小”数据。 如图2 我现在的疑问是:三星这么大一个公司不会这么糊弄人的,而我的程序在什么地方搞错了?
相关链接:https://bbs.21ic.com/upfiles/img/20094/2009421162659725.jpg |