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
如下例子中的数据:
1651 2 8cc0 0 1a70c
79
74
74
67
...
...
第一行的数据为:1651 2 8cc0 0 1a70c
1651标志着这是TI的.dat文件的格式。
表示了这个文件中的数据是整数格式的,比如第二行的数据79是interger的格式。
8cc0表示这段数据Load Memory到CCS软件的过程中,是加载到0x8cc0对应的地址上的。
0表示这段数据将加载到page0的位置上。
1a70c表示这段数据的总长度为0x1a70c(Hex) = 108300(Decimal)
2、创建图像对应的.dat文件:
如下的图片,转换为190*190大小的图片,并生成对应的.dat文件.
Code(文件名称:_dat_create.py):
import cv2
import glob
Path = glob.glob('*.jpg')
count = 0
for Pic in Path:
I = cv2.imread(Pic)
res = cv2.resize(I,(190,190),interpolation=cv2.INTER_CUBIC)
Name = "Test" + str(count)
cv2.imwrite(Name + ".png",res)
fid = open(Name + ".dat",'w')
fid.write('1651 2 8cc0 0 1a70c'+'\n')
width,height = res.shape[:2]
for channel in range(3):
for row in range(height):
for col in range(width):
fid.write(str(res[row][col][channel])+'\n')
count += 1
将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成:
我们可以通过修改代码中的190*190的图像尺寸来生成不同的图像数据,并生成对应的.dat文件。
3、创建音频对应的.dat文件:
如下链接中的单音音源sin.wav,生成对应的.dat文件.
https://files.cnblogs.com/files/uestc-mm/sin.7z
Code(文件名Audio2Dat.py):
from scipy.io.wavfile import write, read
import numpy as np
import math
import glob
import sys
import os INT16_FAC = (2**15)-1
INT32_FAC = (2**31)-1
INT64_FAC = (2**63)-1
norm_fact = {'int16':INT16_FAC, 'int32':INT32_FAC, 'int64':INT64_FAC,'float32':1.0,'float64':1.0} def wavread(filename):
"""
Read a sound file and convert it to a normalized floating point array
filename: name of file to read
returns fs: sampling rate of file, x: floating point array
"""
if (os.path.isfile(filename) == False): # raise error if wrong input file
print("Input file does not exist. Make sure you computed the analysis/synthesis") fs, x = read(filename) if (len(x.shape) !=1): # raise error if more than one channel
raise ValueError("Audio file should be mono") if (fs !=44100): # raise error if more than one channel
raise ValueError("Sampling rate of input sound should be 44100") #scale down and convert audio into floating point number in range of -1 to 1
x = np.float32(x)/norm_fact[x.dtype.name]
return fs, x path = glob.glob('*.wav')
count = 1
for p in path:
fs, dat = wavread(str(p)) fid = open(str(count)+'.dat','w')
# flie·Magic=1651 X=9 data·StartAddress=0x80000000 X=0 data·Number(Hex)=0x7a120 X=5
fid.write('1651 9 80000000 0 7a120 5'+'\n')
for i in dat:
fid.write(str(i)+'\n')
fid.close()
count += 1
将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成.dat文件:
结果如下:
1651 9 80000000 0 7a120 5
0.0
0.05011866
0.10004042
0.14956915
0.19851027
...
...
参考内容:
Reference001:来自TI员工的回答,https://e2e.ti.com/support/tools/ccs/f/81/t/789759?tisearch=e2e-sitesearch&keymatch=%20user:332444
Reference002:所有代码,图片-音频打包下载(TI_dat_create.7z),https://files.cnblogs.com/files/uestc-mm/TI_dat_create.7z
TMS320DM642学习----第六篇(CCS中.dat文件类型详解)的更多相关文章
- log4CXX第二篇---配置文件(properties文件)详解
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- android中的文件操作详解以及内部存储和外部存储(转载)
原文链接:http://m.blog.csdn.net/article/details?id=17725989 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安 ...
- Java中的枚举类型详解
枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...
- linux系统中的文件权限详解(转)
一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...
- 【转】 android中的文件操作详解以及内部存储和外部存储
摘要 其实安卓文件的操作和Java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者 ...
- VMware虚拟机文件夹中各文件作用详解
虚拟机的文件管理由VMware Workstation来执行 一个虚拟机一般以一系列文件的形式储存在宿主机中,这些文件一般在由workstation为虚拟机所创建的那个目录中 这里列出了这些关键文件及 ...
- linux学习之路第八天(linux文件权限详解)
建议和我上一篇博客一起通读,效果更加 1.权限的基本介绍 通过一张图片解决疑惑(重点) rwx权限详解 rwx作用到文件 1)[r]代表可读(read) :可以读取,查看 2)[w]代表可写(writ ...
- python基础语法_python中的布尔类型详解
转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...
- Python学习第六篇——字典中的键和值
favorite_language ={ "jen":"python", "sarah":"c", "edwa ...
随机推荐
- window配置ftp服务,代码客户端上传下载文件
1 开启ftp服务 打开控制面板,点击程序,找到程序和功能,点击”打开或关闭windows功能” 找到“Internet信息服务”,点击前面的加号,展开功能,勾选”FTP服务”,“FTP扩展性”,“I ...
- 一秒钟带你走进P图世界-----(python)PIL库的使用
python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...
- Eclipse使用JDBC小案例
JDBC(Java Database Connectivity:Java访问数据库的解决方案)定义一套标准接口,即访问数据库的通用API,不同数据库厂商根据各自数据的特点去实现这些接口. JDBC是J ...
- jdbcTemplate批量插入处理数据
最近有个需求,就是批量处理数据,但是并发量应该很大,当时第一时间想到得是mybatis的foreach去处理,但是后来通过查资料发现,相对有spring 的jdbcTemplate处理速度,mybat ...
- 背景上实现阴影——linear-gradient
/*从元素顶部有条阴影,两种方式,第二种更好,能控制阴影的宽度*/background-image: linear-gradient(0deg, rgba(226, 226, 226, 0) 97%, ...
- Hyper-V安装虚拟机
1.进入控制面板-程序,选择“启用或关闭Windows功能” 2.找到Hyper-V,勾选,重启电脑,即可 3.若是没有找到Hyper-V,如此操作 1)新建txt文件,输入以下内容: pushd & ...
- SpringMVC+Apache Shiro+JPA(hibernate)整合配置
序: 关于标题: 说是教学,实在愧不敢当,但苦与本人文笔有限,实在找不到更合理,谦逊的词语表达,只能先这样定义了. 其实最真实的想法,只是希望这个关键词能让更多的人浏览到这篇文章,也算是对于自己写文章 ...
- P2P互联网金融企业的四大转型方向
1.按照国标做成百分百的信息中介平台.这个定位太低,无利可图,如果政策导向真按着这个路径走,未来可能只剩下不到50家平台; 2.转型成为带“民营银行”属性的平台.这还得国家网开一面,学习英国模式,允许 ...
- java字符串转为Map类型:split()方法的应用
方法一: package com.thinkgem.jeesite.modules.socketTest.demo2; import java.util.HashMap; import java.ut ...
- Tomcat关闭失败,SEVERE: Could not contact localhost:8005. Tomcat may not be running.
SEVERE: Could not contact localhost:8005. Tomcat may not be running. Tomcat 启动后,关闭失败,显示以下 进入 java 的安 ...