Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 2016-ноя-02 14:59 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 940
Откуда: Тула
Вопрос вот в чём: что за библиотеки и что за ф-ции? Откуда подключаются?
Ладно бы что, но есть ф-ции для целочисленного деления (судя по названию). Ведь ядро само умеет деление. Или нет?
Прошу прояснить. Кусок *.map-файла ниже.
Цитата:
==============================================================================

Image component sizes


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

636 108 0 48 44 103990 hal_80090201.o
2032 248 0 0 0 13837 init_be1_80090201.o
692 122 0 32 48 5429 logic_80090201.o
96 14 0 20 0 2070 main.o
108 24 192 0 8192 1920 startup_mdr1986ve1t.o
108 18 0 4 0 906 system_mdr1986ve1t.o

----------------------------------------------------------------------
3672 534 224 104 8284 128152 Object Totals
0 0 32 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

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
46 0 0 0 0 60 cmpret.o
856 20 0 0 0 208 daddsub.o
144 4 0 0 0 76 dcmpin.o
1096 26 128 0 0 112 ddiv.o
100 4 0 0 0 92 deqf.o
72 4 0 0 0 68 dfixui.o
88 0 0 0 0 92 dflti.o
584 26 0 0 0 84 dmul.o
20 6 0 0 0 68 dnan2.o
94 0 0 0 0 68 retnan.o
0 0 0 0 0 0 usenofp.o

----------------------------------------------------------------------
3720 106 128 0 100 1568 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
3100 90 128 0 0 928 fz_ps.l

----------------------------------------------------------------------
3720 106 128 0 100 1568 Library Totals

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

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


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

7392 640 352 104 8384 127940 Grand Totals
7392 640 352 104 8384 127940 ELF Image Totals
7392 640 352 104 0 0 ROM Totals

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

Total RO Size (Code + RO Data) 7744 ( 7.56kB)
Total RW Size (RW Data + ZI Data) 8488 ( 8.29kB)
Total ROM Size (Code + RO Data + RW Data) 7848 ( 7.66kB)

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



Вложения:
Комментарий к файлу: Настройки.
2016-11-02_14-53-01.png
2016-11-02_14-53-01.png [ 50.2 КБ | Просмотров: 1149 ]

_________________
сочувствующий…
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2016-ноя-16 23:19 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 213
Я вижу слово NaN - а это уже показатель использования float library http://infocenter.arm.com/help/index.js ... fhedh.html, причём может косвенно 3/2=1.5 или касты какие-то есть, лучше смотреть, что в Disassembly, тем более, если оптимизация -O2 - значит компилятор решил, что быстрее/компактнее будет не использовать какие-то штатные инструкции.

Как пример - из проекта с Ethernet для 1986ВЕ1Т - в .map-файле пишутся экспортируемые из библиотек функции:

http_cgi.o(.text) refers to fflti.o(.text) for __aeabi_ui2f
http_cgi.o(.text) refers to f2d.o(.text) for __aeabi_f2d
http_cgi.o(.text) refers to dmul.o(.text) for __aeabi_dmul
http_cgi.o(.text) refers to ddiv.o(.text) for __aeabi_ddiv

походу приставки:
s - single;
d - double;
i - integer;
f - float;
u - unsigned.

_________________
Hack the Planet!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2016-ноя-17 15:02 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 940
Откуда: Тула
Ё-маё! На третьи сутки зоркий сокол заметил, что в сарае нет одной стены!
cm0, cm1 не умеют делить аппаратно))
Вложение:
2016-11-17_14-54-53.png
2016-11-17_14-54-53.png [ 249.6 КБ | Просмотров: 1075 ]


Действительно, я хоть в проекте и не пользую ни где плавающую запятую, одна из констант была объявлена как 120Е6, что расценивалось как число с плавающей точкой. На уговоры UL не поддавалось))

Всё же интересно и может быть важно знать что конкретно скрывается за забором этих ф-ций.
Открыть
Цитата:
Memory Map of the image

Image Entry point : 0x000000c1

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

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

Base Addr Size Type Attr Idx E Section Name Object

0x00000000 0x000000c0 Data RO 339 RESET startup_mdr1986ve1t.o
0x000000c0 0x00000008 Code RO 399 * !!!main c_p.l(__main.o)
0x000000c8 0x0000003c Code RO 568 !!!scatter c_p.l(__scatter.o)
0x00000104 0x0000001a Code RO 570 !!handler_copy c_p.l(__scatter_copy.o)
0x0000011e 0x00000002 PAD
0x00000120 0x0000001c Code RO 572 !!handler_zi c_p.l(__scatter_zi.o)
0x0000013c 0x00000002 Code RO 437 .ARM.Collect$$libinit$$00000000 c_p.l(libinit.o)
0x0000013e 0x00000000 Code RO 451 .ARM.Collect$$libinit$$00000002 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 453 .ARM.Collect$$libinit$$00000004 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 456 .ARM.Collect$$libinit$$0000000A c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 458 .ARM.Collect$$libinit$$0000000C c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 460 .ARM.Collect$$libinit$$0000000E c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 463 .ARM.Collect$$libinit$$00000011 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 465 .ARM.Collect$$libinit$$00000013 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 467 .ARM.Collect$$libinit$$00000015 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 469 .ARM.Collect$$libinit$$00000017 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 471 .ARM.Collect$$libinit$$00000019 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 473 .ARM.Collect$$libinit$$0000001B c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 475 .ARM.Collect$$libinit$$0000001D c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 477 .ARM.Collect$$libinit$$0000001F c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 479 .ARM.Collect$$libinit$$00000021 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 481 .ARM.Collect$$libinit$$00000023 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 483 .ARM.Collect$$libinit$$00000025 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 487 .ARM.Collect$$libinit$$0000002C c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 489 .ARM.Collect$$libinit$$0000002E c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 491 .ARM.Collect$$libinit$$00000030 c_p.l(libinit2.o)
0x0000013e 0x00000000 Code RO 493 .ARM.Collect$$libinit$$00000032 c_p.l(libinit2.o)
0x0000013e 0x00000002 Code RO 494 .ARM.Collect$$libinit$$00000033 c_p.l(libinit2.o)
0x00000140 0x00000002 Code RO 525 .ARM.Collect$$libshutdown$$00000000 c_p.l(libshutdown.o)
0x00000142 0x00000000 Code RO 551 .ARM.Collect$$libshutdown$$00000002 c_p.l(libshutdown2.o)
0x00000142 0x00000000 Code RO 553 .ARM.Collect$$libshutdown$$00000004 c_p.l(libshutdown2.o)
0x00000142 0x00000000 Code RO 556 .ARM.Collect$$libshutdown$$00000007 c_p.l(libshutdown2.o)
0x00000142 0x00000000 Code RO 559 .ARM.Collect$$libshutdown$$0000000A c_p.l(libshutdown2.o)
0x00000142 0x00000000 Code RO 561 .ARM.Collect$$libshutdown$$0000000C c_p.l(libshutdown2.o)
0x00000142 0x00000000 Code RO 564 .ARM.Collect$$libshutdown$$0000000F c_p.l(libshutdown2.o)
0x00000142 0x00000002 Code RO 565 .ARM.Collect$$libshutdown$$00000010 c_p.l(libshutdown2.o)
0x00000144 0x00000000 Code RO 401 .ARM.Collect$$rtentry$$00000000 c_p.l(__rtentry.o)
0x00000144 0x00000000 Code RO 407 .ARM.Collect$$rtentry$$00000002 c_p.l(__rtentry2.o)
0x00000144 0x00000006 Code RO 419 .ARM.Collect$$rtentry$$00000004 c_p.l(__rtentry4.o)
0x0000014a 0x00000000 Code RO 409 .ARM.Collect$$rtentry$$00000009 c_p.l(__rtentry2.o)
0x0000014a 0x00000004 Code RO 410 .ARM.Collect$$rtentry$$0000000A c_p.l(__rtentry2.o)
0x0000014e 0x00000000 Code RO 412 .ARM.Collect$$rtentry$$0000000C c_p.l(__rtentry2.o)
0x0000014e 0x00000008 Code RO 413 .ARM.Collect$$rtentry$$0000000D c_p.l(__rtentry2.o)
0x00000156 0x00000002 Code RO 442 .ARM.Collect$$rtexit$$00000000 c_p.l(rtexit.o)
0x00000158 0x00000000 Code RO 498 .ARM.Collect$$rtexit$$00000002 c_p.l(rtexit2.o)
0x00000158 0x00000004 Code RO 499 .ARM.Collect$$rtexit$$00000003 c_p.l(rtexit2.o)
0x0000015c 0x00000006 Code RO 500 .ARM.Collect$$rtexit$$00000004 c_p.l(rtexit2.o)
0x00000162 0x00000002 PAD
0x00000164 0x0000006c Code RO 340 .text startup_mdr1986ve1t.o
0x000001d0 0x0000015a Code RO 393 .text c_p.l(aeabi_sdiv.o)
0x0000032a 0x00000006 Code RO 397 .text c_p.l(heapauxi.o)
0x00000330 0x0000003e Code RO 423 .text c_p.l(sys_stackheap_outer.o)
0x0000036e 0x00000010 Code RO 426 .text c_p.l(exit.o)
0x0000037e 0x00000002 PAD
0x00000380 0x00000008 Code RO 438 .text c_p.l(libspace.o)
0x00000388 0x0000000c Code RO 495 .text c_p.l(sys_exit.o)
0x00000394 0x00000002 Code RO 514 .text c_p.l(use_no_semi.o)
0x00000396 0x00000000 Code RO 516 .text c_p.l(indicate_semi.o)
0x00000396 0x00000002 PAD
...............
0x00000e3c 0x00000020 Data RO 566 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
....
0x200000c4 0x00000060 Zero RW 439 .bss c_p.l(libspace.o)
Закрыть


Вложения:
arm_cmds.pdf [159.7 КБ]
Скачиваний: 39

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

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


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

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


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

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