реклама на сайте
подробности

 
 
> GCC linker script cortex-M3, Вопросы по скрипту
mdmitry
сообщение Apr 11 2012, 08:09
Сообщение #1


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Предисловие: Предпочитаю использовать понятный для меня код.

Внимательно смотрел скрипт линкера для порта Cortex-M3 и сравнивал его с generic-m.ld от CodeSourcery arm-2011.09.
Возникли вопросы:
1. Где инициализируется стек? Вижу выравнивание
Код
/* higher address of the user mode stack */
PROVIDE ( _estack = ALIGN(ORIGIN(RAM) + LENGTH(RAM) - 8 ,8) );
,
но не нашел загрузку регистров в файлах инициализации.

2. Что это за стек и где используется?
Код
/*
* This is the user stack section
* This is just to check that there is enough RAM left for the User mode stack
* It should generate an error if it's full.
*/
    ._usrstack :
    {
        . = ALIGN(4);
      _susrstack = .;
      . = . + _Minimum_Stack_Size;
      . = ALIGN(4);
      _eusrstack = .;
    } >RAM

Ссылку на символ usrstack не нашел.

3. Правильно ли понимаю, что куча располагается после секции bss с выравниванием на двойное слово?
Код
PROVIDE( _heap = _ebss );
PROVIDE ( _eheap = ALIGN(ORIGIN(RAM) + LENGTH(RAM) - 8 ,8) );


Возможно, возникнут еще вопросы.
Спасибо.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01336 секунд с 7
ELECTRONIX ©2004-2016