首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么cfs_write()消耗太多的ROM内存?

为什么cfs_write()消耗太多的ROM内存?
EN

Stack Overflow用户
提问于 2017-10-05 12:00:53
回答 1查看 50关注 0票数 0

我正在开发一个Contiki应用程序,我正在耗尽ROM内存。我想使用Contiki文件系统(CFS)编写一个小文件(32字节长),因此我添加了以下代码:

代码语言:javascript
复制
 fd_write = cfs_open(filename, CFS_WRITE);
 n = cfs_write(fd_write, message, sizeof(message)); //Message size is 32 bytes
 cfs_close(fd_write);

问题是cfs_write()将.text部分增加了3210字节。我发现这是因为删除cfs_write()的代码大小是:

代码语言:javascript
复制
  text   data    bss    dec    hex filename
  23912    114   4710  28736   7040 coffee-example.sky

对于cfs_write(),代码大小是:

代码语言:javascript
复制
 text   data    bss    dec    hex filename
 27122    114   4710  31946   7cca coffee-example.sky

注意,cfs_write()将.text部分增加3210字节。为什么cfs_write()这么多地增加了.text部分?如何减少cfs_write()在.text部分中的大小?

诚挚的问候,

塞尔吉奥·迪亚兹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 12:11:04

虽然cfs_write()本身并不是一个巨大的函数,但它确实调用了其他函数。如果您从应用程序代码中使用cfs_write(),那么所有其他函数也会在可执行文件中链接。

例如,如果您正在使用CFS的Coffee实现(有多个实现),则它调用merge_log(),而后者又单独调用一组函数。

优化这种使用没有简单的方法,因为CFS代码的开发已经考虑到了产生紧凑二进制代码的目标。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46585102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档