欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    TMS320C62XDSP的混合编程研究精Word文件下载.docx

    • 资源ID:13358163       资源大小:19.78KB        全文页数:11页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    TMS320C62XDSP的混合编程研究精Word文件下载.docx

    1、语言和汇编语言的混合编程有三种形式:在编写语言代码中插入汇编语句只需在汇编语句两边加上双引号和括号,在括号前面加上标识,如“汇编语句”;在编写代码的过程中调用内联函数中有一些直接映射为内联的指令的特殊函数,内联函数用前下划线表示,使用时同调用语言的库函数一样调用它,如;汇编代码以代码可以调用的函数出现。本文采用第三种形式。为了使程序代码的执行具有尽可能高的执行效率,本文将着重点放在并行汇编代码的编程,而不是线性汇编代码的编程。 语言与汇编语言混合编程的接口规范和标准用语言编写的代码中核心代码常常只是整个程序代码的,但是却占用了整个程序约的执行时间。对这些核心代码采用汇编语言编写,可以大大提高代

    2、码的执行效率,而语言程序可以象调用程序的一个函数那样去调用这个汇编函数。为了实现语言和汇编语言的混合编程,需要注意一些规定的接口规范和标准。()采用语言和汇编语言混合编程时,定义了一套严格的寄存器规则。这个寄存器规则表明了编译器如何使用这些寄存器以及在函数调用过程中如何保护这些寄存器。调用函数保护了寄存器和,这就使得在编写汇编程序的时候可以任意的使用这几个寄存器而不需保护它们。但当使用到寄存器或的时候,则必须自行对它们进行保护。长型、双精度型或者是长双精度型的数据对象要放在一个奇偶寄存器对(如:)里,奇数寄存器存放着数据的符号位、指数位和最高有效位,而偶数寄存器则存放着低有效位。在默认情况下,

    3、用作返回结构指针寄存器,用作被调用函数返回地址寄存器,用作帧指针寄存器,用作数据页指针寄存器,用作堆栈指针寄存器。这些寄存器在被调用的汇编函数中用到时都要进行保护。()调用函数将参数传递到被调用函数中,前十个参数将被从左到右依次放入寄存器、和,如果传递的参数是长型、双精度型或者是长双精度型,则将参数依次放入寄存器组:、:、:等,并将剩下的变量按相反的顺序放在堆栈里。注意,如果传递的参数是一个结构类型的参数,则传递的是该结构类型的地址。()如果在调用函数中做了正确的函数返回声明,则被调用的汇编函数可以返回有效值。如果返回值是整型或位的浮点型,则放在寄存器中返回;如果返回值是双精度或是长双精度型,

    4、则放在:中返回;如果返回值是一个结构类型,则将其结构的地址放在中返回。()编译器为所有的外部对象指定一个链接时的名字。当写汇编语言代码时,必须用与这个名字相同的名字。对于只在汇编语言模块中用到的变量的标识符,不能从下划线开始。任何一个在汇编语言中声明的对象都要使其在中是可访问的,那么在汇编语言中必须用 或将其声明为外部变量。同样在汇编语言中要引用函数或对象时,必须用 或将对象声明,这将产生一个在汇编语言函数中没有定义的由链接器辨识的外部引用。还有一些细节也需要注意,如中断子程序必须把该子程序将要用到的所有寄存器进行入栈处理;除了全局变量的初始化外,汇编语言的模块不得因为任何目的而使用段;汇编代

    5、码的结束需用指令 将程序执行从被调用函数返回到语言调用函数中。 并行汇编代码的编写的汇编代码格式如下:标号: 并行标记 条件寄存器指令助记符 功能单元 操作数 ;注释。如: , , ;用到了交叉数据通道片内有个并行的处理单元,分为相同的两组。其体系结构采用超长指令字()结构,一个指令包里的条并行指令可同时分配到个处理单元并行运行。这种一个指令包里有条指令并行执行也给并行汇编代码的编写带来很多要考虑的问题具体如下:()指令的执行可以用延迟间隙来说明。延迟间隙在数量上等于从指令的源操作数被读取到执行的结果可以被访问所用的指令周期。如对于乘法指令(),源操作数从第个周期被读取,则其计算结果在第()个

    6、周期才可用。()使用相同功能单元的两条指令不能被安排为并行指令。()使用同一条交叉通路的两条指令不能被安排在同一个执行指令包中,这是因为从寄存器组或者从都只有一条交叉通路。将数据读入到(或存储自)相同寄存器组的两条读(写)指令不能被安排在同一个执行包中。每一个执行包里只能允许每一寄存器组处理一个长定点类型数据。在一个指令周期内对同一寄存器读取多于四次是不允许的,但条件寄存器不在此限制之列。在一个指令周期内,不能同时存在两条写入同一寄存器的指令,只有在写操作不是在同一个指令周期发生时,才可以将具有同一目的地址的两条指令安排并行。 基于的运动补偿的混合编程设计实例运动补偿是标准中的一种重要算法。运

    7、动补偿是指根据运动矢量在参考帧中找出参考块。如果运动矢量的分量和分量都是整象素长度,则直接在参考帧中找出参考块。如果为半象素长度,则需要通过内插运算计算出参考块,计算出的参考块需要加上解码得出的误差块才能得到当前参考块。本文给出了运动矢量的分量和分量都是整象素长度时的运动补偿方法。根据运动矢量可直接在参考帧中找到参考块()。完成此功能的语言函数如下: 参数运动矢量对(个字节为一个字,长位)的余数可能是、。当余数是的时候,编译后执行代码是按字读取()的,这充分体现了的优点,也使程序的运行效率比较高。而当余数不为的时候,则可能是按字节读取()或是按半字读取(),这使程序的运行效率较低。视频的编码和

    8、解码都要用到运动补偿来重构图像,这是一个很费时的操作,而且其代码也是图像处理中的核心代码,这样就要求编写高效的程序来完成此操作。为了使代码的运行效率更高,且结合的硬件特点,希望对于不同的运动矢量,做运动补偿的时候都能采用按字读取和存储的方式。这需要对运动矢量参数除以,根据余数调整指针,使指针始终指向字对齐方式而在程序中当前块是型的以字节方式存储的,对其进行移位处理只能是一个字节一个字节地进行移位,这就使得在程序中不能用和汇编程序同样的方法来对程序进行优化,如运动矢量除以以后的余数为,为了使要取的个象素对准字访问方式,则要按图进行操作。 根据运动矢量参数进行移位使其对准字访问的核心代码的程序为: ;获得地址的位 ;参考块第一个元素的地址 ;字对准访问的地址 ;用两个位得;到了需右移几个字 ;需左移几个字 ;需右移的数 ;需左移的数作为一个说明语言与汇编程序混合编程的设计例子,采用并行汇编实现了这个函数的优化。这里只给出部分汇编程序: ;将该段汇编代码安排在段,当然通过在语言中用也可以将其安排在其它自己命名的段中。 ;函数名,用或对其进行声明,使得代码调用该函数 ;标号,是调用函数和汇编被调用函数的接口处 , , , ;被调用函数用到了, ,;的寄存器,则需对它们保护 , , , ;关闭某些中断 ,读取第一个字 , ;读取第二个字 , ;读取第三个字 , ,


    注意事项

    本文(TMS320C62XDSP的混合编程研究精Word文件下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开