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

Поделиться
HTML-код
  • Опубликовано: 2 дек 2024

Комментарии • 165

  • @victorlowlevel8063
    @victorlowlevel8063 3 года назад +24

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

  • @valkoder_ex305
    @valkoder_ex305 3 года назад +1

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

    • @dazzershell
      @dazzershell 3 года назад

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

  • @victorlowlevel8063
    @victorlowlevel8063 3 года назад +3

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

    • @олегспирин-р4р
      @олегспирин-р4р 3 года назад

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

    • @victorlowlevel8063
      @victorlowlevel8063 3 года назад

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

    • @victorlowlevel8063
      @victorlowlevel8063 3 года назад

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

  • @ИванСидоров-к9м
    @ИванСидоров-к9м 3 года назад +3

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

  • @Liberhaim
    @Liberhaim 3 года назад +29

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

    • @johnkoffee
      @johnkoffee 3 года назад

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

    • @Liberhaim
      @Liberhaim 3 года назад +1

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

    • @awwsum
      @awwsum 3 года назад +2

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

    • @АлександрСпицын-х1я
      @АлександрСпицын-х1я 3 года назад +1

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

    • @SIM31r
      @SIM31r 3 года назад

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

  • @vernnms78
    @vernnms78 3 года назад +2

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

  • @ajdarseidzade688
    @ajdarseidzade688 3 года назад +2

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

  • @mykhailosafonov746
    @mykhailosafonov746 3 года назад +2

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

  • @andrejliutsko3858
    @andrejliutsko3858 3 года назад +1

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

  • @denwerxampp4035
    @denwerxampp4035 3 года назад +2

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

  • @raven8867
    @raven8867 3 года назад +1

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

  • @asajook8999
    @asajook8999 3 года назад +1

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

  • @ГеннадийГром-в8ю
    @ГеннадийГром-в8ю 3 года назад +1

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

  • @vernnms78
    @vernnms78 3 года назад +1

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

  • @BB-ti9bf
    @BB-ti9bf 3 года назад +2

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

    • @valkoder_ex305
      @valkoder_ex305 3 года назад +2

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

    • @BB-ti9bf
      @BB-ti9bf 3 года назад +1

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

    • @valkoder_ex305
      @valkoder_ex305 3 года назад

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

    • @BB-ti9bf
      @BB-ti9bf 3 года назад +3

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

    • @dazzershell
      @dazzershell 3 года назад

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

  • @Avtovet
    @Avtovet 3 года назад +1

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

  • @Liberhaim
    @Liberhaim 3 года назад +2

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

  • @ИгорьПрокофьев-з5б
    @ИгорьПрокофьев-з5б 3 года назад +1

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

  • @zzerocks
    @zzerocks 3 года назад +4

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

  • @serggorod1423
    @serggorod1423 Год назад

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

    • @serggorod1423
      @serggorod1423 Год назад

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

  • @DmitryTan
    @DmitryTan 3 года назад +1

    Отлично!

  • @fokin91
    @fokin91 3 года назад +4

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

  • @alexanderkalashnikov2067
    @alexanderkalashnikov2067 3 года назад +1

    Интересно.

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

      Нет не могут.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @АлексейШутко
    @АлексейШутко 3 года назад

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

  • @Proektirovshik
    @Proektirovshik 3 года назад +3

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

  • @felixtsipis
    @felixtsipis 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @t966rt
      @t966rt 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @t966rt
      @t966rt 3 года назад

      @@VladimirMedintsev спасибо

  • @НиколайПр-з3в
    @НиколайПр-з3в 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @НиколайПр-з3в
      @НиколайПр-з3в 3 года назад

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

  • @КинобийОбиван
    @КинобийОбиван 3 года назад +2

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

    • @sozdatelEd
      @sozdatelEd 3 года назад +1

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

  • @sailtogether3236
    @sailtogether3236 2 года назад

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

  • @serggorod1423
    @serggorod1423 Год назад

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

  • @awwsum
    @awwsum 3 года назад

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

  • @slavaglow6933
    @slavaglow6933 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

      Конечно

    • @simwhite9187
      @simwhite9187 3 года назад

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

    • @andrejliutsko3858
      @andrejliutsko3858 3 года назад

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

  • @didim99
    @didim99 3 года назад +2

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

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

    • @didim99
      @didim99 3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @DirectionToTheTop
    @DirectionToTheTop 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @vladzoz6301
    @vladzoz6301 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @vladzoz6301
      @vladzoz6301 3 года назад

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

  • @user-cp123pc5tk8d
    @user-cp123pc5tk8d 3 года назад

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

  • @CrazyPit
    @CrazyPit 3 года назад +1

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

  • @robo_omsk
    @robo_omsk 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @robo_omsk
      @robo_omsk 3 года назад

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

    • @robo_omsk
      @robo_omsk 3 года назад

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

  • @androidpasha
    @androidpasha 3 года назад

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

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 3 года назад

    Ещё один вопрос, с вашего позволения. Получил список 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  3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

  • @yuriyborys8046
    @yuriyborys8046 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @yuriyborys8046
      @yuriyborys8046 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @yuriyborys8046
      @yuriyborys8046 3 года назад

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

  • @user-ww1iw4bi8k
    @user-ww1iw4bi8k 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @StahLHerZRocK
    @StahLHerZRocK Год назад

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

  • @StahLHerZRocK
    @StahLHerZRocK Год назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  Год назад

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

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 3 года назад

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

  • @ДимаДима-к1н
    @ДимаДима-к1н 3 года назад

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

    • @ДимаДима-к1н
      @ДимаДима-к1н 3 года назад

      НАДЕЮСЬ НА ПОДРОБНОЕ ПРОДОЛЖЕНИЕ!...
      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  3 года назад

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

  • @YuriyLogvin
    @YuriyLogvin 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +1

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

    • @YuriyLogvin
      @YuriyLogvin 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @YuriyLogvin
      @YuriyLogvin 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @YuriyIY
    @YuriyIY 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @YuriyIY
      @YuriyIY 3 года назад

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

    • @YuriyIY
      @YuriyIY 3 года назад

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

    • @YuriyIY
      @YuriyIY 3 года назад

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

    • @АлександрСпицын-х1я
      @АлександрСпицын-х1я 3 года назад

      std::bitset в помощь

  • @NuWhite
    @NuWhite 3 года назад

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

  • @DirectionToTheTop
    @DirectionToTheTop 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @YuriyIY
    @YuriyIY 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @proggarage
      @proggarage 3 года назад +3

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

    • @YuriyIY
      @YuriyIY 3 года назад

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

  • @AndreyOnAir
    @AndreyOnAir 3 года назад +1

    +10

  • @rustybroom7071
    @rustybroom7071 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @rustybroom7071
      @rustybroom7071 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @rustybroom7071
      @rustybroom7071 3 года назад

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

  • @oskinru
    @oskinru 3 года назад

    В 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  3 года назад

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

    • @oskinru
      @oskinru 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @ibrag2012
    @ibrag2012 3 года назад +2

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

  • @Insideus2786
    @Insideus2786 3 года назад

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

  • @alekseibutyaev2318
    @alekseibutyaev2318 2 года назад

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

  • @ЛштшфумАщвф
    @ЛштшфумАщвф 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @ЛштшфумАщвф
      @ЛштшфумАщвф 3 года назад +1

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