Jump to content

    

KiV

Свой
  • Content Count

    176
  • Joined

  • Last visited

Community Reputation

0 Обычный

About KiV

  • Rank
    Частый гость

Контакты

  • ICQ
    Array

Recent Profile Visitors

1640 profile views
  • DAV

  1. Именно так и реализовано. Проблема в разрешении коллизий при включении/выключении.
  2. Вот это и портит всю картину. Если-бы всё было включено постоянно - не было-бы никаких проблем. Изначально всё и работало как мастер-слэйв - причем кто первый включился, тот и мастер. Но потом кто-то выдернул разъем мастера...
  3. Так может кто предложить как реализовать в моей ситуации?
  4. Mutex хорош, когда надо разделить ресурс между двумя процессами на одном кристалле, а как выдать один мьютекс на двух отдельных кристаллах в двух программах? У меня действительно ошибочный алгоритм, поэтому и задал вопрос.
  5. Именно так!!! Я никак не могу придумать этот самый алгоритм :( Постоянно получаются гонки/дедлоки/etc... Поэтому и задал вопрос - возможно кто-то уже реализовывал подобное. Что такое mutex, semaphore, event group я знаю. У меня в алгоритме постоянно или гонки или еще какая бяка выскакивает и портит обмен :(
  6. Мне необходимо синхронизировать два "мастера" на одном аппаратном интерфейсе. Сигналы занятости интерфейса каждый процессор выдает другому по отдельному порту ввода/вывода.
  7. Флаги в FreeRTOS

    Именно так, все задачи разблокируются. Это поведение описано в "FreeRTOS Reference Manual" и в "Mastering the FreeRTOS Real Time Kernel" в разделе "Event Groups". Оба документа есть на официальном сайте.
  8. Возможно я не совсем ясно описал проблему. Дело в том, что интерфейс исполнительного устройства есть и не может быть изменен. Там уровни сигналов TTL и что-то типа синхронного SPI с сигналами тактирования, данных, выбора, разрешения и загрузки. Причем сигналы должны выдаваться в определенной витиеватой последовательности. Если использоватть CAN, RS-485 или что другое - нужно будет городить преобразователь на дополнительном процессоре из этого интерфейса в понятный внешнему устройству. Это невозможно по причине физических и финансовых ограничений. Кроме того, я вроде разместил сообщение в теме FreeRTOS, задав вопрос именно о том, как решить проблему программно, средствами FreeRTOS.
  9. Спасибо конечно, но: Это во-первых. А во-вторых мне придется ещё пару процессоров поставить, чтобы в десяти сантиметрах от основных процессоров декодировать CAN в подобие SPI обратно для исполнительного устройства.
  10. Имеется два ARM с FreeRTOS внутри (прошивки каждого выполняют полностью идентичные функции) и один аппаратный канал связи с внешним устройством, который разделяют оба процессора (канал - только выходные сигналы). Имеется также по одному выходу и, соответственно, входу на другом процессоре для индикации занятости (1) и освобождения (0) канала. Время обмена по каналу ~ 5 мс. Время цикла обработки данных процессором - 20 мс +-1 мс. Т.е.каждый процессор должен 5 мс работать с каналом, потом на 15 мс освободить канал и занимается своими делами. В это время канал может использовать второй процессор. Но есть один нюанс - любой процессор может быть включен или выключен в произвольный момент. При этом работающий процесор должен продолжать работать штатно а вновь подключенный - засинхронизироваться с уже работающим. Что-то совсем запутался с приоритетами и семафорами - совсем лыжи не едут. Может кто-то подскажет правильный алгоритм для такой конфигурации?
  11. Cortex-M7

    Не путайте площади пентиумов и меги - это вещи несколько разные! Тут уже Xenia приводила ссылку на вскрытый кристалл меги - посмотрите. И обратите внимание на "поясок" по периметру кристалла - это выходные драйвера и площадки для разварки. И их никак не уменьшить, ибо траверсы, привариваемые к кисталлу до нанометров не уменьшить, и драйвера, работающие при 5 Вольтах с соответсвующими токами тоже не сделать меньше. И в данном кристалле отношение пощади ядра к площади падов примено 2 к 1 и это я не учитываю еще края на резку кристаллов. Что получаем в результате: 1) Даже если уменьшить ядро до нуля, площадь уменьшится только в 3 раза! 2) А теперь представьте, что само ядро на той фотке умньшилось по площади в 100 раз... и потом представьте, как разместить те-же самые площадки по периметру этого ядра. Т.е. в лучшем случае раза в два уменьшим кристалл. 3) А теперь добавим в цену таких кристаллов подорожавший весьма существенно техпроцесс, разработку нового кристалла под этот техпроцесс, разработку фотошаблонов для него - а они после 180 нм стоят очень дорого, а после 90 нм - просто бешено. И где дешевизна будет? :) Заставляет например это: Поскольку для ОЗУ понадобится загрузчик с внешней памяти и доп. периферия, доп. выводы и т.д. то это уже не будет мега8 По моему оновная проблема - помехи. У выводных копрусов очень длинные связи до развязывающих конденсаторов на плате. Соответственно начинают влиять индуктивности выводов. Во всяких компьютерных CPU/GPU даже прямо на корпусе размещают фильтрующие емкости. И плюс по сигнальным цепям тоже проще с BGA работать становиться.
  12. Cortex-M7

    [sarcasm] Угу и конвейеры в ARM и прочие архитектуры суют просто так, для развлечения. и цена на чипы совсем не зависит от технологии... особенно цена разработки и запуска в производство. и Интел просто не хочет повышать частоты в своих супермелких технологических нормах... и, кстати, ЭСЛ чипы по нормам 0,8 микрон не работают на 500 МГц [sarcasm off] А реально и без сарказма если - то никто не будет покупать 100 МГц AVR Mega999 с техпроцессом 65 нм в 5-10 раз дороже обычной mega88. Все купят ARM на те же частоты но 90 нм, с конвейером и тактами ожидания флэши... за цену старой mega88 и 32 битной архитектурой Реалии таковы, что одним только технологическим уменьшением норм не добиться соответствующего ускорения процессора. Меняются и архитектуры, и куча всего, чего мы просто не знаем Ага. 116. МегаГерц. Тактовой частоты... интерфейса !!! А то, что после подачи адреса, данные появяться только через 5 (ПЯТЬ!!!) тактов этой самой частоты Вы не посмотрели? (MAX 10 User Flash Memory User Guide, Figure 4-8) Ну вот теперь попробуйте 116 МГц разделить на 5. И с какой частотой там флешь работает? Да нет практически флеши с частотами выше 20-30 МГц (ну кроме уникальной от Renesas, скорее всего обложенной патентами со всех сторон) и это не зависит от технологических норм. Даже отдельные микросхемы NOR Flash за 30 МГц не выходят. Там другие проблемы появляются - нельзя слишком быстро включить транзистор с помощью заряда в плавающем затворе. Плюс к тому далее этот сигнал надо распознать и аналоговым компаратором вычислить ноль или единица была в затворе. А это процесс не быстрый. Аналогично работают и все SDRAM, только там не плавающий затвор, а конденсатор. И скорости выборки SDRAM за последние лет двадцать хорошо если в 5-7 раз выросли. Чего не скажешь о скорости внешних интерфейсов - там ГигаГерцы рулят - аналогично Altera у себя скромно скромно так скорость интерфейса написала :) А у ренесасовских чипов с быстрой флэш еще вопрос какое потребление и что еще там у этой памяти ради быстродействия пожертвовано - я с ними увы никогда не сталкивался.
  13. Cortex-M7

    RZ/A1H весьма интересный камень, но вот по ссылке выше прочитал в табличке один интересный момент: "SD host interface × 2 channels (must obtain SD card license)" Это КАК??? Т.е. для использования интерфейса к SD карточке надо покупать лицензию? А как в всеми любимых STM32 реализован интерфейс SDIO? Почему STM лицензию не требуют? Плюс куча блоков на камне под nda только доступна. Так что видимо камень совсем не "народный" получается. :(
  14. Смысл всегда есть. Конкретно в этом случае - прекрасная иллюстрация для начинающих о стиле, хотелках и прочая... PS. И да, заказчиков, которые говорят что 500 руб в час - "ооочень высокая зарплата" я сразу спрашиваю, будут ли они отдельно оплачивать за меня налоги? и накладные? и желательно со 100% предоплатой по этим пунктам :). Вот тут такой "заказчик" начинает "прозревать", "удивляться" и даже "негодовать" по поводу налогового законодательства, вообще законов этой страны (или любой другой, неважно), бюрократии и т.д. и т.п. Далее закономерно следует "заманчивое предложение" сделать без договора, неофициально и "как-то вот так...", "чтоб подешевле...". Что делать с подобными заказами каждый решает сам, но результат подобных "работ" заранее предсказуем.