Под капотом или как устроен один из проектов с использованием операционной системы FreeRTOS.

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ธ.ค. 2024

ความคิดเห็น • 165

  • @victorlowlevel8063
    @victorlowlevel8063 4 ปีที่แล้ว +24

    С Новым Годом, господа эмбеддеры, кодеры и электронщики! Пусть ваши проекты и устройства работают так - как задумано! Творческих успехов, интересных и финансово-успешных проектов! 👋🙂 🍾🎆

  • @Liberhaim
    @Liberhaim 4 ปีที่แล้ว +29

    "...навык программирования этого ОВНА" - зачёт. Только печально, что наши конторы не слышат голоса пользователей своего продукта и не учитывают их

    • @johnkoffee
      @johnkoffee 4 ปีที่แล้ว

      Я тоже пользователь ОВЕНа. Сижу на плк160. Но я не знаю пробоем, кроме того что старая версия кодесиса дико неудобная.
      Расскажите поподробнее, пожалуйста, к каким замечаниям не прислушиваются производители? (Простое любопытство)

    • @Liberhaim
      @Liberhaim 4 ปีที่แล้ว +1

      @@johnkoffee Вот вы сами назвали одну из проблем это рисование нового интерфейса. Сберонлайн, сайт ржд овен и др программные продукты, котрые рисуют интерфейсы в корне которые по другому выглядят и их не интересуют, что пользователи в нем потеряются.

    • @awwsum
      @awwsum 4 ปีที่แล้ว +2

      А мне нравится ОВЕН. С ПРками проблем никогда не имел, ни в процессе программирования ни в эксплуатации.

    • @АлександрСпицын-х1я
      @АлександрСпицын-х1я 4 ปีที่แล้ว +1

      @@Liberhaim Как говорится смешались кони, люди... Т.е. и ембедед и сбер. Вы не из соседней страны пишите, что у нас тут все плохо и пропало :-) Сбер, пожалуй самое неплохое банковское приложение, Овен программируется в CoDeSys, которое используют многие производители ПЛК. При чем автор ролика просто мало знает про языки программирования МЭК 61131,т.к. те кто ими владеет написали бы, что им сложно программировать на С :-). Ну и если развить его идею со связыванием входов и выходов через функции с учётом желания пользователя, то он бы получил наноПЛК. Повозиться только чуть с FBD и верхним уровнем.

    • @SIM31r
      @SIM31r 3 ปีที่แล้ว

      @@АлександрСпицын-х1я вообще интересно, есть ли приложения круче Сбербанка, остальные все намного слабее, даже ВТБ глючит на старом моем телефоне, Сбер работает на всём стабильно и быстро. Программисты очень хороши, им и платят за это.

  • @valkoder_ex305
    @valkoder_ex305 4 ปีที่แล้ว +1

    Большое спасибо. Вообщем частично сам дошёл до этих отладок в операционке. Но тем не менее очень хорошо что это озвучено для тех, кто ещё не потратил десятки часов. Осталось понять как отлаживаться, когда операционка зависает. Сам однозначно ещё решения не нашёл. Иногда помогают ассерты, иногда тупо светодиодами приходится отлаживаться. А по рабочему коду удобно отлаживаться отдельной задачей с отправкой через уарт по дма. В отдельном файле создаю функцию дебаг_инит, в ней создаётся задача очередь и семафор. В параметрах функции указатель на структуру настроенного дма. Дадее простые функции заполнения очереди по типу дебаг_принт_стринг, дебаг_принт_инт,.... _буффер и т. д. Ну и функцию колбека для прерывания от тх_дма, которую прописываю в майне. В ней проверяю соответствие структуры дма и скидываю семафр. Всем удачи.

    • @dazzershell
      @dazzershell 3 ปีที่แล้ว

      Узнал про "access breakpoint" давно, но использовал его по делу буквально позавчера, нашел жука в старом "проверенном" коде. Ошибка в адресации к памяти.

  • @victorlowlevel8063
    @victorlowlevel8063 4 ปีที่แล้ว +3

    Очень познавательное видео! Спасибо за обзор, за знакомство с трудами других эмбеддеров, подводными камнями.
    У меня сейчас проект радиосвистков для баскетбола в работе. Рисую отладочную плату. Предполагается логгирование на USB флэшку, работа с радиомодулями HC-11/12, работа с HMI USART, W5500, Modbus RTU Master/Slave, W25Qxx и т. д. Проект на DevEbox F407, задействую все 6 UART-модуля контроллера, предполагаю тоже разруливать очередями.

    • @олегспирин-р4р
      @олегспирин-р4р 4 ปีที่แล้ว

      А можно по подробнее, что это за свистки такие ? Очень интересно

    • @victorlowlevel8063
      @victorlowlevel8063 4 ปีที่แล้ว

      @@олегспирин-р4р У судей на поле во время игры некие гаджеты на поясе. Микрофон-петличка на воротнике. Когда он свистит - микрофон улавливает звук. Гаджет выделяет из него свист и останавливает игровые часы по радиоканалу посылая сигнал на базу. Ведётся лог при этом для дальнейшего анализа игры.

    • @victorlowlevel8063
      @victorlowlevel8063 4 ปีที่แล้ว

      Сохраняется на флешку. Аппарат принимает инфо о времени игры от судейской системы для лога. Запускает и останавливает игровые часы. Общается со сторонними системами по какому либо интерфейсу. Рисует лог на экране, замеряет уровень заряда батарей в гаджетах и прочее.

  • @ИванСидоров-к9м
    @ИванСидоров-к9м 4 ปีที่แล้ว +3

    Спасибо за видео, с наступившим Новым Годом всех! Здоровья всем, а остальное приложится.

  • @mykhailosafonov746
    @mykhailosafonov746 4 ปีที่แล้ว +2

    Спасибо за интересное и познавательное видео.
    С новогодними праздниками.

  • @ajdarseidzade688
    @ajdarseidzade688 4 ปีที่แล้ว +2

    Очень и очень полезная информация в ролике. Спасибо. С Новым Годом, Вас! С всеми прошедшими и будущими праздниками!

  • @vernnms78
    @vernnms78 4 ปีที่แล้ว +2

    С Новым Годом!
    Удачи, новых прибыльных проектов и благодарных подписчиков!

  • @denwerxampp4035
    @denwerxampp4035 4 ปีที่แล้ว +2

    Посмотрел с большим интересом. Спасибо за контент.

  • @andrejliutsko3858
    @andrejliutsko3858 4 ปีที่แล้ว +1

    С новым Годом!
    За наводку на библиотеку спасибо.
    У меня самолично переписанная библиотека (SMS + GPRS + MQTT), и хоть и представлял, как все это запустить на машине состояний, но с FreeRTOS увязка с управлением в реальном времени делается на порядок проще.

  • @vernnms78
    @vernnms78 4 ปีที่แล้ว +1

    Приятно и познавательно смотрится.

  • @raven8867
    @raven8867 4 ปีที่แล้ว +1

    С НГ ! Хороший канал , приятно смотреть !

  • @zzerocks
    @zzerocks 4 ปีที่แล้ว +4

    Если не нужно в программе динамическое создание/удаление сущностей FREErtos (задачи, очереди, таймеры и т.п.) используйте их статическое создание. При этом вы сами выделяете буферы под нужды этих сущностей и уже на этапе компиляции вы точно знаете, что ОС памяти больше не пожрёт.

  • @ИгорьПрокофьев-з5б
    @ИгорьПрокофьев-з5б 3 ปีที่แล้ว +1

    Лично я начинал программирование в среде "ОВЕН ЛОДЖИК" на программируемых реле. И всем даю совет: начинайте с ПР200. Очень легкая программа по весу, а по функциональным возможностям она может практически все. Так что покупайте программируемые реле ОВЕН Автоматика" и получайте удовольствие.

  • @ГеннадийГром-в8ю
    @ГеннадийГром-в8ю 4 ปีที่แล้ว +1

    на 02:15 "надо обладать какими-то навыками программирования этого ОвнА!" - это колоссально! С НГ-21! 👍😁🤪

  • @BB-ti9bf
    @BB-ti9bf 4 ปีที่แล้ว +2

    2:19 тонко и в точку.
    Особенно поглумился показывая цены на овно и говоря что это совсем недорого 😁

    • @valkoder_ex305
      @valkoder_ex305 4 ปีที่แล้ว +2

      А что с ценами не так? Сколько времени, будучи электронщиком и программистом, вам потребуется чтобы сделать аналог, да ещё отладить и софт и аппаратную часть, разработать корпус? Хорошо, если вы поставите это соседу чтобы хоть как то отбить временные и финансовые затраты. Но стоит оно того ради единичного устройства? А с соседом так и вообщем беда, по закону подлости сломается именно тогда, когда вы с женой поедете на долгожданные запланированные выходные, оставив детей, в мини медовый месяц, а тут вам сосед звонит, караул, мол твоя система не работает, дом сейчас замёрзнет, трубы полопаются, приезжай.

    • @BB-ti9bf
      @BB-ti9bf 4 ปีที่แล้ว +1

      @@valkoder_ex305 с ценами не так то, что это крупносерийные изделия и вскрывая тех же овнов - понятно что в серии их цена стремится к 0, там нет специальных дорогиз мс от burr brown и прочего дорогого и навороченного, а они простенькие плк продают по цене "от" 15
      всю автоматизацию решаю узко заточенными изделиями на мк, обычно от плк берется только какая-то небольшая доля его возможностей. Если не горит пожар и никто не тонет, то на мой взгляд - кастом вне конкуренции, но могу ошибаться.
      А по практике мои изделия сотнями работают по стране, ни одного программного глюка так и не было, потому что они заточены под задачу, крутится необходимый минимум, а не воюют между собой глюки килотонн закрытых библиотек и избыточного кода.

    • @valkoder_ex305
      @valkoder_ex305 4 ปีที่แล้ว

      @@BB-ti9bf ну у овена и софт и маркетинг и поддержка и концепция, это все по определению не делается одним человеком. а где есть коллектив, там есть и смежные затраты. А по надежности так на то есть стандарты и сертификаты и насколько я знаю какой то у них есть. В космос конечно его никто отправлять не будет, он другую задачу решает. а по поводу закрытых библиотек, ничего сказать не могу, какие используют их разработчики не в курсе.

    • @BB-ti9bf
      @BB-ti9bf 4 ปีที่แล้ว +3

      @@valkoder_ex305 посмотрите хотя бы на панели оператора и сравните с китайскими, всякие другие изделия, типа поплавковых датчиков - тупо переупакованный, даже не перемаркированный алиэкспресс, а цена сразу кратно возрастает. Я был бы рад перепаковывать китай и продавать раз в 5-6 дороже, рассказывая лапшу про накладные расходы. Вот вам и маркетинг и концепция 😁
      И еще лирика вдогонку - как-то давно мой босс тогда ездил на конференцию Hewlett Packard и задал вопрос а че это у вас расходка такая дорогая, прям ПЦ дорогая, на что получил ответ что они сильно вкладываются в новые технологии и совершенствование их производства. Осмотр, разборка и эксплуатация расходки показали что в реале дико дорогие и новые технологии это перемещение направляющих на картриджах чтобы предыдущее поколение не влезало в принтеры вместо новых, раза в 3 дороже 🤣. Все остальное, вплоть до меток пресс форм - полностью такое же. Спиливаем упор и картридж за 1200 р (тогда) влезал вместо картриджа за 3600 и прекрасно работал. Отака %уйня, малята.

    • @dazzershell
      @dazzershell 3 ปีที่แล้ว

      @@BB-ti9bf Коллега мучается с ХулиПакардом, уже 3 принтер домой покупает. Из магазина в нем краски на донышке, картридж новый сразу покупать. Новые картриджи сейчас чипами защищены, просто тупо залить краску нельзя. Печатаешь 1000 страниц и все, хоть пустых белых, там счетчик, который сбросить тоже нельзя. Раньше их как-то ломали, сейчас хер. Он купил китайский чип, типа ломаный, перепаял - ошибка. Самый зашквар это Кэннон, по слухам при попытке поставить что-то чужое или как-то хакнуть весь принтер становится кирпичом. Скоро старые принтеры на аукционах начнут продавать.

  • @DmitryTan
    @DmitryTan 4 ปีที่แล้ว +1

    Отлично!

  • @asajook8999
    @asajook8999 4 ปีที่แล้ว +1

    С прошедшим вас новым годом! Творческих успехов!

  • @Avtovet
    @Avtovet 4 ปีที่แล้ว +1

    Спасибо за информацию!

  • @alexanderkalashnikov2067
    @alexanderkalashnikov2067 4 ปีที่แล้ว +1

    Интересно.

  • @АлексейШутко
    @АлексейШутко 3 ปีที่แล้ว

    Делал подобную штуку... Намучился поначалу достаточно. Самое весёлое что sms запроса баланса, выполняемое перенаправлением запроса с телефона клиента и отправдение ответа обратно клиенту отстраивать приходится вживую и результат подчас неизвестен.

  • @serggorod1423
    @serggorod1423 ปีที่แล้ว

    Странно лайка нет на этом 100 500 раз смотренном видео!

    • @serggorod1423
      @serggorod1423 ปีที่แล้ว

      Просматриваю все Рт ОС

  • @Liberhaim
    @Liberhaim 4 ปีที่แล้ว +2

    С новым годом! Надеюсь у вас появится желание рассказать нам о тонкостях в разработки устройств при использовании FREERtos. Для меня это важно, т.к. я разрабатываю устройство

  • @fokin91
    @fokin91 4 ปีที่แล้ว +4

    Спасибо за видео! еще хотелось бы видео на тему энергопотребления на freeRTOS. На русском языке что то не особо много информации на эту тему.

  • @КинобийОбиван
    @КинобийОбиван 4 ปีที่แล้ว +2

    Ребята, может кто подскажет, где можно посмотреть подобный проект только без СМС оповещения, а с непоср. с HTTP-запросами (post, get) на сервер. Хочется ещё и простенький мониторинг организовать у себя с push уведомлениями на телефон.

    • @sozdatelEd
      @sozdatelEd 4 ปีที่แล้ว +1

      там нет ничего сложного. регистрируемся указав APN, USER и PASS и несколькими командами отправляем POST и GET запросы. Если СИМ-карта от провайдера уже предназначена для умных устройств, то можно и не указывать APN, USER и PASS, а сразу подключаться к интернету командой AT+SAPBR=1,1
      а подсмотреть можно вот тут: sampawno.ru/viewtopic.php?f=116&t=13159
      Вообще много статей по этому поводу есть. Можно в документации к GSM-модулю почитать про HTTP запросы. Обычно производители прям в документации приводят примеры запросов/ответов.

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 4 ปีที่แล้ว +1

    С Новым Годом, Владимир!!! Огромное спасибо за ролик - прямо яичко к христову дню!!! Вопрос: Пакеты ответов от модема идут сплошными пакетами или могут быть перерывы ? Принимаю через DMA по прерыванию IDLE.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Ответы модем всегда передает сплошным потоком.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Еще вопрос.Извините что не задал сразу. А 2 пакета не могут "склеиться" ? Всегда ли между ними есть задержка больше времени передачи одного байта?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Нет не могут.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Спасибо за ответы. Но из них вытекает следующий вопрос - а зачем тогда принимать по 1му байту? Можно заказать DMA заведомо большую длинну для приема и включить прерывание IDLE порта. Как IDLE сработает - DMA останавливаем, снимаем флаг IDLE, данные в очередь, перезапускаем DMA. Или какие-то проблемы могут быть при таком варианте?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Это диалог. Мы что-то говорим модулю, он отвечает. Бывает что и он нам может что-либо написать, к примеру сообщить о звонке. В этом случае и dma и irq использовать можно, но все равно желательно анализировать возвращенную модулем информацию.

  • @sailtogether3236
    @sailtogether3236 2 ปีที่แล้ว

    А я при инициализации заполняю всё между heap и stack шаблоном, и периодически проверяю потом, сколько памяти ещё содержит шаблон. Т.о., мониторю не только текущий "вылет", но и был ли он между проверками. Хотя, если пересечение было, но не было перезаписи содержимого, то, увы, не покажет. Наверно, банальщину рассказываю?

  • @felixtsipis
    @felixtsipis 4 ปีที่แล้ว +1

    Всех с Новым Годом!
    Спасибо за видео. Очень хорошое объяснение.
    Если не секрет, сколЬко у Вас ушло времени на
    создание первой рабочей версии кода для этого проекта?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Первый вариант прошивки был создан часов за 50-60. Много времени на то чтобы осмыслить структуру и написание работы с gsm модулем. Команды писались очень быстро. Там же регулярные выражения. Ну и руководство по эксплуатации и документация долго.

    • @t966rt
      @t966rt 4 ปีที่แล้ว

      @@VladimirMedintsev с НГ! а что используете для регулярных выражений?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      @@t966rt библиотеку SLRE

    • @t966rt
      @t966rt 4 ปีที่แล้ว

      @@VladimirMedintsev спасибо

  • @vladzoz6301
    @vladzoz6301 4 ปีที่แล้ว

    Если был опыт работы с EmWin, будьте любезны рассказать о ней, о подводных камнях.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Буду краток. Она работает. Если с ней будет проект, то покажу.

    • @vladzoz6301
      @vladzoz6301 4 ปีที่แล้ว

      @@VladimirMedintsev Это понятно, работает и у меня, после танцев у костра. Интересует переключение между окнами, только Ltd или с fmc тоже работает и как. Не происходит отрисовка на переключенное окно, но кнопки, слайдеры, работают, но их не видно, так как остаётся отрисованное ранее..

  • @serggorod1423
    @serggorod1423 ปีที่แล้ว

    20:00 больше , для начинающих !

  • @awwsum
    @awwsum 4 ปีที่แล้ว

    Вот бы такой же девайс только чтоб общался по GPRS (mqtt сейчас в моде) и какой-нибудь простецкий интерпретатор для обработки логики. Такая штука много где бы пригодилась.

  • @didim99
    @didim99 4 ปีที่แล้ว +2

    13:13 обратил внимание, что автор распространяет библиотеку по лицензии GPL v3. Возник вопрос об отношении вашей команды разработчиков к данному вопросу. Ведь GPL (не Lesser GPL, а обычная) требует, чтобы софт, использующий GPL-код в своём составе, также распространялся по лицензии GPL. Также данная лицензия предусматривает, что в случае распространения ПО в виде бинарных файлов, встроенных в физическое устройство, любой владелец данного устройства имеет право затребовать предоставления исходников.
    Всё это не очень вяжется с коммерческими разработками.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +2

      А в чем собственно сложность? Каждый покупатель устройства может у нас получить полный комплект исходных кодов прошивки контроллера. В этом нет абсолютно никакого секрета.

    • @didim99
      @didim99 4 ปีที่แล้ว

      @@VladimirMedintsev вон оно как, в таком случае вопросов нет. :)

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Я извиняюсь, а устройство дорогое ?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      @@МихаилТиунов-с7д Не готов ответить.

  • @Proektirovshik
    @Proektirovshik 4 ปีที่แล้ว +3

    Интересно ОВЕН звучит в ваших устах. Но сглашусь, так как раньше юзал плк или скорее плк юзали меня...

  • @yuriyborys8046
    @yuriyborys8046 4 ปีที่แล้ว

    А что у вашего GSM модуля нет выхода сообщающего о звонке или СМС. Недавно работал с SIM808, там есть ножка называется RI - ring interrupt, прижимается к земле на весь период входящего звонка (вызова), или дает пульс, если СМС пришел. Удобненько.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Да в принципе мало кто эту ножку использует. Гораздо удобнее написать хороший процессинг и полноценно работать в символьном виде.

    • @yuriyborys8046
      @yuriyborys8046 4 ปีที่แล้ว

      @@VladimirMedintsev Еще так, для информации. Насчет функции отсутствия сим карточки. На некоторых холдерах для карты (не всех) есть ножка CP - card present. Может понадобиться когда-нибудь.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Спасибо, я знаю, об этом написано в даташите на некоторые модули. Также я знаю как подключать 2 сим к одному модулю.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Я искренне благодарен, просто так получилось что в свое время с модулями не плохо разобрался по ним даже есть несколько видео на канале.

    • @yuriyborys8046
      @yuriyborys8046 4 ปีที่แล้ว

      @@VladimirMedintsev Спасибо вам за ваши видео. Может вам будет интересен этот модуль - ai-thinker-open.github.io/GPRS_C_SDK_DOC/en/hardware/a9g.html Еще документация - docs.ai-thinker.com/en/gprs/a9g . В чем прикол - он с GPS и что ему можно писать свою прошивку и использовать standalone . Правда СДК для ГНУ только.

  • @androidpasha
    @androidpasha 3 ปีที่แล้ว

    Я не понял чем ОС+библиотеки отличаются от ардуино, о котором вы говорили что там может быть куча ошибок в библиотеках.

  • @НиколайПр-з3в
    @НиколайПр-з3в 4 ปีที่แล้ว +1

    Делал ПО для магазина, которое отсылало своим клиентам СМС - было большое кол-во жалоб о неполучении СМС. Проделал следующее: 8 марта в течение для ПО отослало на мой номер 100 СМС - результат удручающий - 5 СМС вообще не пришло в течении 3-х дней, 2 СМС пришли через 2 дня, 4 СМС пришли на следующий день и 20 СМС пришли более чем через 2 часа. ПО слало СМС через мобильный телефон и в телефоне все 100 были как отправлены, начали разбираться с оператором сотовой связи и то о чем он нам поведал повергло в шок - они не гарантируют доставку СМС даже если сняли за его у вас деньги, более того они и не гарантируют срок, в течении которого СМС будет доставлено. Это Беларусь, оператор MTC, а неужели в России иначе?
    Читал в инете - что грабанули квартиру, вывезли всю мебель - хозяин как только получил СМС от сигнализации сразу выехал домой но грабителей уже не застал, соседи сказали что вывозили мебель несколько часов.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Много загадочных вещей происходит в Белоруссии. В принципе у нас СМС работают достаточно стабильно. Доставка до 3х минут это максимум.

    • @НиколайПр-з3в
      @НиколайПр-з3в 3 ปีที่แล้ว

      @@sergsapov2927 - WebMoney так и делают - там звонок даже в другую страну при попытке входа в их кабинет. Так что в России видать с СМС тоже не все гладко.

  • @DirectionToTheTop
    @DirectionToTheTop 4 ปีที่แล้ว

    Хотелось бы видеть название среды разроботки в названии ролика.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      А зачем выносить название среды разработки в название, если ролик совершенно о другом?

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 4 ปีที่แล้ว

    Тоже налетел на проблему длинны данных в очереди. У меня получилось сделать буфер в 64 байта всего и при этом очередь только из 2х элементов. Ставлю 4 элемента - вешается. Это мало. М66 на запрос ATI возвращает 59 байт. Как быть? У Вас решения не нашлось?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Необходимо увеличивать размер памяти доступный для операционной системы. В ее настройках.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Спасибо!!!

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Сегодня позанимался этой проблемой. Нашел вот какое решение - если настроить в очереди в CubeMX ( а до этого я их создавал руками) - всё прекрасно работает. Размер памяти операционной системы (если я правильно понял - TOTAL_HEAP_SIZE) не изменился, т.е, как был до добавления очередей 3072 так и остался. Как-то странно и непонятно.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 ปีที่แล้ว

      @@sergsapov2927 Чтобы потом, в другой задаче, его из очереди забрать

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 ปีที่แล้ว

      @@sergsapov2927 Дело в том, что у модема есть незапрашиваемые сообщения. Например - при получении SMS он передает сообщение +CMTI:... У меня еще сложнее - модем подключается к серверу по UDP или TCP протоколу и в любой момент может прилететь запрос от сервера. Поэтому я не могу, послав запрос, ждать ответа именно на этот запрос. Я посылаю запросы, а полученные ответы кладу в очередь, достаю их из очереди, обрабатываю и формирую новые запросы.Если надо дождаться какого-то ответа - не формирую новый запрос, пока ответ не придет. Как-то так.

  • @StahLHerZRocK
    @StahLHerZRocK ปีที่แล้ว

    а как поведет себя ваше устройство если отключится питание во время обновления конфига в NVM ?

    • @VladimirMedintsev
      @VladimirMedintsev  ปีที่แล้ว

      В реальной версии считает прошлый релиз конфига. Показан упрощенный подход.

  • @slavaglow6933
    @slavaglow6933 4 ปีที่แล้ว +1

    Интересно и познавательно. Спасибо.
    А из каких соображений выбирается начальный адрес FLASH_CONFIG_START_ADR что-бы не попасть на программный код?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Конечно

    • @simwhite9187
      @simwhite9187 4 ปีที่แล้ว

      а как определять и задавать адреса?

    • @andrejliutsko3858
      @andrejliutsko3858 4 ปีที่แล้ว

      @@simwhite9187 В настройках линковщика.

  • @robo_omsk
    @robo_omsk 4 ปีที่แล้ว

    Здравствуйте, Владимир! Хотел бы у Вас поучиться реализации проверки дребезга контактов. Не могли бы Вы более подробно объяснить как это работает?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Все очень просто. Это переменная 8 бит. Каждый раз при проверке состояния входа мы устанавливаем младший бит в 1 если на входе логический 1 и в 0 если 0. Затем делаем сдвиг влево. Проверяем если там 0хFF значит уверенно сработали Если меньше то не сработали.

    • @robo_omsk
      @robo_omsk 4 ปีที่แล้ว

      @@VladimirMedintsev интересно, первый раз вижу такой способ, мне надо проникнуться попробовать. Спасибо за помощь!

    • @robo_omsk
      @robo_omsk 4 ปีที่แล้ว

      @@VladimirMedintsev а такой способ можно применять в прерываниях?

  • @StahLHerZRocK
    @StahLHerZRocK ปีที่แล้ว

    А если бы входов было еще больше, то было бы еще больше однотипных if else ?))

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 4 ปีที่แล้ว

    Ещё один вопрос, с вашего позволения. Получил список SMS командой
    AT+CMGL="ALL". Пытаюсь прочитать SMS командой AT+CMGR=1. Получаю ту же строку что и при чтении списка, для SMS с индексом 1. В ней есть индекс, номер телефона, дата, время. Текста SMS нет. Что-то я никак не догоню как получить текст. Может какие-то настройки перед этим сменить? не подскажете? Получаю такую строку
    AT+CMGR=1
    +CMGR: "REC READ","+79859910884","","2021/01/06 04:49:12+1

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Необходимо установить режим - текст. Ну а вообще вам необходимо найти на свой gsm модуль руководство по АТ командам, там подробно все описано.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Руководство, понятно, читаю. И режим текст установил
      AT+CMGF=1
      AT+CMGF=1
      OK
      или его надо непосредственно перед каждым запросом устанавливать ?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Нет и одного раза хватит.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Помогите, а я донатиков кину. Модем M66 (по вашей рекомендации)

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 ปีที่แล้ว

      @@VladimirMedintsev Ну да. Иначе на AT+CMGL="ALL" пришел бы ERROR

  • @user-ww1iw4bi8k
    @user-ww1iw4bi8k 4 ปีที่แล้ว

    Вы плохо искали, есть готовые устройства ccu825 например, российской разработки

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      В каком смысле плохо искали? Я и не должен искать что-либо. Есть заказчик есть производство. А то, что какой-то коллектив делает нечто подобное, ну это же просто замечательно. Могу только пожелать им хороших заказчиков в новом году. Но по какой-то причине заказчик пришел к нам а не к ребятам из Тулы.

  • @CrazyPit
    @CrazyPit 4 ปีที่แล้ว +1

    а я подсел на ESP Easy. удобно добротно хорошо. бесплатно

  • @YuriyLogvin
    @YuriyLogvin 4 ปีที่แล้ว

    Все проекты на С? С++ не используете? Если не используете - то по каким причинам?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +1

      Причина крайне проста, у каждого языка свое предназначение. Свои сильные и слабые стороны. Я лично не вижу где в микроконтроллерах есть потребность в языке C++. Нет, ну откровенно говоря есть пара библиотек на c++ но это скорее экзотика.
      Более того, если вы посмотрите на всех производителей микроконтроллеров, то обнаружите что никто не использует c++ на низком уровне.

    • @YuriyLogvin
      @YuriyLogvin 4 ปีที่แล้ว +1

      @@VladimirMedintsev Производители не используют по простой причине - им нужно обеспечить соместимость с "С". Зачем им лишняя работа?
      У меня в сопровождении несколько проектов на микроконтроллерах, не мной зачатых на на С. Постоянно добавляются какие то "фишки". И сейчас их сопровождать - это Ад.
      С++ дает структуризацию. Понятно что употреблять С++ нужно с оглядками.
      Я для мелких проектов использую С. Для всех остальных - С++.
      Hal::LedRed(true) выглядит лучше чем led_red(TRUE) :)

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Не проблема, вы как разработчик можете использовать хоть Питон, хоть JavaScript. Но для того, чтобы удобно было писать и не пропадала лёгкость восприятия кода обычно создают BSP и дальше уже с его использованием.
      А что касается производителей и "зачем им лишняя работа" тут если следовать этой логике им вообще тогда писать бы на Basic, но нет они пишут на Си, потому что 99% кода для микроконтроллеров написано на Си.

    • @YuriyLogvin
      @YuriyLogvin 4 ปีที่แล้ว

      @@VladimirMedintsev BSP(HAL) - это само собой. Но ведь есть и логические подсистемы, которые взаимодействуют между собой... Например, у Вас 5 разных платежных терминалов - имеете несколько switch-case(или еще один уровень абстракции), которые прозрачности коду не добавляют. Я знаю "перца" который до сих пор на ассемблере все пишет и ничо...
      По поводу Basic - пример не удачный. Для МК стандарт - "С", который великолепно компилируется в С++ проектах. И зачем производителю "специфическая С++" библиотека вместо "универсальной С" библиотеки?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Юрий, я не планирую с вами спорить. Вы задали вопрос, я на него развернуто ответил. Если вам, как разработчику удобен С++ то это замечательно. Значит вы сделали правильный выбор и все хорошо. Я не вижу тут каких-то противоречий.

  • @NuWhite
    @NuWhite 4 ปีที่แล้ว

    А сколько FreeRTOS памяти жрет по умолчанию? На каких платформах имеет смысл использовать эту операционную систему, а не писать все функции проекта самостоятельно?

  • @YuriyIY
    @YuriyIY 4 ปีที่แล้ว

    Чет у меня еще мысль созрела. Если в программе много булевых переменных, можно ли их запихнуть в битовое поле? К примеру, так 8 булевых переменных можно впихнуть в один байт. Ведь они занимают 8х8 байт. Понятно, что ресурсов много. Но это же не комп, ресурсы не бесконечны.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      А вот как по мне, компиляторы сейчас умные, пусть у них голова и болит. Ну просто я понимаю немного оптимизировать код, но не до такой же степени.

    • @YuriyIY
      @YuriyIY 4 ปีที่แล้ว

      @@VladimirMedintsev Логично. Голова у них железная, пусть и гудит. Согласен. Потому, пока и забил.

    • @YuriyIY
      @YuriyIY 4 ปีที่แล้ว

      @@privateperson1468 Особенно, если учесть, что элементарные операции выполняются в разы быстрее. А битовые как раз и есть они самые. :-)

    • @YuriyIY
      @YuriyIY 4 ปีที่แล้ว

      @@privateperson1468 А 32 битные значения не используют память?

    • @АлександрСпицын-х1я
      @АлександрСпицын-х1я 4 ปีที่แล้ว

      std::bitset в помощь

  • @oskinru
    @oskinru 4 ปีที่แล้ว

    В FreeRTOS есть встроенные средства сбора статистики и диагностики. Почти всё настраивается через CubeMX, но для эффективного использования документацию по FreeRTOS придётся почитать. Про Keil не знаю - не пользую, а для CubeIDE/Eclipse есть удобный плагин для работы с этими данными: mcuoneclipse.com/2017/03/18/better-freertos-debugging-in-eclipse/ Ещё больше полезностей можно получить при использовании отладчика SEGGER J-Link, кстати для ST-Link есть прошивка, делающая из него J-Link.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Абсолютно верно, но только не из любого STLink можно сделать Jlink. Проще купить готовый.

    • @oskinru
      @oskinru 4 ปีที่แล้ว

      Только аккуратнее с готовыми - оригинальный стоит от €300, а клоны довольно часто бывают неполноценными до полной неработоспособности по назначению, сам попадал - из 4-х экземпляров с алиэкспрес 2 неправильные, внешне не отличаются, а схема совсем другая и видится только каким-то своим драйвером с очень урезанным функционалом, в Linux не работает совсем.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      @@oskinru ну не знаю, у меня клон и я им в принципе доволен. И куплен этот клон на АлиЭкспресс но у проверенного продавца. Все работает все довольны.

  • @rustybroom7071
    @rustybroom7071 3 ปีที่แล้ว

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 ปีที่แล้ว

      Не может, ведь вы память можете явно и не выделать, а просто использовать. Как ОС об этом узнает?

    • @rustybroom7071
      @rustybroom7071 3 ปีที่แล้ว

      @@VladimirMedintsev Из дескриптора задачи, вестимо. Хотя...в таких маленьких процах сделать нормальный менеджмент памяти трудно, конечно. ММУ-то нету.

    • @VladimirMedintsev
      @VladimirMedintsev  3 ปีที่แล้ว

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 ปีที่แล้ว

      На самом деле нет какой-то насущной проблемы. У freertos есть средство информирования о том, сколько свободной кучи и стека у вас осталось из выделенного под ОС. Остальное тоже посчитать не сложно. Это просто не всегда очевидно для тех кто пришел из мира больших компьютеров. По факту это проблема только для них.

    • @rustybroom7071
      @rustybroom7071 3 ปีที่แล้ว

      @@VladimirMedintsev Это да, но использовать динамическое выделение памяти в прерываниях могут только племянники Билла Хейса. Нормальным людям оно ни к чему.

  • @YuriyIY
    @YuriyIY 4 ปีที่แล้ว

    Терзают меня смутные подозрения, что в FreeRTOS борьбу с дребезгом можно организовать дешевле. К примеру, создать задачу с osDelay(100). И там отслеживать состояние входов. Выполнение задачи 10 раз в секунду гарантированно отсеет дребезг. Возможно, я не прав. Но я так делал. Работает.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Можно, конечно, разные способы применимы.

    • @proggarage
      @proggarage 4 ปีที่แล้ว +3

      При таком подходе, в ситуации когда в момент считывания происходит дребезг (или прилетает помеха), может возникнуть ложное срабатывание, либо задержка реакции на 100 мс, либо пропуск сигнала если его длительность менее 100 мс + время выполнения задач с более высоким приоритетом + время чтения.
      В некоторых случаях это не критично, но забывать об этом не стоит. Да, вероятность небольшая, но когда нужно сделать что-то более сложное чем моргание светодиодом, любая мелочь перерастает в проблему на удивление быстро.

    • @YuriyIY
      @YuriyIY 4 ปีที่แล้ว

      @@proggarage В этом ничего страшного нет. Именно для данного девайса. Время работы задачи сравнимо с временем срабатывания реле. Большинство клавиатур компьютерных (да и не только) так и работают. Сканируют всё поле раз 20 в секунду. Всё равно, самый тормоз тут, это человек. Пусть даже идеальная реакция будет, ну это 0.3 секунды. А это 300! мс. За это время можно раз 10 проверить клавишу на дребезг.

  • @DirectionToTheTop
    @DirectionToTheTop 4 ปีที่แล้ว +1

    Недавно автор расхваливал бесплатный CubeIDE, а примеры приводит в платном Keil.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      В чем связь? Если я что-то похвалил, то теперь должен только это и использовать?

  • @user-cp123pc5tk8d
    @user-cp123pc5tk8d 3 ปีที่แล้ว

    2:18 - "Тебе надо обладать навыками программирования этого Говна" ))))))

  • @ibrag2012
    @ibrag2012 4 ปีที่แล้ว +2

    Замислився: за великим рахунком потрібен менеджер пам'яті, але за ним піде своп (таке інше). Як досвідчений програміст стек відчуваю дупою, але що робити іншим? Може: якщо пристрій повільний, використовувати флешку чи диск?

  • @ДимаДима-к1н
    @ДимаДима-к1н 4 ปีที่แล้ว

    Пересмотрел компоновку...2018г ... вместе с этим видео зашло!
    th-cam.com/video/nFvoAI34aBI/w-d-xo.html
    ...Я НАЧИНАЮЩИЙ.... чё кричишь!!!
    3:03 По делу! Введение.
    5:15 Примеры ATкода...GSM ПОСТАНОВКА проблематики.
    7:26 Структурирование задачи.
    11:56 Примеры кода.
    13:10 Обзор библиотеки. Источник
    17:08 Объяснение кода.
    25:25 Пред упреждение граблей.
    НАДЕЮСЬ НА ПОДРОБНОЕ ПРОДОЛЖЕНИЕ!...

    • @ДимаДима-к1н
      @ДимаДима-к1н 4 ปีที่แล้ว

      НАДЕЮСЬ НА ПОДРОБНОЕ ПРОДОЛЖЕНИЕ!...
      8 лет учу стм... (подписал чужой проект 1н заработал(2016г))... то среда изменится...то код на с++, или нет дефайнов,... то код c/на не транспортируется,... то кубИДЕ(с детскими проблемами Эклипса) не работает программатор.
      Keill + Source Insight 3.5 + STM32 ST-LINK Utility = самые лучшие друзья!
      Читаю много статей и пытаюсь применить... но мало что получается, ... по тому что-б сделать что-то, нужно сделать многое за кадром..и начинаешь тонуть во вкладках.... на сегодня в опере 208 в хроме 54...во всех других(2х) настроен сессионный сброс(для поиска справки/подсказки).
      Накопал проект на Гите...который сразу работал...с нужным мне процессором 103.... определил его ка базовый!!! На основе (d:\ST\base) в папке бесе не низменно пробую пилить проекты(Время релиза 2-3 месяца (сам схемы платы за неделю)), пока все обрывки кода с интернета компасную.
      В качестве отладчика у меня в базовом проекте дисплей spi_320*400... на него вывожу магическую строку состояния..
      Хорошо бы ПОЛУЧИТЬ БАЗОВЫЙ ПРОЕКТ ОС на кубиде, со всеми пред настроенными параметрами, если это возможно!
      Как вы сказали"начинающему начинать...в одиночку"
      Имею 1,5 диплома...асемблер для Pic(1год работы)... в техникуме асемблер51/avr... и всякое не нужное г*но типа школьного паскаля и бэйсика. В универе ....a=~a*b|| c.... Хотя после нас уже учили с99.и ++

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      @@ДимаДима-к1н я ничего не понял из написанного. Если вы реально чего-то хотите, большая просьба сформулируйте мысль четко.

  • @AndreyOnAir
    @AndreyOnAir 4 ปีที่แล้ว +1

    +10

  • @Insideus2786
    @Insideus2786 4 ปีที่แล้ว

    Да, с этими буферАми так и есть...

  • @alekseibutyaev2318
    @alekseibutyaev2318 2 ปีที่แล้ว

    Ко коду сразу видно С, С++ и мало ресурсов в системе .. не то что нынешнее племя .. JAVA,C#, и прочие язычки .. всё вали кулём .. потом разберём...

  • @ЛштшфумАщвф
    @ЛштшфумАщвф 4 ปีที่แล้ว +1

    Вы, программисты, зажрались 15 тыщ для них небольшие деньги. Кто-то за меньшие деньги месяц карячится, чтобы вы могли сидеть и смотреть в свои телевизоры.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      У вас какие-то проблемы? Это не программистам нужно, а люди себе в дома и на предприятия ставят. Вам программисты чем не угодили? Никто не мешает взять книжку, выучить язык и тоже сидеть смотреть в свой телевизор.

    • @ЛштшфумАщвф
      @ЛштшфумАщвф 4 ปีที่แล้ว +1

      @@VladimirMedintsev против программистов ничего не имею. 15 тыщ это серьезные деньги.