Jump to content

    

yanvasilij

Свой
  • Content Count

    321
  • Joined

  • Last visited

Everything posted by yanvasilij


  1. Я решил описать процесс портирования yaffs, если кому интересно вот ссылка.
  2. Приветствую! У кого может есть полная спецификация протокола DNP 3.0, буду очень признателен, если поделитесь )).
  3. Не примеры я хотел, просто Вы не сразу упомянули с кем собираетесь работать "совместно". Поэтому я подумал про MasterScada. У них появился отдел, который пилит свое ядро и среду разработки к нему соответственно. Эти ребята, якобы (не знаю насколько успешно), портировали весь этот набор на контроллер отечественного Прософта. После этого начали активно искать еще заказчиков, которые тоже хотят свой контроллер. Парят, что у них все готово, кроме фолловера (который тоже типа скоро будет), так же говорят, что помогут с портированием, забрав часть работы на себя.
  4. Если Вы скачали Beremiz с оффициального сайта, то в директории \beremiz\tests, есть папка wxGlade, а в ней пример проекта. Этот вариант не MasterScada ли случаем?
  5. Мы тут недавно осваивали среду для контроллеров B&R. По сравнению с ней, Beremiz очень даже неплох, при том, что B&R это очень крупная контора (в России конечно они плохо распространены по сравнению с теми же сименсами, бредлями и шнайдерами). Я имею ввиду не дизайн (с дизайном там то в отличии от беремиза все в порядке), а функционал и степень глючности. А по поводу принять решение - какие собственно варианты - codesys, да isagraph? Так там, простите, та еще борода...
  6. В keil тоже самое, но там файл линковщика называется scatter-файлом подробнее о нем можно почитать например ТУТ, по синтаксису очень похож и на IAR и на gcc. Чтобы начать его редактировать нужно перейти в указанном ТС окне во вкладку Linker, там убрать галочку Use memory layot from target dialog, после этого станет активной строчка Scatter file, слева от этой строчки нажимаете на кнопку edit и открывается Scatter-файл на редактирование. Там вы можете объявлять секции внутри внешней ОЗУ и размещать в ней, что хотите, даже bss целых файлов. Например, есть у вас внешняя SDRAM по адресу 0x80000000 размером скажем 0x00010000 байт, и вы хотите разместить в ней всю оперативную память из файла blalbacode.cpp, тогда в scatter нужно добавить: RW_SDRAM1 0x80000000 0x00010000 {; RW data blablacode.o (+RW +ZI) }
  7. Приношу извинения за задержку, не было времени нормально все проверить. Выкладываю как есть, там все вперемешку, это даже не рабочий проект, а так просто попробовали. vibromonitoring_stm32f407.rar
  8. Выложу в понедельник - пример у меня на работе
  9. Ну речь идет о промышленном контроллере специального назначения, одно из требований время реакции изменение дискретного входа 20 мс (проц либо x86, либо ARM пока точно не определились какой). Мы так-то намерены использовать QNX. Я увидел эти рассуждения о винде и мне стало интересно, чисто гипотетически, насколько эти применимо.
  10. Разрешите и мне глупый вопрос, уж больно интересна тема. Были упомянуты инструменты и ОСи для реал-тайм и эмбед. Какие времена циклов может обеспечить Windows Embedded? И вообще насколько это актуально применение Windows Embedded в задачах с жесткими требования ко времени, например в автоматизации (есть примеры применения?)? Может ли она конкурировать, например, с QNX по совокупности факторов (цена, легкость в освоении, время на разработку, надежность и пр.)? Как там с портированием на самодельные аппаратные платформы?
  11. Направленность - автоматизация, собственный контроллер (вероятно недешёвый) с достаточно высокими требованиями к "реалтайму". По Вашему QNX тут актуален? Я не особо силен в системном программировании, поэтому вопрос возможно глупый: что тут лучше по совокупности факторов (скорость, стоимость, сложность разработки и т.д.) Linux+RTpatch или QNX? Тут наверно наоборот - разработчики должны будут сказать, что нам подходит под задачу. Я еще внимательно не разбирался, поэтому совершенно не представляю разницы :) P.S.: Спасибо за список литературы!
  12. Платить готовы. Я нашел этот html у нас на FTP, его достаточно?
  13. Можно Вас попросить более подробно изложить эту мысль. У нас в конторе ведутся активные разговоры по перспективам ее внедрения, уже даже дают разнарядки разработчикам начинать читать по этой системе литературу. Насколько я понял Вы не далеко не последний человек в QNX. Что то не так с актуальностью? И какую литературу Вы бы порекомендовали?
  14. Что значит "недоязык"? Ничего, что на C++ написано, пожалуй, наибольшее количество проектов по сравнению с другими языками? Ничего, что в системах где требуется максимально быстродействие нет альтернатив C/C++? А тот факт, что C++ является одним из самых универсальных языков, тоже не имеет значения? Ну да - многие вещи легче писать на выскоуровневых языках, но это не делает С++ "недоязыком". Попробуйте-ка на C# написать операционную систему, системную службу или системный драйвер - не выйдет. То, что некоторые вещи трудно или даже невозможно делать на С++ или C# или любом другом языке не делают его "недоязыком", это всего лишь вопрос оптимальной применимости инструмента к задаче. Это как если бы программист всю жизнь писавший веб службы на PHP, вдруг решил сделать все тоже самое на C++ и обнаружил, что так гораздо труднее, заявил что С++ плохой язык. Нет это не язык плохой, это программист просто мало что понимает. С++ на мой взгляд является одним из самых сложных языков, и дело тут в не в синтаксисе языка, а в том, что хороший С++ программист (себя я ним не отношу, не подумайте) должен знать и ориентироваться, как минимум, в stl/boost, которые невероятно громадны. А что касается python, то это, на мой взгляд, самой простой по порогу вхождения язык. Но он не так прост, как это кажется с первого взгляда, динамическая типизация с одной стороны открывает массу возможностей, а с другой стороны требует от программиста иного мышления, нежели в языках со статической типизацией. Обратите внимания, что Python входит в список самых распространенных и популярных языков. И те тысячи, сотни тысяч или более программистов, что работают на нем годами совсем не считают его "недоязыком". А вот товарищ со стороны, который не знает ни С++ ни Python, вот так берет и клеймит их "недоязыками". Вам самому не кажется это по меньшей мере странным?
  15. Доброго времени суток! Кто-нибудь озадачивался протоколом поднятием протокола Powerlink на своих железках? На сколько это объемный труд поднять ведомое устройство на, скажем, Cortex-M3/4? Местами попадаются ссылки, где люди вроде как занимаются этим. Кто-нибудь поделится соображениями на эту тему?
  16. У меня хром также ругается. Дело не в браузере.
  17. Это избитая холиварная тема, спорить на которую можно долго и нудно, самое главное бесполезно. Вы не обессудьте, что я выскажусь и на этом закончу, не вступая далее в полемику. Смысл такой: что spl, что hal, что opencm3 дают очевидные, на мой взгляд, преимущества: 1) не нужно тратить время на написание драйверов с нуля, при том что когда пишешь драйвера с нуля точно также допускаешь ошибки (выше по теме Вы можете это наблюдать). От чтения RM это конечно не освобождает, без этого никак. Там есть ошибки - не страшно, они отлавливаются на раз-два, было бы терпение и потом многократно используются. 2) hal, opencm3, и даже spl в отличии от самописных библиотек поддерживаются разработчиками и сообществом. Они развиваются и их функционал расширяется, ошибки внутри устраняются. Самописную же либу, поддерживает только один разработчик. 3) Тот же hal тянет за собой массу дополнительных библиотек (стек tcp, файловую систему, стек usb и прочее). Вы скажете, что это можно поднять самому скачав отдельно? Но зачем делать работу второй раз и тратить на нее время? Не проще ли разобраться в том, что уже сделано? 4) Переносимость между сериями и проектами. Код написанный другим разработчиками под hal, spl, opencm3, легко перенести к себе другому разработчику, который тоже использует hal, spl, opencm3. Это какая-никакая унификация. А если каждый будет колхозить свои библиотеки, тот как обмениваться наработками? Можно но уже сложнее, ибо низкоуровневые вещи нужно переписывать. А разговоры про избыточность, мне кажется надуманными. Покажите мне сравнительные тесты, в которых наглядно показывается что по вине hal программа начинает работать в разы медленнее. В моей практике такого не было. Большее потребление памяти? Сколько раз в жизни у вас было такое, что на cortex процах у вас кончалась память? Если такое и было, то держу пари это точно происходило не по вине hal. Код громоздкий и непонятный? Это уже чистой воды субъективизм, найдется приличное количество народу, кто не согласится с этим. В добавок ко всему hal достаточно гибкий совсем не обязательно использовать все его конструкции. Ну вот вообщем такое мое мнение. Извините за оффтоп.
  18. Для этого же проца не нашел в свое время SPL. Пришлось сделать HAL. Немного не привычно, но не страшно, разобраться можно.
  19. Странные ошибки, он не жалуется на отсутствие пакетов, в одном случае он не распознал символ интернационализации, в другом не смог импортировать PLCOpenEditor.py, в третьем не смог импортировать svgui.py. Какая версия питона у Вас? Какой файл вы запускаете? Если хотите запустить "голый" беремиз нужен Beremiz.py из папки Beremiz. Если хотите запустить среду Павла, со всеми ее возможностями под stm32, нужен файл yaplcide.py из папки IDE. В качестве среды я использую Pycharm, но вы попробуйте просто из под командной строки запустить для начала.
  20. Репозитарий правильный, если быть точным это один из форков официального репозитария (принадлежит paulbell). Если хотите просто развернуть среду Павла, то можно воспользоваться установщиком: https://github.com/nucleron/YAPLC/releases. Под win7 он запускается без проблем, под linux не знаю. Если хотите развернуть все, склонировав его репозитарии то тут список всех необходимых репозитариев: https://sourceforge.net/p/beremiz/mailman/message/35506039/. Один или несколько репозитариев (я уже не помню точно) нужно преварительно собрать разумеется. В качестве таргетов там есть платформы на базе stm32, какие именно лучше посмотреть в исходниках или спросить у автора, сам не помню.
  21. Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.
  22. Я настроил максимальную длинну на 1460, я имею ввиду настройки DMA дескрипторов. Думаете в этом дело? Завтра попробую изменить. И еще, в попытке прояснить ситуацию сделал следующее на машине с linux запустил интенсивный пинг (моя плата соединена с ней прямым кабелем напрямую) и при помощи ПО ethtool (под win я не нашел ничего подобного) заглянул в статистику. Выяснил, что linux-машина тоже ловит пакеты с битым CRC. После этого взял другую борду (stm32f429 discovery) с другой физикой, поднял на ней простой проект, и запинговал аналогичным образом. Пакетов с битым CRC linux в этом случае не обнаружил. Очень похоже на что-то аппаратное, но не уверен.
  23. Нет. Я имел ввиду __publish_X и __retrive_X, которые реализует каждый модуль, при кодогерации. Признаться, после вашего сообщения, сам засомневался, что задал вопрос в ML. Тот же Canfestival реализован, как модуль к Beremiz'у, поэтому и реализует свои __publish_X и __retrive_X при генерации исходников.
  24. Я эту проблему не решал. Но если я правильно все понял, нужно править не accessor.h, а сам модуль CANOpen в беремизе. Кодогенерацией занимается метод CTNGenerate_C(). Если переменные нужно записывать через методы set/get ODentry, а не напрямую, то можно, как вариант отслеживать изменение и производить запись в переменные объектного словаря в функциях __publish и __retrive, которые вызываются соответственно до и после пользовательского цикла. И еще, просто в качестве совета, такие вопросы эффективнее задавать mailing list - ответят быстрее и подробнее.