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

 
 
> CortexM3 нужно реализовать премудрость, быстрый контроль памяти стека для RTOS
megajohn
сообщение Aug 7 2013, 12:46
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



вообщем, хочу реализовать быстрый контроль памяти стека для RTOS.
сейчас сделано тупо - перед переключением контекста проверяется самый первый int области стека ( соответственно последний если исходить что в cm3 голова в хвосте )
в функции printf стек используется нелинейно и у меня практически получилось, что проскочило мое контрольное слово и потер уже за стеком.
напрашивается контроль к примеру 16 слов. Проверять ручками это не камильфо - долго, интересуют именно быстрые варианты

какие есть быстрые ?

Я пока надумал:
1. экслюзивный доступ
2. мои предположения что авось есть спец регистр, который можно настроить за наблюдение за другим регистром и запоминает его минимальное значение. В данном случае натравить на PSP
3. Какие еще варианты ?

вот пример как у меня произошел выход за пределы
Прикрепленное изображение


upd: "экслюзивный доступ" увы но медленный. Я думал что можно указать регион мониторинга. Но нет, там для каждого WORD выставляется общий признак. То есть перед передачей управления задаче, нужно сначала пометить первых N-слов, и потом перед возвратом проверить экслюзивный доступ (да еще вопрос как поведет себя обычная запись по этим регистрам). Конечно есть небольшой плюс - можно отказатся от magic word.

upd2:
еще порылся в отладчике, и поразило, какой жадный этот printf в режиме Large Without Multibytes, сразу 132 байта под себя требует !
Код
PrintfLargeNoMb:
0xb92c: 0xe92d 0x4ff0  PUSH.W    {R4-R11, LR}
0xb930: 0xb0a1         SUB       SP, SP, #0x84


Еще для справки: tiny = 0x10, small without multibytes = 0x4C, full Without Multibytes = 0x84


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post



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

 


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


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