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

 
 
> Система, управляемая событиями и SST(super-simple tasker), Выделено из "ООП. Классы и динамические объекты"
brag
сообщение Sep 7 2016, 09:07
Сообщение #101


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

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Недавно я начал пользоваться динамической памятью. Раньше пользовался только статикой, то есть placement new. Со статикой сложно работать с такими шаблонами, как фабрика обьектов, временные задачи итд.
Программирую в основном под cortex-m3/m4
Код реализации аллокатора вышел довольно простым и быстрым, критически секции есть, но очень короткие(там прочитать/записать пару байт).
При чем я не использую этих всяких монстров под названием RTOS, у меня свой простейший асинхронный планировщик задач, занимает строк 300 кода с комментариями(погуглите запрос "super simple tasker", поймете что это).
В купе с динамическим аллокатором, variable element-size queue, новыми фишками C++ (шаблоны, лямбда-функции, auto) получается очень простой, безопасный и мощный фреймворк.
Вспоминаю работу с классическими Thread-ами(с ихними стеками - куча кода было написано для анализа программ на предмет нужного обьема стека, и теперь эта куча кода отправлена на мусорку) со всеми этими тяжеленными мютексами, семафорами, вечными циклами как страшный сон.

Если кому интересно - расскажу и покажу как это все работает.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- brag   Система, управляемая событиями и SST(super-simple tasker)   Sep 7 2016, 09:07
- - brag   Горбатый стиль работы с очередью (или сама очередь...   Sep 10 2016, 07:50
- - brag   psL, синхронный стиль подразумевает наличие потоко...   Sep 10 2016, 08:05
|- - psL   Цитата(brag @ Sep 10 2016, 11:05) синхрон...   Sep 10 2016, 08:48
- - brag   Цитатат.е. если процесс блокируется вплоть до собы...   Sep 10 2016, 08:57
- - Herz   Тему разделил. Переносить в "Операционные сис...   Sep 10 2016, 09:26
- - Slash   brag, можете показать реализацию variable element-...   Sep 10 2016, 18:46
|- - AHTOXA   Тема про SST интересная. Не панацея, конечно, но п...   Sep 10 2016, 19:51
- - brag   Цитатаbrag, можете показать реализацию variable el...   Sep 11 2016, 21:43
|- - AHTOXA   Цитата(brag @ Sep 12 2016, 02:43) Готовог...   Sep 12 2016, 06:46
- - brag   Да я и не миссионер и готовой реализации у меня не...   Sep 12 2016, 06:56
|- - AHTOXA   Вы тут в пылу борьбы уже столько проектов сделали ...   Sep 12 2016, 07:15
|- - ViKo   Цитата(AHTOXA @ Sep 12 2016, 10:15) А мал...   Sep 12 2016, 08:55
|- - brag   Цитата(ViKo @ Sep 12 2016, 11:55) И чтобы...   Sep 13 2016, 09:44
|- - AlexandrY   Цитата(brag @ Sep 13 2016, 12:44) brag, е...   Sep 13 2016, 10:57
|- - jcxz   Цитата(brag @ Sep 13 2016, 15:44) Но выпо...   Sep 13 2016, 11:17
- - brag   Посмотрел FatFs - это блокирующий стиль, async IO ...   Sep 13 2016, 11:04
- - brag   ЦитатаСлишком много перечитывать - не осилю. Это о...   Sep 13 2016, 11:18
|- - jcxz   Цитата(brag @ Sep 13 2016, 17:18) Да, он ...   Sep 13 2016, 11:40
- - brag   Цитатасли он также далёк от традиционного вида (на...   Sep 13 2016, 11:52
|- - jcxz   Цитата(brag @ Sep 13 2016, 17:52) Анука п...   Sep 13 2016, 13:05
|- - Сергей Борщ   QUOTE (jcxz @ Sep 13 2016, 16:05) А не на...   Sep 13 2016, 13:51
|- - jcxz   Цитата(Сергей Борщ @ Sep 13 2016, 19:51) ...   Sep 13 2016, 14:10
|- - brag   Цитата(jcxz @ Sep 13 2016, 17:02) Т.е. - ...   Sep 13 2016, 14:28
- - brag   jcxz, большое спасибо за код, именно так я и хотел...   Sep 13 2016, 13:38
|- - Kabdim   Цитата(brag @ Sep 13 2016, 16:38) Так и р...   Sep 13 2016, 15:23
|- - brag   Цитата(Kabdim @ Sep 13 2016, 18:23) Ваша ...   Sep 13 2016, 15:32
|- - TSerg   Цитата(brag @ Sep 13 2016, 18:32) Сама ко...   Sep 13 2016, 15:55
- - brag   Не знаю что там с Бураном, даже понятие не имею чт...   Sep 13 2016, 16:46
|- - AlexandrY   Цитата(brag @ Sep 13 2016, 19:46) Аsync i...   Sep 13 2016, 18:37
- - sigmaN   ЦитатаНе знаю что там с Бураном, даже понятие не и...   Sep 13 2016, 18:07
- - brag   ЦитатаЯ уже лет 15 использую пакет AsyncPro написа...   Sep 13 2016, 19:09
|- - AlexandrY   Цитата(brag @ Sep 13 2016, 22:09) В corte...   Sep 14 2016, 06:10
- - sigmaN   ЦитатаБлаго, в однопоточном асинхронном стиле сбор...   Sep 13 2016, 20:09
- - brag   Цитатав C++ сборка мусора специально выполнена в с...   Sep 14 2016, 01:34
- - brag   ЦитатаВот чё тут делать с вашим методом? И в чем м...   Sep 14 2016, 07:15
|- - AlexandrY   Цитата(brag @ Sep 14 2016, 10:15) Я уже п...   Sep 14 2016, 08:30
- - brag   Стиль программирования что для embedded, что для п...   Sep 14 2016, 08:57
- - sigmaN   ЦитатаЛично на моей системе приложение Node занима...   Sep 14 2016, 09:03
- - brag   Состояние и там и там надо запоминать, при чем вру...   Sep 14 2016, 09:23
- - sigmaN   ЦитатаИнтересно было бы увидеть Ваш код, где бы Вы...   Sep 14 2016, 09:39
- - brag   ЦитатаПример простоты/преимущества блокирующего по...   Sep 14 2016, 09:43
- - sigmaN   Мне лень вам приводить здесь абсолютно типичный ку...   Sep 14 2016, 09:51
- - AlexRayne   насколько мне не изменяет склероз: вытесняюшая мно...   Sep 14 2016, 09:57
- - brag   Без кода это разговор ни о чем. Будет реальный при...   Sep 14 2016, 10:05
- - brag   Вот эта статья http://embeddedgurus.com/state-spac...   Sep 14 2016, 11:46
- - amaora   Попробую нарисовать задачу, словами: 1. Основная ...   Sep 14 2016, 12:55
- - brag   Задача отлично ложится на SST. Понадобится неблоки...   Sep 14 2016, 14:02
- - amaora   А где самое главное, что будет вместо блокирующего...   Sep 14 2016, 14:10
- - brag   В принципе тут без очереди все равно не обойдется ...   Sep 14 2016, 14:21
- - amaora   Ну допустим будем хранить аргументы printf. Пробле...   Sep 14 2016, 14:33
- - brag   И так вот. У нас появилась еще одна задача - print...   Sep 14 2016, 14:47
- - sigmaN   ЦитатаВ принципе тут без очереди все равно не обой...   Sep 14 2016, 18:33
|- - AHTOXA   Цитата(sigmaN @ Sep 14 2016, 23:33) Понес...   Sep 14 2016, 19:00
|- - AlexandrY   Цитата(AHTOXA @ Sep 14 2016, 22:00) [*] N...   Sep 14 2016, 20:11
|- - zltigo   QUOTE (AHTOXA @ Sep 14 2016, 22:00) Зря в...   Sep 15 2016, 09:48
- - sigmaN   Ну я давно говорил, что в реальном мире оба подход...   Sep 14 2016, 19:13
- - brag   sizeof растет, но памяти в целом надо меньше, раз ...   Sep 14 2016, 19:42
- - brag   ЦитатаНо я на 100% уверен что, brag не перепишет и...   Sep 14 2016, 20:44
- - AHTOXA   Цитата(brag @ Sep 15 2016, 00:42) Демо-пр...   Sep 14 2016, 20:54
- - brag   ЦитатаТак вы же написали, что проект будет под PC....   Sep 14 2016, 21:13
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 00:13) И получ...   Sep 15 2016, 06:48
- - brag   не знаю что там у них за супер-цикл, лично у меня ...   Sep 15 2016, 07:17
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 10:17) не знаю...   Sep 15 2016, 07:58
- - brag   Может и супервизор, меня это не волнует, для меня ...   Sep 15 2016, 08:10
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 11:10) Может и...   Sep 15 2016, 08:27
- - brag   За загрузкой проца я слежу отдельным событием по т...   Sep 15 2016, 08:35
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 11:35) За загр...   Sep 15 2016, 08:39
- - brag   Да, по высоко-приоритетному таймеру беру за опреде...   Sep 15 2016, 08:56
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 11:56) Да, по ...   Sep 15 2016, 10:30
- - sigmaN   ЦитатаПодумал я подумал и решил, что лишние сущнос...   Sep 15 2016, 10:06
|- - Сергей Борщ   QUOTE (sigmaN @ Sep 15 2016, 13:06) А наш...   Sep 15 2016, 10:30
|- - AlexandrY   Цитата(Сергей Борщ @ Sep 15 2016, 13:30) ...   Sep 15 2016, 10:37
- - brag   Не оттуда, взял из документации на ARM. Но смысл т...   Sep 15 2016, 10:48
|- - AlexandrY   Цитата(brag @ Sep 15 2016, 13:48) Там, гд...   Sep 15 2016, 14:00
- - dxp   brag, с такими устремлениями вам надо копать в сто...   Sep 15 2016, 11:41
- - brag   Да копаю я Erlang, но пока много кода на плюсах сд...   Sep 15 2016, 11:53
- - XVR   'Энтузизизм' это конечно хорошо, но надо з...   Sep 15 2016, 13:29
|- - AHTOXA   Цитата(XVR @ Sep 15 2016, 18:29) Был у ...   Sep 15 2016, 16:44
|- - zltigo   QUOTE (AHTOXA @ Sep 15 2016, 19:44) Ох, ч...   Sep 15 2016, 19:56
|- - XVR   Цитата(zltigo @ Sep 15 2016, 22:56) Да, а...   Sep 16 2016, 09:06
|- - brag   Цитата(XVR @ Sep 16 2016, 12:06) Проблема...   Sep 23 2016, 20:49
|- - TSerg   Цитата(XVR @ Sep 16 2016, 12:06) а нечто ...   Sep 25 2016, 18:57
|- - XVR   Цитата(TSerg @ Sep 25 2016, 21:57) Turbo ...   Sep 26 2016, 08:23
- - brag   ЦитатаИ чего вы лишаетесь переходя на доморощенные...   Sep 15 2016, 15:12
- - XVR   Ну хорошо. Что нгибудь вроде такого (code? - куски...   Sep 25 2016, 18:13
|- - brag   XVR, Большое спасибо за примеры. Цитата(XVR ...   Sep 26 2016, 12:30
- - XVR   Правильно, о чем собственно и говорилось. Такой ко...   Sep 26 2016, 15:09
- - brag   ЦитатаПри таком подходе что угодно можно положить ...   Sep 26 2016, 21:41
|- - XVR   Цитата(brag @ Sep 27 2016, 00:41) В совре...   Sep 27 2016, 14:50
- - sigmaN   ЦитатаВ современном софте разделяемой памяти быть ...   Sep 27 2016, 10:00
|- - Kabdim   Цитата(sigmaN @ Sep 27 2016, 13:00) Можно...   Sep 27 2016, 10:10
- - sigmaN   ЦитатаСобственно ФП изучить стоит практически любо...   Sep 27 2016, 11:57
- - Kabdim   С книгами мне лично было сложно... начинал читать ...   Sep 27 2016, 12:08
- - brag   Да, это все огрызки. С ними возимся не из за того,...   Sep 27 2016, 14:51
3 страниц V  < 1 2 3 >


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

 


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


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