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

 
 
> Инициализация стека STM32
igorle
сообщение Sep 29 2013, 19:08
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



STM32F103 Keil StdPeriph.

Есть два аналогичных проекта. Сравнивая потабово свойства проектов, различий не вижу.

Насколько я понимаю, размер стека задается в файле startup_stm32f10x_md.s таким образом:
Код
Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp

...

__Vectors       DCD     __initial_sp              ; Top of Stack
                DCD     Reset_Handler             ; Reset Handler
                DCD     NMI_Handler               ; NMI Handler
                DCD     HardFault_Handler         ; Hard Fault Handler
                DCD     MemManage_Handler         ; MPU Fault Handler
При этом в одном проекте SP инициализируется значением 0x200004D0, в другом 0x200008F0

Вопросы:
- Как образуются эти числа? Я ожидал видеть там 0x20000400
- Что находится под стеком?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
редактор
сообщение Oct 3 2013, 08:55
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Спасибо всем за ответы.
Цитата
А что такое "остаток"? Память ведь может быть фрагментирована. Сумма всех кусочков?

Ну примерно так. Если подробнее, то до вызова main() происходит инициализация статических переменных и классов. При инициализации классов часть памяти "захватыватся" через new. Вот и хотелось бы узнать хоть приблизительный остаток кучи (к этому моменту она еще не будет дефрагментирована, надеюсь) или размер максимального блока, который может быть выделен.
Использовать статическое выделение памяти можно, но это уже другая тема (мое наследство), поэтому не обсуждаю.

Цитата
Keil это компилятор. Вы хотите узнать сколько осталось после компиляции? мап файл.

Тогда уж после линковки (но это я к словам докапываюсь, извините). Это я в курсе.
Но тем неменее KEIL предоставляет несколько функций для работы с кучей, не относящихся к стандартным. Например __heapstats(); ее недостатком является то, что информацию выдает через printf в текстовом виде, да и информация по каждому блоку отдельно - не совсем то, что надо.
Думал, может кто с другими функциями контроля знаком.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- igorle   Инициализация стека STM32   Sep 29 2013, 19:08
- - A. Fig Lee   Смотрите линкер файл. В IAR это .icf файл   Sep 29 2013, 20:27
- - igorle   А если Кейл - куда смотреть?   Sep 29 2013, 20:30
|- - aaarrr   Цитата(igorle @ Sep 30 2013, 00:30) А есл...   Sep 29 2013, 21:13
- - ViKo   Стек растет вниз, в сторону уменьшения адресов. А ...   Sep 29 2013, 21:05
- - _NB   Цитата(igorle @ Sep 29 2013, 22:08) Вопро...   Sep 30 2013, 10:41
|- - A. Fig Lee   Цитата(_NB @ Sep 30 2013, 06:41) В 's...   Sep 30 2013, 11:27
- - ViKo   Вот такие наблюдения. В проекте в стартапе задано ...   Sep 30 2013, 13:51
- - igorle   MAP файл нашел. Стало понятно, что за цифры я полу...   Sep 30 2013, 18:33
|- - toweroff   Цитата(igorle @ Sep 30 2013, 22:33) Возмо...   Sep 30 2013, 18:57
- - igorle   <Спустя полчаса> Все, спасибо всем. Дошло. Я...   Sep 30 2013, 19:01
- - toweroff   http://infocenter.arm.com/help/topic/com.a...51a/D...   Sep 30 2013, 19:49
- - igorle   2toweroff - Спасибо. Жаль что вы написали предыдущ...   Oct 1 2013, 08:06
|- - toweroff   Цитата(igorle @ Oct 1 2013, 12:06) Жаль ч...   Oct 1 2013, 10:50
- - редактор   Раз уж речь пошла об инициализации, спрошу здесь (...   Oct 2 2013, 08:02
|- - A. Fig Lee   Цитата(редактор @ Oct 2 2013, 04:02) Раз ...   Oct 2 2013, 15:25
- - igorle   А что такое "остаток"? Память ведь может...   Oct 2 2013, 14:35
|- - toweroff   Цитата(igorle @ Oct 2 2013, 18:35) А что ...   Oct 2 2013, 15:11
- - igorle   Вызовите в начале функции main маллок одного байта...   Oct 3 2013, 19:26
- - редактор   Спасибо за совет. В данный момент речь идет именно...   Oct 4 2013, 07:39


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

 


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


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