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

 
 
> Псевдомногозадачность в IAR
piroman
сообщение Nov 19 2013, 17:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 27-09-12
Пользователь №: 73 712



Уважаемые!
Кто знает, как в IAR EWAVR грамотно реализовать следующий сценарий->
1. После сброса контроллера пользователь выбирает из предложенного списка одну из задач на выполнение.
2. Выхода из выбранной задачи обратно или в другую задачу нет.
3. Задача забирает ВСЕ ресурсы контроллера.

Собственно, вопрос в том, как объяснить линкеру, что разные задачи размещают свои переменные по совпадающим/пересекающимся адресам в RAM, как если бы других задач не существовало?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArtemKAD
сообщение Nov 19 2013, 20:43
Сообщение #2


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Если переменная не статическая, она просто не видна в другой задаче или вроде того, но место в ОЗУ занимает всё равно. А нужно, чтобы каждая задача владела ОЗУ полностью.

Если переменная не статическая(не глобальная), то память для нее выделяет компилятор исключительно на время работы использующего ее кода. В остальное время эту-же память/регистры компилятор использует для других не статических переменных. Аналогично с динамически выделяемой памятью из кучи - пока не выполнится malloc (или аналогичное) она физически не распределена и ее место может быть использовано на что угодно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:13
Рейтинг@Mail.ru


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