Страница 17 из 117 ПерваяПервая ... 715161718192767 ... ПоследняяПоследняя
Показано с 161 по 170 из 1349

Тема: Hardella IDE

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Eugene.A Посмотреть сообщение
    Лучше бы вот с этим что-нибудь сделали:2016-06-30_125542.jpg
    Это к кому обращение?

    Цитата Сообщение от Eugene.A Посмотреть сообщение
    Разве тут можно что-нибудь понять?
    Да, там ничего понять невозможно.

  2. #2

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Это к кому обращение?
    Документ с сайта Овена, стало быть, к ним.

  3. #3

    По умолчанию

    Цитата Сообщение от Eugene.A Посмотреть сообщение
    Документ с сайта Овена, стало быть, к ним.
    Мне, конечно, импонирует, что мою тему не забывают. Но про доработку документации ОВЕН'а лучше отдельную тему(ы) заводить.

  4. #4

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Мне, конечно, импонирует, что мою тему не забывают. Но про доработку документации ОВЕН'а лучше отдельную тему(ы) заводить.
    Да документ-то полбеды, сам Овен Лоджик удручает, после LOGO!Soft Comfort, например. Я и сам сколько пытался нарисовать красиво, весь в синяках был. Может, в нём надо каким-то тайным знанием обладать?
    А здесь вроде тема про доработку сред программирования?

  5. #5
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,150

    По умолчанию

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

  6. #6

    По умолчанию

    Цитата Сообщение от rovki Посмотреть сообщение
    Если пописать входа\выхода ,то элементарно ...Сложно читать на китайском ,когда учил финский ...Хотя причесать схему не мешало бы ,особенно связи поверх элементов .
    А вы на каком сейчас написали? Куда что пописать? Где ударение?

  7. #7

    По умолчанию

    Внезапно оказывается, что есть те, кто качают и пробуют Hardella:
    телезрители_интересуются.png

  8. #8

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Сделал новым подходом программу, мигающую двумя выходами, залил в ПЛК -- работает.

    Надо будет проверить обмен данными, входы и можно выпускать обновление Hardella.
    Обмен проверил -- работает. Выходы мигают, обмен данными между HOST и PRU идёт.
    Входы как-нибудь потом, на свежую голову, проверю, ибо не хочется сдуру спалить ПЛК.

    PRU берёт BOOL из основной программы и записывает его в другую переменную.
    Снимок экрана 2016-10-26 в 0.30.41.png

    В КДС замыкаем через NOT и получаем цветомузыку.
    Снимок экрана 2016-10-26 в 0.31.37.png

    Интервал мигания я сделал за счёт "0.25сек цикла PRU".
    Снимок экрана 2016-10-26 в 0.32.07.png


    Результат:
    BzjkL7Mp4V.gif

    PS. Как же блок питания пищит адски. Если его каким-нибудь клеем залить, то поможет?

  9. #9

    По умолчанию

    Смотрю тут собрался клуб самоубийц-затейников. Прямой доступ из PRU в программу нельзя так делать.

    БП можно просто нагрузить по линии 24В.
    Тролль-наседка, добрый, нежный и ласковый

  10. #10

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    потому что выше у вас написано >>>> "PRU берёт BOOL из основной программы и записывает его в другую переменную."

    но смысл поста Владислава в том, что нужно, как минимум понимать, что будет с алгоритмом, если ему из другого потока значение переменных менять, а в общем случае - проклясть и не использовать сей "метод"
    Я не использую подход "поменять у другого потока переменную на ходу".
    Я использую подход "обмена сообщениями". Т.е. передаём в другой поток информацию, что "новые значения готовы" -- он читает/пишет когда у него есть время и когда у него ничего не сломается.

    Слова "PRU берёт BOOL из основной программы" выражают сущность происходящего, а не детали реализации. Сам факт обмена данными "скрыт" от пользователя в компиляторе.

    Т.е. ни о каком "изменении переменных прямо посреди вычислений" речи не идёт.

    На стороне PRU обменом занимается такой код:
    Снимок экрана 2016-10-26 в 16.42.21.png

    Т.е. PRU работает исключительно с локальной памятью, и исключительно со своими переменными.
    Само по себе PRU читает/пишет только, если видит, что sys_transferState = PRU_RAM_TRANSFER_STATE.PRU_READWRITE

    На КДС стороне выглядит так:
    Снимок экрана 2016-10-26 в 16.45.36.png

    И, да, я тестировал word tearing (т.е. ситуацию, когда PRU поочерёдно пишет 0xFFFFFFFF и 0x00000000, а КДС читает). В КДС палёных, полузаписанных и т.п. значений (0xffff0000) не приходило.


    Т.е. мой подход опирается на следующее:
    1) Чтение/запись DWORD атомарны (всегда читается/записывается полное значение)
    2) Чтение/запись упорядочены. Например, если мы в PRU выполнили x=1; y=42, а потом на HOST стороне прочитали 42 из ячейки y, то чтение x должно вернуть 1. Иначе говоря, PRU/HOST не переупорядочивает чтение/запись PRU DRAM.

    К сожалению, по вопросам "атомарности" и "семантики модели памяти" в спецификации на AM1808 ничего не нашёл. Да и у самого PRU ядра нет ни операций "compare and set", ни операций "LL/SC". Т.е. под "нормальную" многопоточность оно не рассчитано, и я решил, что там модель памяти простая, без хитростей. Иначе как вообще можно какой-то код написать, если возможны произвольные перестановки обращений к памяти, а команд для упорядочивания нет?

Страница 17 из 117 ПерваяПервая ... 715161718192767 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •