Сергей Борщ 119 2 октября, 2020 Опубликовано 2 октября, 2020 · Жалоба 15 минут назад, Картошка сказал: А о размере can фрейма не наслышаны случаем :) ?! А вы 5000 на "тыс" умножить сможете в уме или калькулятор нужен? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 2 октября, 2020 Опубликовано 2 октября, 2020 (изменено) · Жалоба 5 часов назад, jcxz сказал: Например есть TCP/IP-стек (через Ethernet) и в нём нужно работать с быстрой реакцией на короткие UDP и медленно и объёмно обрабатывать HTTP-запросы или например - длинные JSON-ы парсить? Задачи делать быстрые сетевые стеки у меня не было, так наверно на прерывание таймера бы его вешать пришлось... "длинные JSON-ы парсить?" - чур меня от этого убожища Я еще могу понять HTTP, т.к. от него просто не деться никуда в случае веб-морды, но все остальные м2м коммуникации делаю только бинарными пакетами в режиме TCP RAW сокетов. Стараюсь не вносить еще свой вклад в засирание инета ненужной текстовухой Да и в HTTP, как правило часто требуется доступ к ФС, поэтому быстро это никогда и не будет... Изменено 2 октября, 2020 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 2 октября, 2020 Опубликовано 2 октября, 2020 · Жалоба On 10/1/2020 at 8:23 PM, Картошка said: Надеюсь что-то выковырять получится. Спрашивай, если чего непонятно. У меня где-то валяются старые версии, без математики. Просто М3 сейчас не применяю, а для М0 ось уже избыточна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
germinik 0 2 октября, 2020 Опубликовано 2 октября, 2020 (изменено) · Жалоба 01.10.2020 в 18:28, x893 сказал: Так это можно и без всякой ОС сделать. Проверяйте время во время долгих операций и выходите если время закончилось. При следующем входе - продолжайте. Это называется кооперативная многозадачность а не вытесняющая. Вообще топикстартеру выгоднее выбросить из FreeRtos то что ему не нравиться, чем добавлять сущности, в которых плохо сведущ. Хотя, совет правильный, начинать нужно с кооперативной логики, она проще. Кстати, в вытесняющей ОС полезно писать задачи в стиле ОС кооперативной, так всем легче и, отпадет привычка часто блокировать диспетчер, а напротив, ему помочь. Изменено 2 октября, 2020 пользователем germinik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 3 октября, 2020 Опубликовано 3 октября, 2020 · Жалоба On 10/1/2020 at 8:13 PM, Картошка said: Кто-нибудь реализовывал механизм вытеснения задачи по времени выполнения, самостоятельно, без подключения RTOS-ов и др. каше-топорных вещей. Автор, перечитал весь тред. Вот вам мой ответ прямой и без наездов: вы пишите ерунду. Хотя бы в терминологии и "топорных с кашей" выражениях. И не вы первый. На этом форуме тысячи раз поднимали темы подобные вашей. Для тех, кто не достиг нужного уровня профессионализма ОСРВ всегда будет оставаться чёрным ящиком, жрущим мегабайты памяти и тысячи циклов процессора. Возьмите лёгкую ОСРВ, например, scmRTOS. Её создавали в начале 2000-х для микроконтроллеров с 1 кб ОЗУ и тактовыми частотами единицы МГц. Если же вы хотите написать свою ОС, то берите книгу Джозефа Ю по кортекасам, там есть целая глава, как написать переключатель контекста и создать простейшие задачи. Хотя, я не понимаю, чем вам переключатель из любой системы не понравился. Та же FreeRTOS имеет довольно короткий код для переключения контекста. В scmRTOS он ещё меньше. В принципе, понимая суть, вы его и сами можете написать за пару вечеров. Но при условии, что понимаете работу своей архитектуры и знаете ассемблер. И пожалуйста, не заваливайте сообщения эмоциями в стиле "5000 фреймов can" или "выкинули шедулер чибиос для ускорения системы". Здесь же профессионалы обитают. Вы нас на "слабо" не возьмёте))) 12 hours ago, germinik said: Вообще топикстартеру выгоднее выбросить из FreeRtos то что ему не нравиться Для этого топикстартеру нужно уметь программировать и знать, что выбрасывать. А с такими знаниями он бы мог написать своё, или понять, что готовое написано не с избыточностью, чтобы затормозить его процессор, а потому что это минимальный джентельменский набор. Вот такая-то вот логика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Картошка 0 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 03.10.2020 в 13:13, haker_fox сказал: Здесь же профессионалы обитают. Вы нас на "слабо" не возьмёте))) Это то да. Но разжечь огонь как раз с Вами сложнее, то костыли не дрова, то кремний не спички :). Всем спасибо. Особое спасибо AVI-crak. Искал готовое решение, чтоб не изобретать велосипед. В принципе все понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 2 minutes ago, Картошка said: Но разжечь огонь как раз с Вами сложнее Для этого тут есть раздел "для новичков", там как раз обитают самые безумные и нелепые идеи. Это нормально. Среди них проскакивают путные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Картошка 0 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 02.10.2020 в 18:09, Сергей Борщ сказал: А вы 5000 на "тыс" умножить сможете в уме или калькулятор нужен? Тут тему просто переключили на мускалатуру. Не в этом вопрос. Видели где-нибудь отдельные проект по примеру вытеснения задачи по времени ? Может готовое уже кто-то писал, я поэтому и создал топик, чтоб не изобретать велосипед, вдруг уже готовое где-то есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 1 час назад, Картошка сказал: Тут тему просто переключили на мускалатуру. Не в этом вопрос. Нет, это вы написали очередную глупость и вам на нее указали, но вы не поняли. 1 час назад, Картошка сказал: Видели где-нибудь отдельные проект по примеру вытеснения задачи по времени ? в scmRTOS есть сервис "Round-robbin". Возможно это именно то, что вы ищите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 3 hours ago, Картошка said: Искал готовое решение, чтоб не изобретать велосипед. Странный вы. То боитесь "чёрного ящика", то ищете готовое... 3 hours ago, Картошка said: Но разжечь огонь как раз с Вами сложнее, то костыли не дрова, то кремний не спички :). Тут ответ банально прост: у дилетантов и начинающих всегда всё просто (извините за тавтологию). И только с опытом начинаешь понимать, что костыли, дрова, кремний и спички - совершенно разные предметы, и не всегда взаимозамеяемы. 2 hours ago, Картошка said: Видели где-нибудь отдельные проект по примеру вытеснения задачи по времени ? Во FreeRTOS есть round-robin планировщик. На scmRTOS вам уже указали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 октября, 2020 Опубликовано 7 октября, 2020 · Жалоба 3 hours ago, Картошка said: Тут тему просто переключили на мускалатуру. Не в этом вопрос. Видели где-нибудь отдельные проект по примеру вытеснения задачи по времени ? Может готовое уже кто-то писал, я поэтому и создал топик, чтоб не изобретать велосипед, вдруг уже готовое где-то есть. Но какую практическую пользу вы хотите получить от вытеснения по времени? В RTOS это сделать в принципе не трудно. Там есть сервис таймера. Вы запускаете ту задачу которую хотите вытеснить и запускаете таймер. Таймер по окончании счета вызывает функцию которая либо остановит вашу задачу явно, либо понизит ее приоритет до минимум и она будет остановлена неявно. Но что это даст? Вы просто неэффективно используете вычислительные ресурсы процессора. А если речь о том чтобы экономить энергию, то тоже не видно смысла. Если подозрение на предмет зависания задачи, то может быть. Но тогда говорить надо не о вытеснении, а о сепервайзинге задач. Но супервайзин делают над задачами строго профилированными, а над недетерминированным файловым движком такие манипуляции только головняка добавят. Поменяете FAT на линейную FS и все станет проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aldec 0 10 ноября, 2020 Опубликовано 10 ноября, 2020 · Жалоба Переключение задач таймером это не вариант для контролера если нужна совсем микро операционка только если флаг приоритета со счетчиком или кейсами Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 10 ноября, 2020 Опубликовано 10 ноября, 2020 · Жалоба 1 hour ago, Aldec said: нужна совсем микро операционка Можно уточнить, что вы вкладываете в понятие "совсем микро операционка"? Я, возможно, чего-то недопонимаю. Но к чему такая радикальная экономия? Мы росли на восьмибитках с 1 кб ОЗУ и 16 кБ флэша, где прекрасно крутилась уже много раз названная здесь ОС с вытесняющей многозадачностью. И при этом было место для двух - четырёх процессов. Сейчас 32-битные Cortex-M0 даже с учётом скачка доллара доступны по вполне разумной цене. На чём экономить? Зачем? Если я ошибаюсь, то буду рад услышать квалифицированный ответ, а не абстрактные рассуждения о желании сэкономить 2 байта в планировщике, но потерять это же время или большее, не учтя занятие шины каким-нибудь DMA-контроллером. Просвятите, пожаааалууйста) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 10 ноября, 2020 Опубликовано 10 ноября, 2020 · Жалоба 3 minutes ago, haker_fox said: На чём экономить? Зачем? Если есть потребность в извращениях, то оправдание всегда найдется ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 10 ноября, 2020 Опубликовано 10 ноября, 2020 · Жалоба Just now, Forger said: Если есть потребность в извращениях, то оправдание всегда найдется ;) У меня есть подозрения, что такие вот рассуждения о быстрых планировщиках и суперэкономчных ОС рождаются от полного отсутствия опыта работы с таковыми. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться