网站大量收购独家精品文档,联系QQ:2885784924

CLA_C2000_C_Compiler.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CLA_C2000_C_Compiler

TI CLA C 编译器 概述 6/15/2012 TI Proprietary Information - Selective Disclosure C2000 Compiler Roadmap Current 11Q4 12Q1 12Q2 12Q3 12Q4 13H1 Future C2000 CGT v5.2 ? Assembler support for CLA C2000 CGT v6.0 ? Assembler support for VCU ? Linker support for CRC checking ? MISRA-C checking ? Link-time optimization ? Minor performance improvements ? CCS ease-of-use improvements (6.0.2) CGT v5.2 Future Early Adopter In Development Production C2000 CGT v6.1 ? CLA C support ? Targeted Performance improvements CGT v6.0 C2000 CGT v6.2 ? Future accelerator support ? DP load optimization ? Improved size/speed tradeoffs ? Additional performance improvements ? Reduced compilation time ? IEEE float compliance CGT v6.1 CGT v6.2 3 对C语言的支持 ? 只支持C语言,不支持C++,不支持GCC的语言扩展 ? 数据类型的支持 ?char,short – 16 bits ?int, long, long long – 32 bits;use int32, uint16 instead ?float, double, long double – 32 bits ?pointers – 16 bits ? 结构和联合可能不兼容 ? 位域可能会有不一样的安排 对C语言的支持(继续) 4 ? CLA 的体系结构是支持32位的整数类型,16位的整数会引 入符号扩展。16位的整数应该只用来读取数据 ? 除FAST_FUNC_CALL以外,支持C2000所有的PRAGMA ? 没有标准的C的库函数 ? 不支持修正符far,ioport. cregister 只在下面的情况下支持 extern cregister volatile unsigned int MSTF C Code : { mstf = x; } Assembly Code: MMOV32 MSTF,_x or MMOV32 _x,MSTF 5 CLA 对intrinsic函数的支持 float __meisqrtf32(float) unsigned short __mf32toui16r(float) float __meinvf32(float) __mdebugstop() float __mminf32(float, float) __meallow() float __mmaxf32(float, float) __medis() void __mswapf(float, float) __msetflg(unsigned short, unsigned short) short __mf32toi16r(float) __mnop() float __mfracf32(float) abs() float __sqrt(float) fabs() 6 对C语言的限制 ? 不支持对全局变量的定义和初始化 – 全局变量的定义和初始化只能在C2800上做 ? ‘static’变量也一样 int global_var = 5; /* illegal in .cla file */ ? 不支持64位的数据类型 – 64位的数据类型只在存储器中占两个连续的32位空间 ? 局部变量被放在暂存器里。暂存器空间可由下面2个地址来 在linker command文件中来定义。暂存器可看作是CLA的系 统堆栈 ?__cla_scratchpad_start ?__cla_scratchpad_end 7 在链接器命令文件中定义CLA的暂存器 ? // Define a size

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档