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

 
 
> Прерывание в прерывании, Для реализации Super Simple Tasker
arhiv6
сообщение Nov 7 2017, 12:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



Super Simple Tasker - один из вариантов реализации вытесняющей многозадачности для микроконтроллеров. Как в нём работает асинхронное переключение на более приоритетные задачи написано в статье под рисунком 3. Для реализации SST нужна такая вещь: в функции-обработчике прерывания, после выполнения необходимого кода, нужно как-то сообщить микроконтроллеру, что с прерыванием закончили работать но из функции-обработчика не выходить. Т.е. нужно разрешить вложенные прерывания (одни и те же).

В статье в примере для ПК это делается так: используется команда End Of Interrupt (EOI) - outportb(0x20, 0x20). Обычно она выполняется непосредственно перед выходом из функции-обработчика прерывания, но в SST после EOI вызывается диспетчер, прямо в контексте прерывания. Т.е. вызвав EOI, но оставаясь в контексте прерывания, мы разрешаем вложенные прерывания. Как это можно сделать для ARM (Cortex)?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DASM
сообщение Nov 7 2017, 14:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



"прихожу лишь к одному выводу " - приходите
", обычно хватает 128....256 байтов"- просто у вас " в реально примитивных проектах"
Вы лучше скажите, каким образом вы доказываете, что данная задача никогда не превысит отведенный стек, при условии, что если такое возникнет - аппарат под контролем процессора с вашим замечательным ртос со стеком задачи 128 байт отрежет например рабочему руку.
" "толстые" МК с 256 кб" вы серьезно считаете, что это толсто? Это копейки с нынешними стеками и протоколами, стек BLE один сожрет 300 кб флеша, порядка 100 к ОЗУ, а к нему еще Thread прикуртить надо, оный тоже 250 кбайт и ОЗУ немерянно.
Очень интересно глянуть вашу "сурьезную задачу" с 128 байт ОЗУ
Go to the top of the page
 
+Quote Post
Forger
сообщение Nov 7 2017, 15:18
Сообщение #3


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Nov 7 2017, 17:53) *
"прихожу лишь к одному выводу " - приходите
", обычно хватает 128....256 байтов"- просто у вас " в реально примитивных проектах"

Я не кладу в стек гигантские структуры, а стараюсь их использовать статически. Динамическую память не использую.
Там, где это нужно, память выделяю пулами (фиксированными кусками).

Цитата
Вы лучше скажите, каким образом вы доказываете, что данная задача никогда не превысит отведенный стек,

Это делается средствами RTOS, разумеется, соотв. аварийные ситуации обрабатываются. Перед запуском проекта, он долгое время отрабатывается под systemview, где видно, кто и сколько чего кушает.
Это позволяет подстроить стеки более тонко (если нужно).
Используются ГОТОВЫЕ решения. Это работает и переполнения стека отлично отлавливаются (при тестировании это проверяю - занижаю размеры стеков и контролирую работу кода в таких условиях).

Цитата
" "толстые" МК с 256 кб" вы серьезно считаете, что это толсто?
Для любой примитивной RTOS (та же freeRTOS -одна из них) эти ТТХ контроллера вполне толстые. Речь об этом.

Цитата
Это копейки с нынешними стеками и протоколами, стек BLE один сожрет 300 кб флеша, порядка 100 к ОЗУ, а к нему еще Thread прикуртить надо, оный тоже 250 кбайт и ОЗУ немерянно.

Речь не про это, речь про совсем про другое - гипотетическую экономию на абсолютно ровном месте.
В конце-концов, существует cmsisOS, даже cmsisOS-II, стандарт. Но нет же, ведь всегда найдутся энтузиасты, которым нужно "изобрести велосипед с квадратными колесами" и пытаться на нем ехать, делая вид, что это нормально smile3046.gif

Цитата
Очень интересно глянуть вашу "сурьезную задачу" с 128 байт ОЗУ
Мы сейчас говорим про проекты для бытовых МК, а не толстых CPU с мб флэши и озу.
Второй случай требует RTOS другого класса, скорее всего платной RTOS.
Здесь же речь про простые вещи, где экономия на спичках выглядит очень и очень странно - вместо простой готовой RTOS колхозить некий самодельный костыльный SST ...
Вот мне лично совсем не ясна реальная мотивация подобной задумки.... Пытаюсь разобраться, может быть что-то упускаю )))


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- arhiv6   Прерывание в прерывании   Nov 7 2017, 12:00
- - Forger   Цитата(arhiv6 @ Nov 7 2017, 15:00) один и...   Nov 7 2017, 13:02
|- - Студент заборстроительного   Цитата(Forger @ Nov 7 2017, 16:02) Цитата...   Nov 8 2017, 16:41
|- - Forger   Цитата(Студент заборстроительного @ Nov 8 201...   Nov 8 2017, 20:41
|- - ig_z   QUOTE (Forger @ Nov 8 2017, 22:41) С друг...   Nov 9 2017, 20:15
|- - Forger   Цитата(ig_z @ Nov 9 2017, 23:15) в каждой...   Nov 9 2017, 21:41
- - arhiv6   Как минимум, это интересно - попробовать разные по...   Nov 7 2017, 13:17
|- - Forger   Цитата(arhiv6 @ Nov 7 2017, 16:17) А ещё ...   Nov 7 2017, 13:30
||- - DASM   Цитата(Forger @ Nov 7 2017, 16:30) В мелк...   Nov 7 2017, 14:28
||- - Forger   Цитата(DASM @ Nov 7 2017, 17:28) Я отказа...   Nov 7 2017, 14:45
||- - jcxz   Цитата(DASM @ Nov 7 2017, 16:28) Я отказа...   Nov 7 2017, 15:04
|- - jcxz   Цитата(arhiv6 @ Nov 7 2017, 15:17) Как ми...   Nov 7 2017, 15:00
- - Obam   Цитата(arhiv6 @ Nov 7 2017, 16:00) нужно ...   Nov 7 2017, 13:44
- - AHTOXA   Цитата(arhiv6 @ Nov 7 2017, 17:00) Как эт...   Nov 7 2017, 14:17
- - ViKo   Подтверждаю, RTX RTOS от Keil - весьма достойная п...   Nov 7 2017, 14:52
|- - jcxz   Цитата(DASM @ Nov 7 2017, 16:53) Вы лучше...   Nov 7 2017, 15:08
- - scifi   Гугл вводит на гитхаб. Возможно, всё украдено до н...   Nov 7 2017, 15:04
- - DASM   Так может Вы дадите совет, сколько памяти давать к...   Nov 7 2017, 15:08
|- - jcxz   Цитата(DASM @ Nov 7 2017, 17:08) Так може...   Nov 7 2017, 15:11
|- - DASM   Цитата(jcxz @ Nov 7 2017, 18:11) А в чём ...   Nov 7 2017, 15:29
|- - jcxz   Цитата(DASM @ Nov 7 2017, 17:29) Тем, что...   Nov 7 2017, 15:58
- - DASM   Я немного преувеличил для ясности. Эти РТОС замеча...   Nov 7 2017, 15:11
|- - Forger   Цитата(DASM @ Nov 7 2017, 18:11) Эти РТОС...   Nov 7 2017, 15:38
- - DASM   Да никто не хает, каждый до..ит как хочет. Просто ...   Nov 7 2017, 15:39
|- - Forger   Цитата(DASM @ Nov 7 2017, 18:39) Ваши РТО...   Nov 7 2017, 15:46
|- - jcxz   Цитата(DASM @ Nov 7 2017, 17:39) но навск...   Nov 7 2017, 16:11
|- - Forger   Цитата(jcxz @ Nov 7 2017, 19:11) Чтобы по...   Nov 7 2017, 16:13
- - arhiv6   Цитата(AHTOXA @ Nov 7 2017, 21:17) Здесь ...   Nov 7 2017, 15:59
|- - jcxz   Цитата(arhiv6 @ Nov 7 2017, 17:59) Пожалу...   Nov 7 2017, 16:16
|- - Forger   Цитата(jcxz @ Nov 7 2017, 19:16) Наверное...   Nov 7 2017, 17:56
- - arhiv6   Смотрел я исходники ОС, но они все по похожему при...   Nov 7 2017, 17:28
|- - Forger   Цитата(arhiv6 @ Nov 7 2017, 20:28) Как пр...   Nov 7 2017, 18:27
||- - arhiv6   Цитата(Forger @ Nov 8 2017, 01:27) Как бы...   Nov 7 2017, 19:00
|- - jcxz   Цитата(arhiv6 @ Nov 7 2017, 19:28) Смотре...   Nov 7 2017, 21:33
- - arhiv6   jcxz, Forger, я не знаю, как правильно сделать, по...   Nov 7 2017, 18:14
- - DASM   Меня устраивает карусель кооперативная на таймерах...   Nov 7 2017, 18:50
|- - Forger   Цитата(DASM @ Nov 7 2017, 21:50) void Led...   Nov 7 2017, 19:01
- - DASM   Первое, что приходит в голову так: о как, у меня т...   Nov 7 2017, 19:05
|- - Forger   Цитата(DASM @ Nov 7 2017, 22:02) Просто к...   Nov 7 2017, 19:05
||- - DASM   Цитата(Forger @ Nov 7 2017, 22:05) Ну-ну,...   Nov 7 2017, 19:08
|- - arhiv6   Цитата(DASM @ Nov 8 2017, 02:05) Первое, ...   Nov 7 2017, 19:08
|- - Forger   Цитата(DASM @ Nov 7 2017, 22:05) Первое, ...   Nov 7 2017, 19:21
|- - jcxz   Цитата(DASM @ Nov 7 2017, 21:05) вы шину ...   Nov 7 2017, 21:46
- - DASM   Ну да , тут собственно у меня так и есть   Nov 7 2017, 19:13
- - DASM   @ Читайте матчасть по ARM Cortex.@ Ладно, спорить ...   Nov 7 2017, 19:29
|- - Forger   Цитата(DASM @ Nov 7 2017, 22:29) @ Читайт...   Nov 7 2017, 19:36
|- - AlexandrY   Цитата(Forger @ Nov 7 2017, 21:36) Для те...   Nov 7 2017, 20:41
||- - Forger   Цитата(AlexandrY @ Nov 7 2017, 23:41) Да ...   Nov 7 2017, 21:44
|- - AVR   Цитата(Forger @ Nov 7 2017, 22:36) ОК, сл...   Nov 8 2017, 08:44
||- - Forger   Цитата(AVR @ Nov 8 2017, 11:44) Ради него...   Nov 8 2017, 12:53
|- - jcxz   Цитата(Forger @ Nov 7 2017, 21:36) Для те...   Nov 8 2017, 20:49
|- - Forger   Цитата(jcxz @ Nov 8 2017, 23:49) может ес...   Nov 8 2017, 20:54
- - DASM   А где тут DMA и что и куда оно грузит?   Nov 7 2017, 21:01
|- - AlexandrY   Цитата(DASM @ Nov 7 2017, 23:01) А где ту...   Nov 8 2017, 06:13
- - DASM   Ну не знаю, у меня на Ардуино все проще, а на мали...   Nov 7 2017, 22:35
- - DASM   Да уж.. сколько чудных открытий человек недавно п...   Nov 8 2017, 21:23
|- - Forger   Цитата(DASM @ Nov 9 2017, 00:23) склетон ...   Nov 8 2017, 23:29
- - syoma   Возвращаясь к оригинальной теме по поводу прерыван...   Nov 17 2017, 10:45
|- - Forger   Цитата(syoma @ Nov 17 2017, 13:45) что AR...   Nov 17 2017, 11:07
|- - scifi   Цитата(syoma @ Nov 17 2017, 13:45) Каково...   Nov 17 2017, 11:15
||- - Forger   Цитата(scifi @ Nov 17 2017, 14:15) Всё он...   Nov 17 2017, 11:37
||- - syoma   Цитата(scifi @ Nov 17 2017, 14:15) Всё он...   Nov 17 2017, 12:02
||- - Forger   Цитата(syoma @ Nov 17 2017, 15:02) И мое ...   Nov 17 2017, 12:17
||- - Obam   Цитата(syoma @ Nov 17 2017, 16:02) …Если ...   Nov 17 2017, 13:03
||- - AlexandrY   Цитата(syoma @ Nov 17 2017, 14:02) Ну я н...   Nov 17 2017, 13:42
||- - jcxz   Цитата(syoma @ Nov 17 2017, 14:02) Наскол...   Nov 17 2017, 13:44
|- - Timmy   Цитата(syoma @ Nov 17 2017, 13:45) Каково...   Nov 17 2017, 12:01
- - syoma   Знающие люди подсказали такой вариант. У них работ...   Nov 17 2017, 18:04
- - AlexandrY   Цитата(syoma @ Nov 17 2017, 20:04) Знающи...   Nov 17 2017, 18:56
- - syoma   Цитата(AlexandrY @ Nov 17 2017, 21:56) Кт...   Nov 17 2017, 20:51
- - AlexandrY   Цитата(syoma @ Nov 17 2017, 22:51) Если б...   Nov 17 2017, 21:35


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

 


RSS Текстовая версия Сейчас: 3rd September 2025 - 08:05
Рейтинг@Mail.ru


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