搜索
bottom↓
回复: 8

大家的单片机初始化代码占用量什么状况

[复制链接]

出0入0汤圆

发表于 2017-2-24 10:49:45 | 显示全部楼层 |阅读模式
用STM8S的时候,编译器用的IAR,C语言,进入main后初始化时钟,各端口,串口,AD, SPI,代码量在0.7K以内

用STM32F103,,编译器用的IAR,C语言,就算不初始化任何东西,只有一个main函数,里面什么都不写,都接近0.8K。
                                                           如果用3.5的库,初始化时钟,端口,串口,SPI,AD,代码4K以上,
                                                           如果是用STMCube初始化时钟,端口,串口,AD,代码量8K以上,如果用STMCube再增加配置AD口和串口的DMA,初始化代码就达到12K以上。

    不知道你们初始化硬件部分代码占用量是不是也这么大?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-2-24 11:07:12 | 显示全部楼层
只要用库,代码量都大
STM8L这种FLASH比较紧张的我都不用库了
还是直接操作寄存器

出0入0汤圆

 楼主| 发表于 2017-2-24 11:13:41 | 显示全部楼层
belongfs 发表于 2017-2-24 11:07
只要用库,代码量都大
STM8L这种FLASH比较紧张的我都不用库了
还是直接操作寄存器 ...

STM32F103,32K的都有点不敢用库

出0入0汤圆

发表于 2017-2-24 11:53:41 | 显示全部楼层
hd12 发表于 2017-2-24 11:13
STM32F103,32K的都有点不敢用库

其实用寄存器还是一样的
就是开发周期长一点而已

出0入0汤圆

发表于 2017-2-24 11:55:54 | 显示全部楼层
STM8S、STM8L、STM32F0都只用库的H文件不用C文件

STM8S只有main函数的编译如下:
  144 bytes of readonly  code memory
  136 bytes of readonly  data memory
  284 bytes of readwrite data memory

出0入0汤圆

发表于 2017-2-24 11:56:51 | 显示全部楼层
本帖最后由 菜包 于 2017-2-24 12:03 编辑

STM8是8位机啊,STM32是32位机,即使用thumb模式一条NOP指令也得占2字节。

F103的启动文件(startup.s)里面中断向量表76x4就占了304字节,还有个SystemInit初始化时钟,代码占用量也是300多字节,所以一个空的main工程占0.7K左右不奇怪
可以看编译后的MAP文件
    ...
    Global Symbols

    Symbol Name                              Value     Ov Type        Size  Object(Section)
    ...
    __Vectors_Size                           0x00000130   Number         0  startup_stm32f10x_hd.o ABSOLUTE
    __Vectors                                0x08000000   Data           4  startup_stm32f10x_hd.o(RESET)
    __Vectors_End                            0x08000130   Data           0  startup_stm32f10x_hd.o(RESET)
    ...

    Base Addr    Size         Type   Attr      Idx    E Section Name        Object
    ...
    0x0800018c   0x00000008   Code   RO          479    i.SetSysClock       system_stm32f10x.o
    0x08000194   0x000000e0   Code   RO          480    i.SetSysClockTo72   system_stm32f10x.o
    0x08000274   0x00000060   Code   RO          482    i.SystemInit        system_stm32f10x.o
    ...

Image component sizes


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

         6          0          0          0          0          0   main.o
        36          8        304          0       1024          0   startup_stm32f10x_hd.o
       328         28          0          0          0          0   system_stm32f10x.o

    ----------------------------------------------------------------------
       370         36        320          0       1024          0   Object Totals
         0          0         16          0          0          0   (incl. Generated)
         0          0          0          0          0          0   (incl. Padding)

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

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

         0          0          0          0          0          0   entry.o
         0          0          0          0          0          0   entry10a.o
         0          0          0          0          0          0   entry11a.o
         8          4          0          0          0          0   entry2.o
         4          0          0          0          0          0   entry5.o
         0          0          0          0          0          0   entry7b.o
         0          0          0          0          0          0   entry8b.o
         8          4          0          0          0          0   entry9a.o
        30          0          0          0          0          0   handlers.o
        36          8          0          0          0          0   init.o

    ----------------------------------------------------------------------
        86         16          0          0          0          0   Library Totals
         0          0          0          0          0          0   (incl. Padding)

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

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

        86         16          0          0          0          0   mc_w.l

    ----------------------------------------------------------------------
        86         16          0          0          0          0   Library Totals

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

==============================================================================


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

       456         52        320          0       1024          0   Grand Totals
       456         52        320          0       1024          0   ELF Image Totals
       456         52        320          0          0          0   ROM Totals

==============================================================================

    Total RO  Size (Code + RO Data)                  776 (   0.76kB)
    Total RW  Size (RW Data + ZI Data)              1024 (   1.00kB)
    Total ROM Size (Code + RO Data + RW Data)        776 (   0.76kB)

==============================================================================



出0入0汤圆

发表于 2017-2-24 11:58:05 | 显示全部楼层
没有特别留意,反正我从来没写满过,水平比较烂

出0入0汤圆

发表于 2017-2-26 18:33:32 | 显示全部楼层
项目基本功能完成了,后期客户一丁点小更改都要去裁剪,改成寄存器方式,但是全部将库文件改成寄存器方式也是件浩大工程,后期设计要注意了,一步一步朝寄存器方式更改。

出0入0汤圆

发表于 2017-2-27 00:57:04 | 显示全部楼层
belongfs 发表于 2017-2-24 11:07
只要用库,代码量都大
STM8L这种FLASH比较紧张的我都不用库了
还是直接操作寄存器 ...

不要怪库,封装函数本来就需要代码量,你连这个都舍不得,就全汇编,别看库很大,没用到的函数是不会编译进去的!
所以不要看多几行代码就意味编译后的固件代码量也大!

stm8和stm32本身就不能作为比较,第一个是指令集,然后是启动方式等等!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 21:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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