OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8077|回复: 3

程序编译后ZI-data太大,如何减小?

[复制链接]

12

主题

73

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-5-2
在线时间
45 小时
发表于 2018-3-1 20:22:29 | 显示全部楼层 |阅读模式
15金钱
本帖最后由 ylsljp 于 2018-3-1 20:34 编辑

STM32F107的一个简单tcp_server程序,编译结果Program Size: Code=39578 RO-data=630 RW-data=256 ZI-data=62368  芯片的RAM才65536,,为什么ZI-data会这么大呢?怎么减小占用的RAM空间?我看了下.map文件,bss段占用绝大部分RAM空间, mem.c 和 memp.c基本上占完了,如何优化呢?           .bss                                     0x20000100   Section       48  netconf.o(.bss)   
    .bss                                     0x20000130   Section     9216  ethernetif.o(.bss)
    .bss                                     0x20002530   Section      200  etharp.o(.bss)
    arp_table                               0x20002530   Data         200  etharp.o(.bss)
    .bss                                     0x200025f8   Section     2100  tcp_server.o(.bss)
    .bss                                     0x20002e2c   Section    30740  mem.o(.bss)
    .bss                                     0x2000a640   Section    18395  memp.o(.bss)
    memp_tab                            0x2000a640   Data          40  memp.o(.bss)
    memp_memory                     0x2000a668   Data       18355  memp.o(.bss)



Image component sizes

  Code (inc. data)            RO Data           RW Data      ZI Data      Debug   Object Name

      0                        0               0              0              0          32   core_cm3.o
      62                      0              0               0               0         1102   def.o
      604                   32               0              12             0        26762   dp83848.o
      2576                  22              12             1             200          9663   etharp.o
      748                   42             0              20            9216         37266   ethernetif.o
      544                   8                0               0               0          2514   icmp.o
      0                     0                0               0               0          3840   inet.o
      558                  0                0               0               0          2969   inet_chksum.o
      0                     0                0               0               0           680   init.o
     760                 30                0              18               0          6083   ip.o
     700                   12              8               0              16          9315   ip_addr.o
    1844                20               0               6               0            6600   ip_frag.o
    40                   0                0               0               0          286042   main.o
    996                 16                0              12           30740         3914   mem.o
    192                 18               40               0           18395         3178   memp.o
    220                 22                0               0               0          1829   misc.o
    196                 30                0              22              48         3578   netconf.o
    636                 20                0               9               0          6081   netif.o
    2214                0                0               0               0          8817   pbuf.o
    436                 14                0               4               0          3325   raw.o
    64                  26              336               0            1536        788   startup_stm32f10x_cl.o
    4408               118                0              16              0         23749   stm32_eth.o
    828                 38                0               0               0          5577   stm32f10x_gpio.o
   124                  8                0               1               0          2657   stm32f10x_it.o
   1284                64                0              20              0         11218   stm32f10x_rcc.o
   2966                28                0               0               0         24096   stm32f10x_tim.o
   932                 22                0               0               0          7879   stm32f10x_usart.o
   644                 48                0              20              0          2119   system_stm32f10x.o
   3760              142              197              36             0         21263   tcp.o
   4976              226                0              32             16        14947   tcp_in.o
   3348             10                0               0               0            9463   tcp_out.o
   684               36                0               8            2100          3819   tcp_server.o
   62                 0                0               0               0           588   timer.o
  1128              22                0               8               0          6746   udp.o
  228               12                0               0               0           941   usart.o

    ----------------------------------------------------------------------
     38774       1086           630            256            62268     559440   Object Totals
         0          0              32               0               0           0           (incl. Generated)
        12          0             5                11               1          0            (incl. Padding)

    ----------------------------------------------------------------------







最佳答案

查看完整内容[请看2#楼]

看memp.c,减少其对内存的占用,比如数组该改小。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-3-1 20:22:30 | 显示全部楼层
看memp.c,减少其对内存的占用,比如数组该改小。
回复

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2018-2-27
在线时间
27 小时
发表于 2018-3-1 20:56:34 | 显示全部楼层
这不就是优化代码吗,能用u8绝不用u32   你去看看数据存储类型吧  ,会分区的  ,变量与变量不是全部存在一起的
回复

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-11-27
在线时间
5 小时
发表于 2023-8-8 17:03:03 | 显示全部楼层
正点原子 发表于 2018-3-1 20:22
看memp.c,减少其对内存的占用,比如数组该改小。

感谢!帮我解决了一个问题!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 04:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表