Jump to content

    

KiV

Свой
  • Content Count

    176
  • Joined

  • Last visited

Community Reputation

0 Обычный

About KiV

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

Recent Profile Visitors

1556 profile views
  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

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

    Цитата(Xenia @ Apr 24 2015, 02:59) т.к. это ограничение технологического плана, а не архитектурного. [sarcasm] Угу и конвейеры в ARM и прочие архитектуры суют просто так, для развлечения. и цена на чипы совсем не зависит от технологии... особенно цена разработки и запуска в производство. и Интел просто не хочет повышать частоты в своих супермелких технологических нормах... и, кстати, ЭСЛ чипы по нормам 0,8 микрон не работают на 500 МГц [sarcasm off] А реально и без сарказма если - то никто не будет покупать 100 МГц AVR Mega999 с техпроцессом 65 нм в 5-10 раз дороже обычной mega88. Все купят ARM на те же частоты но 90 нм, с конвейером и тактами ожидания флэши... за цену старой mega88 и 32 битной архитектурой Реалии таковы, что одним только технологическим уменьшением норм не добиться соответствующего ускорения процессора. Меняются и архитектуры, и куча всего, чего мы просто не знаем Цитата(scifi @ Apr 24 2015, 05:52) Altera ... 100 МГц флэш на борту... Ага. 116. МегаГерц. Тактовой частоты... интерфейса !!! А то, что после подачи адреса, данные появяться только через 5 (ПЯТЬ!!!) тактов этой самой частоты Вы не посмотрели? (MAX 10 User Flash Memory User Guide, Figure 4-8) Ну вот теперь попробуйте 116 МГц разделить на 5. И с какой частотой там флешь работает? Цитата(scifi @ Apr 24 2015, 05:52) А вот традиционным МК-строителям постоянно что-то мешает. Да нет практически флеши с частотами выше 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% предоплатой по этим пунктам . Вот тут такой "заказчик" начинает "прозревать", "удивляться" и даже "негодовать" по поводу налогового законодательства, вообще законов этой страны (или любой другой, неважно), бюрократии и т.д. и т.п. Далее закономерно следует "заманчивое предложение" сделать без договора, неофициально и "как-то вот так...", "чтоб подешевле...". Что делать с подобными заказами каждый решает сам, но результат подобных "работ" заранее предсказуем.