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.

[参考译文] 编译器/MSP430G2231:程序无法装入可用内存[...]

Guru**** 2595805 points
Other Parts Discussed in Thread: MSP430G2231, MSP430FR4133

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/664580/compiler-msp430g2231-program-will-not-fit-into-available-memory

部件号:MSP430G2231

工具/软件:TI C/C++编译器

您好,


我正在尝试将BMP280传感器与MSP430G2231配合使用。 我的SPI通信似乎还可以,但是当我尝试通过文档公式转换温度时,我遇到了这个错误:

"../lnk_msp430g2231.cmd",第95行:错误#1.0099万-D:程序将不适合可用内存。 对".text"区域大小0x946进行定位失败。  可用内存范围:
  闪存       大小:0x7e0       未使用:0x7d2       最大孔:0x7d2     
错误#1.001万:链接期间遇到错误;未生成"Test_Capteur.ut"

这是我的代码,如果我评论此函数,则没有错误:

double bmp280_incense_t_double (长符号int adc_T,无符号int dig T1f,有符号int dig T2f,有符号int dig T3f)
{
	长符号int t_fine;
	int var1,var2,T;
	var1 =(((((double) adc) t)/ 1.6384万.0)-(((((((((((双) dig) dig) t1f))))))) dig


	= 1024.0) var2)) var2 ((((双) ADC_T)/ 13.1072万.0)-((((双) DIG_T1f)/ 8192.0)*((((((双) ADC_T)/ 13.1072万.0)-(((((双) DIG_T1f)/ 8192.0))))) *(((double) dig T3f));


	var2 =((((double) ADC_T)/vr2–((double) dig T1f)/vr2)*((((double) ADC_T)/vrint 13.1072万.0 –(((double) dig) 13.1072万.0 8192.0));
	t_fine =(varint =
	1);8192.0 5120.0 (var1) varint =

	
(var1));varint (var1))+) var1 (varint (var1))

是否有任何帮助?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    博世提供的传感器API确实非常庞大。
    我的传感器也有同样的问题,不得不切换到更大的MCU。
    事实上,这不是一个错误,而是告诉事实:(除非你减少代码或更好,否则它不适合你,去使用另一个MCU。
    祝你好运,伙伴。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答!
    这就是我们的专业人员为我们提供另一个具有更多内存的MSP430的原因:/
    但是这个记忆似乎没有被使用。不是吗? : 闪存 大小:0x7e0 未使用:0x7d2 最大孔:0x7d2
    我的项目中没有包含Bosh API,所以应该没问题,对吧? 我最多只有400行代码!!
    顺便说一下,如果我的项目使用MSP430FR4331,但我家里没有该设备,这似乎是可以的:(

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

    您好,

    除了kazola所说的内容 外,您还可以查看编译器/诊断消息/1.0099万 wiki页面,以完全了解错误。

    除了选择具有更多内存的MCU的解决方案外,您通常也可以尝试代码大小优化(如果代码尚未进行大小优化)。

    此致,

    Britta.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,您可以通过剥离不需要的代码来执行自己的API。
    I2C代码不长,校准和补偿是,对吗? :)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在我看来,时间并不长

    我今天在msp430fr4133上实施了代码,一切都正常。 感谢您的帮助=)