Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Откуда что берется?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
toweroff
Вот кусок map-файла
Код
    !!!main                                  0x2000016c   Section        8  __main.o(!!!main)
    !!!scatter                               0x20000174   Section       60  __scatter.o(!!!scatter)
    !!handler_copy                           0x200001b0   Section       40  __scatter_copy.o(!!handler_copy)
    .ARM.Collect$$libinit$$00000000          0x200001d8   Section        6  libinit.o(.ARM.Collect$$libinit$$00000000)
    .ARM.Collect$$libinit$$00000006          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000006)
    .ARM.Collect$$libinit$$00000008          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000008)
    .ARM.Collect$$libinit$$0000000A          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000000A)
    .ARM.Collect$$libinit$$0000000D          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000000D)
    .ARM.Collect$$libinit$$0000000F          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000000F)
    .ARM.Collect$$libinit$$00000011          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000011)
    .ARM.Collect$$libinit$$00000013          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000013)
    .ARM.Collect$$libinit$$00000015          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000015)
    .ARM.Collect$$libinit$$00000017          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000017)
    .ARM.Collect$$libinit$$00000019          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000019)
    .ARM.Collect$$libinit$$0000001B          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000001B)
    .ARM.Collect$$libinit$$0000001D          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000001D)
    .ARM.Collect$$libinit$$0000001F          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000001F)
    .ARM.Collect$$libinit$$00000021          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000021)
    .ARM.Collect$$libinit$$00000028          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$00000028)
    .ARM.Collect$$libinit$$0000002A          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000002A)
    .ARM.Collect$$libinit$$0000002C          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000002C)
    .ARM.Collect$$libinit$$0000002E          0x200001de   Section        0  libinit2.o(.ARM.Collect$$libinit$$0000002E)
    .ARM.Collect$$libinit$$0000002F          0x200001de   Section        2  libinit2.o(.ARM.Collect$$libinit$$0000002F)
    .ARM.Collect$$libshutdown$$00000000      0x200001e0   Section        2  libshutdown.o(.ARM.Collect$$libshutdown$$00000000)
    .ARM.Collect$$libshutdown$$00000003      0x200001e2   Section        0  libshutdown2.o(.ARM.Collect$$libshutdown$$00000003)
    .ARM.Collect$$libshutdown$$00000006      0x200001e2   Section        0  libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)
    .ARM.Collect$$libshutdown$$00000009      0x200001e2   Section        0  libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)
    .ARM.Collect$$libshutdown$$0000000B      0x200001e2   Section        0  libshutdown2.o(.ARM.Collect$$libshutdown$$0000000B)
    .ARM.Collect$$libshutdown$$0000000E      0x200001e2   Section        0  libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)
    .ARM.Collect$$libshutdown$$0000000F      0x200001e2   Section        2  libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)
    .ARM.Collect$$rtexit$$00000000           0x200001e4   Section        4  rtexit.o(.ARM.Collect$$rtexit$$00000000)
    .ARM.Collect$$rtexit$$00000002           0x200001e8   Section        0  rtexit2.o(.ARM.Collect$$rtexit$$00000002)
    .ARM.Collect$$rtexit$$00000003           0x200001e8   Section        4  rtexit2.o(.ARM.Collect$$rtexit$$00000003)
    .ARM.Collect$$rtexit$$00000004           0x200001ec   Section        8  rtexit2.o(.ARM.Collect$$rtexit$$00000004)
    .text                                    0x200001f4   Section        0  heapauxi.o(.text)
    .text                                    0x200001fc   Section        4  use_no_semi.o(.text)
    .ARM.__AT_0x20000200                     0x20000200   Section       28  boot.o(.ARM.__AT_0x20000200)
    .ARM.Collect$$rtentry$$00000000          0x2000021c   Section        0  rtentry.o(.ARM.Collect$$rtentry$$00000000)
    .ARM.Collect$$rtentry$$00000002          0x2000021c   Section        0  rtentry2.o(.ARM.Collect$$rtentry$$00000002)
    .ARM.Collect$$rtentry$$00000004          0x2000021c   Section        8  rtentry4.o(.ARM.Collect$$rtentry$$00000004)
    .ARM.Collect$$rtentry$$00000009          0x20000224   Section        0  rtentry2.o(.ARM.Collect$$rtentry$$00000009)
    .ARM.Collect$$rtentry$$0000000A          0x20000224   Section        4  rtentry2.o(.ARM.Collect$$rtentry$$0000000A)
    .ARM.Collect$$rtentry$$0000000C          0x20000228   Section        0  rtentry2.o(.ARM.Collect$$rtentry$$0000000C)
    .ARM.Collect$$rtentry$$0000000D          0x20000228   Section       40  rtentry2.o(.ARM.Collect$$rtentry$$0000000D)


Откуда это? Я такого не ваял (кроме секции __AT_0x20000200, разумеется) sm.gif
scifi
А в чём проблема? Пока оной не наблюдается.
Да, забыл. Ответ на вопрос "Откуда это" - "Стандартная сишная библиотека от RealView".
toweroff
Цитата(scifi @ Aug 23 2011, 00:25) *
А в чём проблема? Пока оной не наблюдается.
Да, забыл. Ответ на вопрос "Откуда это" - "Стандартная сишная библиотека от RealView".

Ок, сишная
А при чем там скаттер, например? Я же не перемещаю регионы, допустим, во внутреннюю RAM для исполнения
Это не судороги от страха "левого использования" пространства flash, а просто попытка разобраться, "нафига козе баян" sm.gif
scifi
Цитата(toweroff @ Aug 23 2011, 00:36) *
А при чем там скаттер, например? Я же не перемещаю регионы, допустим, во внутреннюю RAM для исполнения
Это не судороги от страха "левого использования" пространства flash, а просто попытка разобраться, "нафига козе баян" sm.gif

Ей-богу, смешно. А если бы авторы этого кода один из файлов назвали "atomic_bomb", Вы бы побежали в подвал прятаться? :-)
Ну назвали и назвали. Если всё работает, то всё хорошо. Никаких проблем нет.
Можно, конечно, попытаться угадать ход мыслей человека, придумывавшего эти названия, но зачем? Это весьма сомнительный способ заполнения свободного времени.
toweroff
К чему я это все клоню. Есть, фактически, два проекта - бут и приложение.
Для чего библиотеки иметь в двух копиях?
kan35
Цитата(toweroff @ Aug 23 2011, 10:24) *
К чему я это все клоню. Есть, фактически, два проекта - бут и приложение.
Для чего библиотеки иметь в двух копиях?

Не советую "объединять", разве что только попробовать это сделать в познавательных целях.
scifi
Цитата(toweroff @ Aug 23 2011, 10:24) *
К чему я это все клоню. Есть, фактически, два проекта - бут и приложение.
Для чего библиотеки иметь в двух копиях?

Можно, конечно, покувыркаться и выделить часть общего кода. Но с учётом неизбежного геморроя я бы трижды подумал: а оно надо?
toweroff
kan35, scifi
конечно, я и собирался в познавательных - поди там потом разберись, что понадобится в дальнейшем из библиотек приложению и отделяй зерна от плевел sm.gif
scifi
Подсмотрите, как реализовано StellarisWare. Если я правильно помню, они зашивают библиотечные функции в ПЗУ - как раз то, что Вы хотите попробовать реализовать. Должен быть способ настроить линкер так, чтобы из сишной программы эти функции вызывались обычным образом.
toweroff
Цитата(scifi @ Aug 23 2011, 14:23) *
Подсмотрите, как реализовано StellarisWare. Если я правильно помню, они зашивают библиотечные функции в ПЗУ - как раз то, что Вы хотите попробовать реализовать. Должен быть способ настроить линкер так, чтобы из сишной программы эти функции вызывались обычным образом.

обязательно посмотрю, спасибо
сейчас уже время по срокам поджимает, а места во флеш предостаточно для любых дублирований
toweroff
так, в догонку
искать нужно где-то там, скорее всего
scifi
Цитата(toweroff @ Aug 23 2011, 15:51) *
так, в догонку
искать нужно где-то там, скорее всего

Ню-ню. Поместить-то код можно. А вот подцепить его к двум раздельным программам одновременно - тот ещё трюк. Помните про упоминавшийся выше геморрой? Вот он никуда не делся.
toweroff
Цитата(scifi @ Aug 23 2011, 16:22) *
Ню-ню. Поместить-то код можно. А вот подцепить его к двум раздельным программам одновременно - тот ещё трюк. Помните про упоминавшийся выше геморрой? Вот он никуда не делся.

да про геморрой никто и не говорит, с его огромным наличием уже разобрались sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.