首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从GNU脚本打印消息到标准输出?

如何从GNU脚本打印消息到标准输出?
EN

Stack Overflow用户
提问于 2015-07-09 14:20:01
回答 4查看 5.5K关注 0票数 5

我有相当大的ld链接脚本的嵌入式平台,这是低内存和ROM。在重新定位所有代码之后,我想知道还有多少内存可用。实际上,我想打印位置计数器.的值到stdout。我该怎么做呢?有没有像print(.)这样的神奇命令?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-09 15:01:51

手册。没有这样的命令--不可能。

链接器“脚本”实际上更像是配置/描述符文件。它们不像脚本那样被“执行”。也没有一个. (如何可以用于不同的内存区域)。

但是,您可以输出一个可能正是您所需要的映射。尝试选项-M。如果正确设置了链接器脚本中的内存区域,链接器将警告某些内存区域溢出,这实际上是自动生成所需的。

更新:,如果您想坚持查看每个构建上的区段大小,可以grep/筛选映射文件。

票数 1
EN

Stack Overflow用户

发布于 2015-09-26 22:15:54

我在我的项目中有一个链接步骤,可以转储东西的大小,这样我就可以看到我离得有多近。只需添加如下内容:

代码语言:javascript
运行
复制
arm-none-eabi-size binary_image.axf

这将使您的输出如下:

代码语言:javascript
运行
复制
   text    data     bss     dec     hex filename
 204808     704   23188  228700   37d5c Foo.axf

在我的大脑皮层-m3芯片上,这将是text+data = flash使用量,data+bss = ram使用量。十二/六是无用的价值。

正如Olaf所说,使用一个映射文件来进行更具体的内存消耗。我在链接步骤中添加了以下内容:

代码语言:javascript
运行
复制
-Xlinker -Map=Foo.map
票数 3
EN

Stack Overflow用户

发布于 2019-05-21 11:09:48

另一个解决方案可能是将以下命令添加到链接器中:

-Xlinker --print-memory-usage

这给了我以下输出:

Memory region Used Size Region Size %age Used m_interrupts: 576 B 576 B 100.00% m_text: 22988 B 32192 B 71.41% m_data: 26552 B 32 KB 81.03%

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

https://stackoverflow.com/questions/31320276

复制
相关文章

相似问题

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