×

CLA的使用指南详细资料说明

消耗积分:1 | 格式:pdf | 大小:3.57 MB | 2021-01-11

hjw2021

分享资料个

  Piccolo DSC 包括两个系列: TMS320F2802x,包括 F280200/20/21/22/23/26/27,最高主频达到 60MHz; TMS320F2803x,包括 F28030/31/32/33/34/35,最高主频达到 60MHz,同时 F28033/35 内部集成了一个 32 位浮点控制律加速器(Control Law Accelerator),简称 CLA。本文致力于详细介绍 CCS v3.3 开发环境下 CLA 的调试方法。至于 CCS v4.x 开发环境下的调试方法,后续将会发布新的使用指南。

  控制律加速器(CLA)是一个独立、完全可编程的 32 位浮点数学处理器,它将并行控制环执行功能引入到 C28x 系列器件。CLA 的低中断延迟使得它能即时读取 ADC 采样。这就极大降低了 ADC 采样到输出的延时,实现了更快的系统响应和更高频率的控制回路。通过利用 CLA 来服务对时间要求严格(time-critical)控制回路,主 CPU 就能自由地处理其它诸如通信、诊断之类的系统任务。 CLA 具有如下显著特点: 独立的、可编程的 32 位浮点协处理器; 运行频率与主 CPU C28x 一致,并具有独立的 8 级流水线; 完整的总线结构: ¾ 程序地址总线和程序数据总线; ¾ 数据地址总线、数据读总线和数据写总线。 12 位程序计数器(MPC); 4 个 32 位的结果寄存器(MR0 – MR3); 2 个 16 位的辅助寄存器(MAR0,MAR1); 支持断点调试; 支持 IEEE 单精度浮点运算; ¾ 单周期浮点加、减、乘法; ¾ 单周期浮点比较、取最大值、取最小值; ¾ 单周期 1/x、1/sqrt(x)估算; ¾ 数据类型转换; ¾ 条件分支和调用; ¾ 数据装载/存储操作。 CLA 程序代码可以包含多达 8 个任务或中断服务程序: ¾ 每个任务的起始地址通过 MVECT 寄存器来设定; ¾ 任务的大小没有限制,只要求任务的大小在 CLA 程序存储空间的范围之内,; ¾ 每个任务一次性服务完,中间不会嵌套其它任务; ¾ 当任务完成时,任务特定的中断会在 PIE 中标识出来;¾ 当一个任务完成时,自动启动下个优先级最高的挂起任务。 任务触发机制: ¾ C28x CPU 通过 IACK 指令来触发; ¾ Task1~Task7:对应 ADC 或 ePWM 模块中断。例如: ¾ Task1:ADCINT1 或 EPWM1_INT; ¾ Task2:ADCINT2 或 EPWM2_INT; ¾ Task7:ADCINT7 或 EPWM7_INT; ¾ Task8:ADCINT8 或 CPU Timer0 来触发的任务。 存储器和共用外设: ¾ 2 个专用的信息 RAM(Message RAM),供 CLA 和主 CPU 通信使用; ¾ C28x CPU 可以将 CLA 程序和数据存储器映射到主 CPU 空间或 CLA 空间; ¾ CLA 可以直接访问 ePWM+HRPWM、比较器和 ADC 结果寄存器。在含有CLA的处理器中,CLA可将CPU解放出来,自动控制外设的运作,达到更高的控制精度以及更好的实时性。有CLA与没有CLA的区别如图 1.1所示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'CLA的使用指南详细资料说明',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);