This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430F2330:POWERF函数大小

Guru**** 2609955 points
Other Parts Discussed in Thread: MSPMATHLIB

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/660459/ccs-msp430f2330-powf-function-size

部件号:MSP430F2330
主题中讨论的其他部件:MSPMATHLIB

工具/软件:Code Composer Studio

您好,

我们有一个使用6.5 KB 的8 KB MSP430,需要从数学中添加POW过程 当我们添加它时,闪存的使用从6.5 KB 跳到10 KB =对我们的小型MSP430没有好处。 有什么建议?

真的无法理解添加单个POW请求如何添加3.5 KB ?

谢谢!

保罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Paul:

    为您提供两个建议

    1.自己写pow函数(不难实现)

    2.优化代码大小

      对此的一些建议

      用于CCS

      (1)将小内存模型用于代码@数据,如下所示

        

      (2)如有可能,不要使用全局变量。 (或者使用非常少量的全局变量,并且没有预初始化。 在main中初始化它们。  

    )

      (3)在一个小项目中,你没有足够的变量让看门狗在main之前超时,这是一个令人关注的问题。

        项目>属性> MSP430连接器>基本选项,将“电影自动初始化期间保持看门狗计时器”设置为“关闭”

      (4)使用#pragma NOINIT将所有全局设置为NO-INIT,或使用CCS设置禁用零初始化(Project > Properties > MSP430 Linker > Advanced Options > Miscellaneous,将“Zero initialize ELF uninitialized sections”设置为“Off”)

    适用于IAR

     (1)将代码大小的优化设置为高级。 Project (项目)> Options (选项)> C/C++ Compiler (C/C++编译器)> Optimizations (优化)   

     (2)将代码和数据模型设置为与CCS相同的小内存模型

      

    (3)如有可能,不要使用全局变量。 (或者使用非常少量的全局变量,并且没有预初始化。 在main中初始化它们。  

    )

    (4)在所有全局变量前加上__NO_INIT关键字,例如__NO_INIT unsigned char RXData; 。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢Gary, 我们已经将优化设置为"小"。  我们找到了一段我们可以使用的代码,但它也使用3.5 KB ,这很奇怪,因为它只有大约15行。 它使用了联合和双精度,但实际上我们只需要一个将浮点数作为输入的版本。 我希望寻找一个使用浮子的功能,因为这样做会大幅减小尺寸?

    为整数输入编写代码很容易,但我们需要浮点输入。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Paul
    数学库将占用大量内存空间,这对3.5 KB 来说并不奇怪。 这种情况有两种解决方案
    1.将浮点数据转换为整数
    我不知道数据源来自何处(ADC或其他通信接口),我们可以将10的倍数(取决于您的准确性)与源数据相乘,将浮点数据转换为整数。
    2.我不知道您是否可以使用MSPMATHLIB将设备更改为F5XX/6XX或FRxx。 我建议您可以了解我们的新型价值线产品,这些产品具有低成本和强大的功能。 更多信息如下:
    www.ti.com/.../value-line-sensing-mcus.html
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Gary:

    它适用于伽马校正程序/方法,因此我们可以使用0.5 增量,通过执行平方根使编码更简单。 本来应该更精确一些,理想的0.1 步数,但这是个突破!

    设法从此处获取代码: stackoverflow.com/.../computing-fractional-exponents-in-c

    并对其进行了一点攻击,以完成工作。 这次只使用了300泰铢,非常棒。

    感谢你的帮助。