我在我的公寓里为我的供暖系统写了一个小应用程序,在编译结束时我正在成为以下输出:
getLocationName(){
this.service.getLocationName(this.pos.coords.latitude, this.pos.coords.longitude)
.subscribe(location => {
console.log(location); //TODO: remove
},error => {
console.log('Error happened' + error);
}
)
}
我正在使用带有128 KB RAM的STM32F446RE,如果我是正确的,bss部分需要75KB的RAM;这意味着超过50%的RAM消失了。
杀死bss我的RAM或编译器表示此值错误?
我的软件应该更改什么?
答案 0 :(得分:1)
是的,根据报告,你是对的,大约50%的RAM是由.bss占用的。可以肯定的是,您可以生成映射文件以找出变量的分配方式(或者在哪里)(-Wl,-Map = output.map)。
关于解决方案,你必须优化软件(需要所有变量吗?你使用编译器优化作为-O3 / ... options吗?你可以重用变量吗?)我不知道关于你的代码/算法/等,但它看起来像加热系统的很多字节。
链接器脚本将显示.bss部分的边框(即当前大小)(以及内存的分割方式),以防您想要修改它(您可以选择内存的分布方式) )。