3213|7

50

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于CCS9的浮点运算的效率及内存使用 [复制链接]

各位前辈好

我又来啦

三个月前我们就想要从IAR转型到CCS,CCS免费且功能强大,非但免费而且免费,它的免费和版本管理我可太心水了

但从零摸索一款软件肯定会有这样那样的问题,比如说CCS9的浮点运算效率的问题,这个问题我在TI的官方论坛讨论并解决了,但由此引发了新的问题:CCS是怎么管理/分配单片机内存的。

我稍微逛了一下这个论坛,发现没人谈论CCS的浮点运算,那就把我在TI论坛的讨论的链接贴上,能帮到人的话就太好了

https://e2echina.ti.com/question_answer/microcontrollers/msp430/f/55/t/189708?tisearch=e2e-sitesearch&keymatch=%20user%3A105593

 

 

此帖出自单片机论坛

最新回复

精度是设计出来的,不是算出来的  详情 回复 发表于 2020-8-28 11:24
点赞 关注
 

回复
举报

50

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

贴上我的答案——

你好,感谢你的耐心指导

由于其他项目比较着急,ccs的浮点运算问题搁置了几天。今天调了一下,成功将运算时间减至7ms,网上找不到类似这种的处理方法(或者说我不会用搜索引擎),将之记录如下,以供后来人参考

本项目主要功能是获取、处理、发送大量浮点型数据,在ccs的项目默认设置中,程序无法正常进入中断。经过多方尝试,排除干扰函数,稍稍可以得出内存溢出的结论,从map文件中可看到,由于程序使用了大量全局变量,RAM几近填满

查看详情

程序自然报错。参考IAR的设置查看详情,将ccs也修改为32位(右键项目>>build>>optimization>>Inline hardware multiply version of RTS mpy routine(--use_hw_mpy)>>32)

查看详情

程序运行时间大大缩短,已达到项目要求。但是我后来发现,下位机串口每隔1s发送数据,发送30s左右后,再也进不了串口中断,而定时中断,ad12的中断可以正常响应。网上的前辈说是串口中断溢出,需要清空溢出标志位,但是通过寄存器窗口发现这并不符合我的情况。通过map文件,发现RAM的使用度还是很大,于是我把所有的double全改成float,RAM空间大致还剩500byte左右。这时串口中断可以一直响应

然后新的问题就来了,串口发送的数据是错误的(事实上上一步的串口数据也是错误的)

查看详情

今天要端午放假的小菜鸟我比较快乐,快乐地在想:那个none是什么意思

查看详情

设置了之后,串口正常响应,数据接收正确

查看详情

至此,问题完美解决(也许并不完美)。以上用词并不专业,也许还有逻辑bug,贻笑各位了

此帖出自单片机论坛
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

经过我的实验,CCS工程的RAM使用量需要控制在3500Bytes以下,才能避免出现这种中断响应异常、浮点运算效率极低的情况。且不说我的单片机的RAM空间是4K,同样的代码在IAR里运行没有出现任何问题。CCS对于单片机内存的分配和管理是有什么特别的吗?

(double改成float固然可以解决问题,但是我不想损失数据精度)

此帖出自单片机论坛

点评

不然 IAR 凭啥收费?  详情 回复 发表于 2020-8-26 13:37
 
 
 

回复

7671

帖子

18

TA的资源

五彩晶圆(高级)

4
 
luaffy 发表于 2020-8-26 13:18 经过我的实验,CCS工程的RAM使用量需要控制在3500Bytes以下,才能避免出现这种中断响应异常、浮点运算效率 ...

不然 IAR 凭啥收费?

此帖出自单片机论坛

点评

哈哈哈哈是这个原因吗,还想着能不能修改什么配置能改善这种情况  详情 回复 发表于 2020-8-26 13:46
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

5
 
freebsder 发表于 2020-8-26 13:37 不然 IAR 凭啥收费?

哈哈哈哈是这个原因吗,还想着能不能修改什么配置能改善这种情况

此帖出自单片机论坛

点评

把优化级别调高能搞不少空间出来。  详情 回复 发表于 2020-8-26 13:50
 
 
 

回复

7671

帖子

18

TA的资源

五彩晶圆(高级)

6
 
luaffy 发表于 2020-8-26 13:46 哈哈哈哈是这个原因吗,还想着能不能修改什么配置能改善这种情况

把优化级别调高能搞不少空间出来。

此帖出自单片机论坛

点评

这个试过了,没什么效果  详情 回复 发表于 2020-8-26 16:20
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

7
 
freebsder 发表于 2020-8-26 13:50 把优化级别调高能搞不少空间出来。

这个试过了,没什么效果

此帖出自单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

8
 

精度是设计出来的,不是算出来的

此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表