Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-дек-17 07:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: 2017-авг-05 12:01 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 54
Вопрос на счет теории языка с / kail. Например если я подключаю библиотеку math.h и в ней использую только одну какую нибудь ф-цию(например sin), то память выделится под все ф-ции или в память попадает одна ф-ция sin?
Буду рад ссылки на источник.
Например у VS17 есть ключ /Gy для оптимизации памяти. Если что нибудь похожее в kail v5.16.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-05 13:42 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1039
Откуда: Тула
Короткий ответ: прицепится только то, что нужно (разумеется зависит от настроек, но по-дефолту так).
Развёрнутый ответ: изучайте IDE Keil, компилятор ARM Compiler на официальном сайте http://infocenter.arm.com/
Заметка: что и как попало в прошивку можно посмотреть, совершив двойной щелчок ЛКМ по Target 1 в Keil (или найти в директории сборки файл projectName.map). В конце файла будет примерно такое. Догадайтесь сами что Ваше, а что добавлено компилятором.
Код:
Memory Map of the image

  Image Entry point : 0x000000c1

  Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00001064, Max: 0x00020000, ABSOLUTE)

    Execution Region ER_IROM1 (Base: 0x00000000, Size: 0x00000ffc, Max: 0x00020000, ABSOLUTE)

    Base Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x00000000   0x000000c0   Data   RO          367    RESET               startup_mdr1986ve1t.o
    0x000000c0   0x00000008   Code   RO          380  * !!!main             c_p.l(__main.o)
    0x000000c8   0x0000003c   Code   RO          549    !!!scatter          c_p.l(__scatter.o)
    0x00000104   0x0000001a   Code   RO          551    !!handler_copy      c_p.l(__scatter_copy.o)
    0x0000011e   0x00000002   PAD
    0x00000120   0x0000001c   Code   RO          553    !!handler_zi        c_p.l(__scatter_zi.o)
    0x0000013c   0x00000002   Code   RO          418    .ARM.Collect$$libinit$$00000000  c_p.l(libinit.o)
    0x0000013e   0x00000000   Code   RO          432    .ARM.Collect$$libinit$$00000002  c_p.l(libinit2.o)
...
    0x0000015c   0x00000006   Code   RO          481    .ARM.Collect$$rtexit$$00000004  c_p.l(rtexit2.o)
    0x00000162   0x00000002   PAD
    0x00000164   0x0000000a   Code   RO          214    .emb_text           logic_.o
    0x0000016e   0x00000002   PAD
    0x00000170   0x0000006c   Code   RO          368    .text               startup_mdr1986ve1t.o
    0x000001dc   0x0000015a   Code   RO          374    .text               c_p.l(aeabi_sdiv.o)
    0x00000336   0x00000006   Code   RO          378    .text               c_p.l(heapauxi.o)
    0x0000033c   0x0000003e   Code   RO          404    .text               c_p.l(sys_stackheap_outer.o)
    0x0000037a   0x00000010   Code   RO          407    .text               c_p.l(exit.o)
    0x0000038a   0x00000002   PAD
    0x0000038c   0x00000008   Code   RO          419    .text               c_p.l(libspace.o)
    0x00000394   0x0000000c   Code   RO          476    .text               c_p.l(sys_exit.o)
    0x000003a0   0x00000002   Code   RO          495    .text               c_p.l(use_no_semi.o)
    0x000003a2   0x00000000   Code   RO          497    .text               c_p.l(indicate_semi.o)
    0x000003a2   0x00000002   PAD
    0x000003a4   0x00000054   Code   RO            3    i.ADC_IRQHandler    hal_.o
    0x000003f8   0x00000024   Code   RO          292    i.HardFault_Handler  main_.o
    0x0000041c   0x00000018   Code   RO          293    i.Hard_fault_handler_c  main_.o
    0x00000434   0x000000f0   Code   RO            4    i.MIL_STD_1553B1_IRQHandler  hal_.o
    0x00000524   0x00000044   Code   RO          122    i.NVIC_SetPriority  init_be1_.o
    0x00000568   0x0000006c   Code   RO          335    i.SystemCoreClockUpdate  system_.o
    0x000005d4   0x00000018   Code   RO            5    i.TIMER4_IRQHandler  hal_.o
    0x000005ec   0x00000034   Code   RO            6    i.UART1_IRQHandler  hal_.o
    0x00000620   0x00000068   Code   RO          123    i.adc_init          init_be1_.o
    0x00000688   0x00000090   Code   RO          124    i.cpu_clk_init      init_be1_.o
    0x00000718   0x00000024   Code   RO            9    i.hal_init          hal_.o
    0x0000073c   0x0000018c   Code   RO          215    i.logic_main_loop   logic_.o
    0x000008c8   0x0000001c   Code   RO          294    i.main              main_.o
    0x000008e4   0x00000064   Code   RO          126    i.mcu_init          init_be1_.o
    0x00000948   0x0000009c   Code   RO          127    i.mkio1_init        init_be1_.o
    0x000009e4   0x00000034   Code   RO          216    i.mlvds_is_frame    logic_.o
    0x00000a18   0x00000048   Code   RO          217    i.mlvds_send_request  logic_.o
    0x00000a60   0x0000001c   Code   RO           10    i.mux_read1         hal_.o
    0x00000a7c   0x0000001c   Code   RO           11    i.mux_read2         hal_.o
    0x00000a98   0x0000001c   Code   RO           12    i.mux_read3         hal_.o
    0x00000ab4   0x000000c8   Code   RO          128    i.pio_init          init_be1_.o
    0x00000b7c   0x00000048   Code   RO           13    i.read_all_signals  hal_.o
    0x00000bc4   0x000000b4   Code   RO          218    i.sync_measure      logic_.o
    0x00000c78   0x00000030   Code   RO           14    i.tick              hal_.o
    0x00000ca8   0x00000044   Code   RO          129    i.timer1_init       init_be1_.o
    0x00000cec   0x00000064   Code   RO          130    i.timer2_init       init_be1_.o
    0x00000d50   0x0000005c   Code   RO          131    i.timer3_init       init_be1_.o
    0x00000dac   0x00000068   Code   RO          132    i.timer4_init       init_be1_.o
    0x00000e14   0x00000064   Code   RO          133    i.uart1_init        init_be1_.o
    0x00000e78   0x00000054   Code   RO          219    i.vip_power_iterac  logic_.o
    0x00000ecc   0x0000002c   Code   RO          220    i.vip_power_off     logic_.o
    0x00000ef8   0x00000014   Code   RO          221    i.vip_power_up      logic_.o
    0x00000f0c   0x000000d0   Code   RO          222    i.work_15531        logic_.o
    0x00000fdc   0x00000020   Data   RO          547    Region$$Table       anon$$obj.o


    Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x00002128, Max: 0x00008000, ABSOLUTE)

    Base Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x20000000   0x00000030   Data   RW           16    .data               hal_.o
    0x20000030   0x0000001c   Data   RW          224    .data               logic_.o
    0x2000004c   0x00000004   Data   RW          225    .data               logic_.o
    0x20000050   0x00000014   Data   RW          299    .data               main_.o
    0x20000064   0x00000004   Data   RW          337    .data               system_mdr1986ve1t.o
    0x20000068   0x0000002c   Zero   RW           15    .bss                hal_.o
    0x20000094   0x00000030   Zero   RW          223    .bss                logic_.o
    0x200000c4   0x00000060   Zero   RW          420    .bss                c_p.l(libspace.o)
    0x20000124   0x00000004   PAD
    0x20000128   0x00001000   Zero   RW          366    HEAP                startup_mdr1986ve1t.o
    0x20001128   0x00001000   Zero   RW          365    STACK               startup_mdr1986ve1t.o


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

Image component sizes


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

       640        110          0         48         44     104003   hal_.o
      1236        226          0          0          0      11262   init_be1_.o
      1066        150          0         32         48       7252   logic_.o
        88         16          0         20          0       2158   main_.o
       108         24        192          0       8192       1880   startup_mdr1986ve1t.o
       108         18          0          4          0        850   system_mdr1986ve1t.o

    ----------------------------------------------------------------------
      3248        544        224        104       8284     127405   Object Totals
         0          0         32          0          0          0   (incl. Generated)
         2          0          0          0          0          0   (incl. Padding)

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

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

         8          0          0          0          0         68   __main.o
         0          0          0          0          0          0   __rtentry.o
        12          0          0          0          0          0   __rtentry2.o
         6          0          0          0          0          0   __rtentry4.o
        60          8          0          0          0          0   __scatter.o
        26          0          0          0          0          0   __scatter_copy.o
        28          0          0          0          0          0   __scatter_zi.o
       346          0          0          0          0         92   aeabi_sdiv.o
        16          0          0          0          0         68   exit.o
         6          0          0          0          0        136   heapauxi.o
         0          0          0          0          0          0   indicate_semi.o
         2          0          0          0          0          0   libinit.o
         2          0          0          0          0          0   libinit2.o
         2          0          0          0          0          0   libshutdown.o
         2          0          0          0          0          0   libshutdown2.o
         8          4          0          0         96         68   libspace.o
         2          0          0          0          0          0   rtexit.o
        10          0          0          0          0          0   rtexit2.o
        12          4          0          0          0         60   sys_exit.o
        62          0          0          0          0         80   sys_stackheap_outer.o
         2          0          0          0          0         68   use_no_semi.o

    ----------------------------------------------------------------------
       620         16          0          0        100        640   Library Totals
         8          0          0          0          4          0   (incl. Padding)

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

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

       612         16          0          0         96        640   c_p.l

    ----------------------------------------------------------------------
       620         16          0          0        100        640   Library Totals

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

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


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

      3868        560        224        104       8384     126661   Grand Totals
      3868        560        224        104       8384     126661   ELF Image Totals
      3868        560        224        104          0          0   ROM Totals

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

    Total RO  Size (Code + RO Data)                 4092 (   4.00kB)
    Total RW  Size (RW Data + ZI Data)              8488 (   8.29kB)
    Total ROM Size (Code + RO Data + RW Data)       4196 (   4.10kB)

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

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB