求教一下MSP430的RAM分配问题。

2019-03-23 22:15发布

  单片机:msp430fr2111    编译器:CCS v8.3.0      因为我最近在写一个关于msp430fr2111单片机的程序,写着写着,系统就提示我爆了FRAM内存。最后检查出来是因为一串有小数的计算公式捣的鬼:get = get/65535.0*4.096*10000;  可能因为是小数占的位数太多了,就提示了爆内存。之后我想了其他方式解决。可是系统一直会在我这一行算法提示一行信息:recommend moving them to RAM during run time or not using as there are processing/power intensive.


  因为以前都是单纯地写程序,没考虑过内存的分配问题。求大佬指点一下。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
lcofjp
2019-03-24 06:10
< :TI_MSP430_内容页_SA7 --> 浮点数运算比较消耗cpu和内存
所以说,能用整数的尽量别用小数,如果要求精度不高,可以把小数部分作为整数的末几位。
另外就是考虑优化你的公式了,因为我对你的需求不了解,所以也不能假定太多,
第一个疑问,明显是整数的数值为啥显式加.0作为浮点数?
第二个,4.096*10000明显是个整数,为啥不直接写40960
第三个,get是什么类型?如果是浮点数,后面的数值为啥显式写成浮点数;如果是整数,那么为什么不写成统一的整数运算?
我觉得get = get/65535.0*4.096*10000;经过优化后至少可以写成这样:
get = get * (40960L) / 65535;

一周热门 更多>

相关问题

    相关文章