Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 编译时的RAM内存优化_C_Ram - Fatal编程技术网

C 编译时的RAM内存优化

C 编译时的RAM内存优化,c,ram,C,Ram,我正在做一个用C语言编程的项目,我试图在编译时分析特定功能库文件的RAM内存(段分配)。这将帮助我静态地优化编译级别本身的数据大小 我正在使用Wind River(Diab 5.8)编译器。可以在飞思卡尔微控制器平台上运行。我正在Windows环境下开发此应用程序。请帮我找到这个 好的,理解架构的区别:如果您将-m传递给链接器,足以让链接器打印段分配列表,您是否尝试过。这样,您就可以看到特定(静态链接)库占用了多少代码段。我怀疑,在这个微控制器上,编译器(链接器)确实为特定目的分配了特定的RAM

我正在做一个用C语言编程的项目,我试图在编译时分析特定功能库文件的RAM内存(段分配)。这将帮助我静态地优化编译级别本身的数据大小


我正在使用Wind River(Diab 5.8)编译器。可以在飞思卡尔微控制器平台上运行。我正在Windows环境下开发此应用程序。请帮我找到这个

好的,理解架构的区别:如果您将
-m
传递给链接器,足以让链接器打印段分配列表,您是否尝试过。这样,您就可以看到特定(静态链接)库占用了多少代码段。

我怀疑,在这个微控制器上,编译器(链接器)确实为特定目的分配了特定的RAM范围,而微控制器当然不需要操作系统。例如,rwdata段将位于某个选定的地址,该地址由静态链接器修复。您确定吗?至少对于Diab 5.6,获取地图转储的选项是
-m
-M
导致“无效选项格式:-M”。然后是-M,对于大多数链接器来说是-M(GNU LD有漂亮的--print映射),但我从未使用过Diab。不过链接图应该会显示您需要什么。我刚刚查看了Diab 5.8的手册,它确实是
-m
,所以我修正了您的答案(并投了赞成票)。