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

 
 
> Стэк в scmRTOS
spongebob
сообщение Apr 24 2012, 18:19
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 126
Регистрация: 14-11-10
Пользователь №: 60 879



Всем привет!

Поясните, пожалуйста, есть ли какая-нибудь взаимосвязь между стеком программы и стеками процессов в ОС?
И между их размерами...
Что конкретно хранится в стеках процессов?

Допустим, правильно ли следующее.

В системе два процесса (П1 и П2).
П1 завершает работу.
Планировщик копирует содержимое стека программы в стек П1, а содержимое стека П2 в стек программы и передает управление П2.
П2 работает, потом завершает работу.
Планировщик копирует содержимое стека программы в стек П2, а содержимое стека П1 в стек программы и передает управление П1.
Далее все повторяется по кругу...
Стеки процессов не должны превышать размеры стека программы. Допустим, если в mega1280 во внутренней памяти размещается только стек программы, то стеки каждого из процессов не должны превышать 8192 байт.

Бьюсь который день со спонтанной перезагрузкой, никак баг поймать не могу sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Apr 25 2012, 07:25
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Если массивы временные, то почему бы не использовать один и тот же, глобальный, для разных целей? Только уже без ОС.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 25 2012, 07:44
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ViKo @ Apr 25 2012, 13:25) *
Если массивы временные, то почему бы не использовать один и тот же, глобальный, для разных целей? Только уже без ОС.
А почему это вы думаете, что ОС запрещает использовать глобальные объекты? sm.gif

Цитата(spongebob @ Apr 25 2012, 11:57) *
Фактически, большая часть из этих массивов - временные, нужны иногда, поэтому было принято решение делать их локальными, чтобы они создавались на стеке (типа, память сэкономить).

В scmRTOS 4.0 появился механизм для вычисления используемого каждым процессом стека (см. пример 4-Debug). Включите его, погоняйте. Узнаете, сколько чего и где. Может быть, всё спокойно влезет во внутреннее ОЗУ.
Цитата(spongebob @ Apr 25 2012, 11:57) *
По поводу размещения... тут я совсем слаб...

Почитайте про линкерные скрипты. Примеры используемых avr-gcc скриптов находятся в lib\ldscripts.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 25 2012, 07:54
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(AHTOXA @ Apr 25 2012, 10:44) *
А почему это вы думаете, что ОС запрещает использовать глобальные объекты? sm.gif

Думаю, что в ОС будет сложно контролировать, кто пользуется в данный момент универсальным массивом.

upd. Разве что с кооперативной многозадачностью...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 25 2012, 07:56
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А вот как раз для такого контроля в ОС и предусмотрены средства синхронизации sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- spongebob   Стэк в scmRTOS   Apr 24 2012, 18:19
- - _Артём_   Цитата(spongebob @ Apr 24 2012, 21:19) До...   Apr 24 2012, 18:40
|- - spongebob   Цитата(_Артём_ @ Apr 24 2012, 22:40) Это ...   Apr 24 2012, 18:52
|- - _Артём_   Цитата(spongebob @ Apr 24 2012, 21:52) На...   Apr 24 2012, 19:05
|- - spongebob   Цитата(_Артём_ @ Apr 24 2012, 23:05) У ва...   Apr 24 2012, 19:28
|- - _Артём_   Цитата(spongebob @ Apr 24 2012, 22:28) Аг...   Apr 24 2012, 20:04
|- - ReAl   Цитата(_Артём_ @ Apr 24 2012, 23:04) Инте...   Apr 25 2012, 04:32
|- - spongebob   Цитата(ReAl @ Apr 25 2012, 08:32) Стоило ...   Apr 25 2012, 05:57
|- - ReAl   Цитата(spongebob @ Apr 25 2012, 08:57) Де...   Apr 25 2012, 07:56
|- - _Артём_   Цитата(ReAl @ Apr 25 2012, 10:56) Во внут...   Apr 25 2012, 11:52
|- - spongebob   Цитата(_Артём_ @ Apr 25 2012, 15:52) Можн...   Apr 25 2012, 14:56
|- - Сергей Борщ   QUOTE (spongebob @ Apr 25 2012, 17:56) Но...   Apr 25 2012, 16:38
|- - spongebob   Цитата(Сергей Борщ @ Apr 25 2012, 20:38) ...   Apr 26 2012, 05:12
|- - IgorKossak   Цитата(spongebob @ Apr 26 2012, 08:12) Но...   Apr 26 2012, 07:16
|- - Сергей Борщ   QUOTE (spongebob @ Apr 26 2012, 08:12) Но...   Apr 26 2012, 07:28
|- - ViKo   Цитата(Сергей Борщ @ Apr 26 2012, 10:28) ...   Apr 26 2012, 09:04
- - IgorKossak   Если массивы большие и нужда в них возникает редко...   Apr 25 2012, 06:50
|- - ViKo   Цитата(AHTOXA @ Apr 25 2012, 10:56) А вот...   Apr 25 2012, 07:57
|- - AHTOXA   Цитата(ViKo @ Apr 25 2012, 13:57) Что это...   Apr 25 2012, 08:24
|- - spongebob   Цитата(ViKo @ Apr 25 2012, 11:57) Работа ...   Apr 25 2012, 10:37
|- - AHTOXA   Цитата(spongebob @ Apr 25 2012, 16:37) Пр...   Apr 25 2012, 12:59
- - ViKo   Может, ляпну глупость, но, разве в очередь (messag...   Apr 25 2012, 12:39
- - spongebob   Кстати, насколько прожорлив sprintf? Сколько он по...   Apr 26 2012, 19:32
|- - Сергей Борщ   Кучу - нет. По стеку можно посмотреть его исходник...   Apr 26 2012, 21:06
|- - spongebob   Цитата(Сергей Борщ @ Apr 27 2012, 01:06) ...   Apr 27 2012, 06:25
||- - Сергей Борщ   QUOTE (spongebob @ Apr 27 2012, 09:25) Кс...   Apr 27 2012, 10:01
|- - ReAl   Цитата(Сергей Борщ @ Apr 27 2012, 00:06) ...   Apr 27 2012, 18:46
|- - Сергей Борщ   QUOTE (ReAl @ Apr 27 2012, 21:46) добавля...   Apr 27 2012, 21:18
- - ReAl   Точно. Давненько я туда не заглядывал. Работает, д...   Apr 28 2012, 17:00


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

 


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


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