zoukankan      html  css  js  c++  java
  • Keil生成的代码大小计算

    用keil编译程序后会打印对应的内存分配信息(单位:B 1024B=1KB

       

    Program Size: Code=10304 RO-data=508 RW-data=92 ZI-data=9828

       

    Total RO Size (Code + RO Data) 10812 ( 10.5 kB)

    Total RW(RAM) Size (RW Data + ZI Data) 9920 ( 9.68 kB)

    Total ROM(Flash) Size (Code + RO Data + RW Data) 10904 ( 10.6 kB)

       

    (1)Code中不仅仅包含了代码的大小。其中还包括了inline data(内联数据),比如literal pools(文字池)short strings(短字符串)

       

    (2)RO-data: 表示程序中的只读常量数据。比如const类型的数据 (inline data之外的只读数据)

       

    (3)RW-data: 表示可读写变量的大小,也就是说是程序中已经初始化的变量大小。

       

    (4)ZI-data: 表示程序中未初始化的变量大小。就是程序中已经定义但是初始化值为0或者

    是没有初始化赋值的变量(编译器会默认把没有赋值的变量自动赋值为0)

       

    下面对几个数值的关系进行说明

       

    RAM size: 程序运行时所需要的大小空间为 RW-data+ ZI-data

       

      ROM(FLASH) size:  也就是下载到单片机FLASH中的数据为  Code +RO-data +RW-data 和的大小。

      为什么不把ZI-data 也下载进去呢? 其实是没有必要的,这是浪费空间,只要程序一上电运

      行就会把ZI-data 自动清0。

  • 相关阅读:
    [问题2014A13] 解答
    [问题2014A12] 解答
    [问题2014A13] 复旦高等代数 I(14级)每周一题(第十五教学周)
    [问题2014A10] 解答
    php使用amqplib方式使用rabbitmq
    Ubuntu 16.04 源码编译安装PHP7+swoole
    Ubuntu apt-get更换阿里云源
    微信企业号网页授权
    nginx转发swoole以及nginx负载
    PHP 命名空间
  • 原文地址:https://www.cnblogs.com/ChengR/p/14785758.html
Copyright © 2011-2022 走看看