DSP应用程序的移植和软件架构体系
Qianyong(anqian88@etang.com)
一.基于X86(Pentium4)平台的VC++应用程序 如何移植到DM642平台 有哪些关键点
.c/.cpp/.asm /.lib/.dll…… .c/.cpp/.asm /.lib/……
Visual C++
移植
CCS
X86 Platform
DM642
关键点一:分析并提取VC++应用程序中与 算法相关的代码
算法移植的第一步就是分析并提取VC++应用程序中与算法相 关的代码,并参考VC++应用程序,重新建立算法验证的程序框架和 测试环境.
void algo_verify(void) { Setup&Init AlgoEnv; Create&Init AlgoObj; while(1){ Get InData; Processed by Algo; Output Result; }
Algorithm (API)
Dsp/bios ……
CDB/Cmd }
1.创建CCS项目并加入 算法和验证等代码/库
2.描述并配置(CDB)验 证平台以及系统环境; Sim/Dm642
关键点二:编译器&平台相关的基本数据 类型之间的差别:
DATA TYPE char short int long float double VC&x86 8-bit 16-bit 32-bit 32-bit 32-bit 64-bit CCS&Dm642 8-bit 16-bit 32-bit 40-bit 32-bit 64-bit
注:1. CCS&Dm642体系中,long型数据的取值范围是按40-bit 来计算的,而占用的存储空间却是按照64-bit来计算的; 2.VC& x86体系中定义了bool数据类型,它占用8-bit(VC5.0 and later); 而CCS&D m642体系中并未定义bool数据类型,用户使用之前应 该自己定义;3.CCS&DSP/BIOS系统中也定义适用于不同应用场 合的数据类型预定义,具体参见头文件std.h和csl_stdinc.h;
关键点三:编译器&平台相关的序的问题 (LittleEndian/BigEndian):
1. Dm642硬件平台的序是由Dm642芯片复 位时管脚TOUT1/LENDIAN的电平决定 (0-BigEndian/1-LittleEndian); 7~0 15~8 23~16 31~24 高地址
2. CCS编译工程之前,需要手工指定工程的 一编译设置以确定输出的模式(Project BuildOptions Compiler Advanced Endianness和CDB中); 3. X86硬件平台序的默认设置为BigEndian; VC编译器的输出默认为BigEndian模式;
BigEndian
31~24 23~16 15~8 7~0 低地址
31~24 23~16
15~8
7~0
LittleEndian
关键点四:汇编程序的处理(通常在.asm类 文件中)
很多被移植的开源项目中,譬如Xvid(Mpeg4)/X264(H.264), 很多运算量比较集中的函数,譬如FDCT/IDCT/Quant/Dequant /SAD,都是使用mmx汇编指令来优化实现的.mmx指令是依赖于 X86平台的,所以在移植的时候要用功能完全等同的C函数来替代, 进而做算法的功能验证.(这些汇编函数也是我们以后进行汇编级 优化的重点对象.)
关键点五:二进制库调用的处理(.lib/.dll)
如果被移植的项目中调用了二进制库(.lib/.dll)中的函数,那么: 1.如果被调用的函数包括在随CCS提供的库中(rts.lib),那么无需 -修改;例如getchar()/printf()/fread()等待; 2.如果被调用的函数不包括在随CCS提供的库中,那么根据该函数 -的性质加以处理:直接删除/用功能完全等同的C函数来替代.
关键点六:存储系统的合理配置
开发VC++应用程序时,程序员无需关心堆(heap)和栈(stack)大小 的配置,因为它是由操作系统来分配管理的.而在嵌入式系统的开发 中,程序员必须根据系统的需求来合理地配置系统的存储系统. 基于DSP/BIOS(A Realtime OS)的系统中,程序员必须合理配 置如下几个内存块的大小: 1)系统堆栈--用于C环境的建立,系统的初始化,中断服务程序; 2)任务堆栈--用于任务切换时上下文环境的保存,临时变量; 3)系统的堆--用于内存的动态分配(malloc-free/MEM_alloc-free); 基于实时库+main-loop的系统中,程序员必须合理配置如下两个 内存块的大小: 1)系统堆栈--用于C环境的建立,中断服务程序; 2)系统的堆--用于内存的动态分配(malloc-free); 在算法的移植过程中,3)显得尤其需要注意,因为它比较隐蔽. 在系统的稳定性测试过程中,1)和2)显得尤其需要注意,因为它出现 比较偶然(有时也是必然)和隐蔽.
- 提高cpu性能的软件 > DSP应用程序的移植和软件架构体系
-
DSP应用程序的移植和软件架构体系
下载该文档 文档格式:PDF 更新时间:2006-06-02 下载次数:0 点击次数:15文档基本属性 文档语言: 文档格式: pdf 文档作者: aa 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: bb 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:常用工具软件
下一篇:CJ系列新一代CJ2H-CPU6-EIP CPU单元,继承CJ1的优点,并进一步提...
点击查看更多关于提高cpu性能的软件的相关文档
- 您可能感兴趣的
- cpu性能测试软件 测cpu温度软件 最新cpu超频软件 手机cpu超频软件下载 intelcpu超频软件 电脑cpu超频软件下载 笔记本cpu降温软件 cpu温度测试软件 cpu降温软件官方下载
- 大家在找
-
- · proe5.0配置文件
- · 步步惊心大结局高清版
- · 华南理工大学电气工程
- · 庄主夫人6岁半txt
- · 时间的测量ppt
- · 手机自动应答软件
- · 3dmax2010人物建模
- · 3mwater.net
- · 三速电机接线问题
- · 电动机正反转原理
- · 蓝天体育用品商店
- · 数字电路基础课件
- · 驾校教练员的五项修炼
- · 幼儿园编制是怎么回事
- · 艳鬼勾魂国语版
- · cad室内家具图库下载
- · dota影魔练习图
- · c1c4是气体吗
- · 学生管理系统设计报告
- · 统计学研究生就业方向
- · 禄矛茫莽脝茂脢驴
- · 电子测量与仪器学报
- · 有机化学实验
- · 慢性胃窦炎的治疗
- · 经济法基础课件
- · 国网新源控股公司
- · 上海移动网站
- · 洗面盆怎样安装
- · 正则表达式去除
- · 双面绣怎么缝合
- 赞助商链接