|
Система, управляемая событиями и SST(super-simple tasker), Выделено из "ООП. Классы и динамические объекты" |
|
|
|
Sep 7 2016, 09:07
|
Профессионал
    
Группа: Свой
Сообщений: 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-ами(с ихними стеками - куча кода было написано для анализа программ на предмет нужного обьема стека, и теперь эта куча кода отправлена на мусорку) со всеми этими тяжеленными мютексами, семафорами, вечными циклами как страшный сон.
Если кому интересно - расскажу и покажу как это все работает.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|