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

 
 
> uC/OSII: память, как оно работает?
Koluchiy
сообщение Dec 10 2013, 10:57
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Здравствуйте, уважаемые гуру.
Никогда не работал с RTOS, так что буду задавать дилетантские вопросы.

Поясните пожалуйста, как эта система работает с памятью.
Стек выделяется каждой задаче, его размеры определяются при создании задачи.
Что на тему кучи (Heap)? Она общая для всех задач?

Есть ли какая-то защита памятей задач? (статических и динамических)
Умеет ли эта система работать с MMU? (процессор - NIOSII/f).

Ну и, можно ли как-то определить максимальный размер кучи, выделяемой в ходе работы системы и ее задач?
Задача статистики такой информации вроде не дает. Есть ли другие способы?

Всем заранее спасибо за ответы.
Можно вместо ответов посылать втуда, где читать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение Dec 17 2013, 08:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



У IAR это называется ucOS Plugin. На деле ось вызывает периодически задачу специальную, которая и проверяет заполненность стеков. Можно там запоминать максимум и выдавать его в терминал по запросу. Этот метод может давать неточное значение максимальной заполненности стека, а куча, кажется, вообще не проверяется. Чтобы наверняка, нужно ставить хук на malloc и free и отслеживать, сколько памяти выделилось в пике. Однако куча может фрагментироваться и нужно закладывать раза в 2 больше памяти, чем вычислили. Короче, муторное это занятие.
Go to the top of the page
 
+Quote Post



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

 


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


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