ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)

1、如下为.dat文件中文件头的基本格式:

MagicNumber Format StartingAddress PageNum Length [NewFormat]

下面是分别的解释:

MagicNumber:1651.

Format:a number from 1 to 4, indicating the format of the samples in the file. This number represents a data format:

(1) - hexadecimal,

(2) - integer

(3) - long

(4) - float

(9) - Use new scheme

StartingAddress:starting address of the block that was saved.

PageNum:page number the block was taken from.

Length:number of samples in the block.

NewFormat:Format (9); the new scheme. This is optional when usign the legacy formats 1 - 4

如下例子中的数据:

1 1651 2 8cc0 0 1a70c2 793 744 745 676 ...7 ...

第一行的数据为:1651 2 8cc0 0 1a70c

1651标志着这是TI的.dat文件的格式。

2表示了这个文件中的数据是整数格式的,比如第二行的数据79是interger的格式。

8cc0表示这段数据Load Memory到CCS软件的过程中,是加载到0x8cc0对应的地址上的。

0表示这段数据将加载到page0的位置上。

1a70c表示这段数据的总长度为0x1a70c(Hex) = 108300(Decimal)

2、创建图像对应的.dat文件:

如下的图片,转换为190*190大小的图片,并生成对应的.dat文件.

422185080035633441d64e58b4ebb654.png

Code(文件名称:_dat_create.py):

1 importcv22 importglob3 Path = glob.glob('*.jpg')4 count =05 for Pic inPath:6 I =cv2.imread(Pic)7 res = cv2.resize(I,(190,190),interpolation=cv2.INTER_CUBIC)8 Name = "Test" +str(count)9 cv2.imwrite(Name + ".png",res)10 fid = open(Name + ".dat",'w')11 fid.write('1651 2 8cc0 0 1a70c'+'\n')12 width,height = res.shape[:2]13 for channel in range(3):14 for row inrange(height):15 for col inrange(width):16 fid.write(str(res[row][col][channel])+'\n')17 count += 1

将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成:

4a35c7ef69e581f17875eb6b0b61f000.png

我们可以通过修改代码中的190*190的图像尺寸来生成不同的图像数据,并生成对应的.dat文件。

3、创建音频对应的.dat文件:

如下链接中的单音音源sin.wav,生成对应的.dat文件.

Code(文件名Audio2Dat.py):

1 from scipy.io.wavfile importwrite, read2 importnumpy as np3 importmath4 importglob5 importsys6 importos7

8 INT16_FAC = (2**15)-1

9 INT32_FAC = (2**31)-1

10 INT64_FAC = (2**63)-1

11 norm_fact = {'int16':INT16_FAC, 'int32':INT32_FAC, 'int64':INT64_FAC,'float32':1.0,'float64':1.0}12

13 defwavread(filename):14 """

15 Read a sound file and convert it to a normalized floating point array16 filename: name of file to read17 returns fs: sampling rate of file, x: floating point array18 """

19 if (os.path.isfile(filename) == False): #raise error if wrong input file

20 print("Input file does not exist. Make sure you computed the analysis/synthesis")21

22 fs, x =read(filename)23

24 if (len(x.shape) !=1): #raise error if more than one channel

25 raise ValueError("Audio file should be mono")26

27 if (fs !=44100): #raise error if more than one channel

28 raise ValueError("Sampling rate of input sound should be 44100")29

30 #scale down and convert audio into floating point number in range of -1 to 1

31 x = np.float32(x)/norm_fact[x.dtype.name]32 returnfs, x33

34 path = glob.glob('*.wav')35 count = 1

36 for p inpath:37 fs, dat =wavread(str(p))38

39 fid = open(str(count)+'.dat','w')40 #flie·Magic=1651 X=9 data·StartAddress=0x80000000 X=0 data·Number(Hex)=0x7a120 X=5

41 fid.write('1651 9 80000000 0 7a120 5'+'\n')42 for i indat:43 fid.write(str(i)+'\n')44 fid.close()45 count += 1

将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成.dat文件:

54d25d701550f8b7a2d7264dea0015de.png

结果如下:

1 1651 9 80000000 0 7a120 5

2 0.0

3 0.05011866

4 0.10004042

5 0.14956915

6 0.19851027

7 ...8 ...

参考内容:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值