Как стать автором
Обновить

Комментарии 26

Что-то в этой статье не так
НЛО прилетело и опубликовало эту надпись здесь
Последствия использования отечественных микросхем)))
Оптимизация и экономия во всем. Верстка недостойна потраченных на нее ресурсов!
Возможно, дело в том, что изнеженные дифференциацией дефиса, минуса и тире хипстеры привыкли к рыхлым текстам с раскидистыми ветвями комментариев.
Теперь же вид настоящего, прямоугольного, монолитного блока текста вызывает неподдельный ужас.
Автор даже сжалился и оставил целую(!) пустую строку.
Это случайно получилось, я не хотел )
Хм, похоже ее кто то отредактировал у меня не было так много пустых строк.
Спасибо неизвестному доброжелателю, если так действительно удобнее, то я не против.
Надо больше картинок! Надо больше картинок!
Либо хотя-бы человеческое форматирование
НЛО прилетело и опубликовало эту надпись здесь
DMA контроллер от Миландра не лучший вариант для первого знакомства. Излишне навороченный, тормозной и косячный.
Большинство импортный МК имеют гораздо более гуманный DMA
А вот у нас в конторе кроме миландровской продукции, а также продукции некоторых иных российских производителей, попавших в ограничительный перечень, ничего другого не применяют. Потому что запрещено. Так что, если знакомиться, то сразу уж и жениться. А то на импортном научишься, а они ничего подобного так и не сделают. Переучивайся потом.
У нас тоже на многих проектах ограничительные перечни действуют, но вы лучше подумайте об основной аудитории данного сайта — указанный процессор большинство даже при желании пощупать не сможет, т.к. во-первых в розницу его частнику еще найти надо, а во-вторых стоит недешево.
Я сам с удовольствием почитаю о том, как автор борется с проблемами, с которыми самому, возможно, еще только предстоит столкнуться. Но для большинства читателей это будет чисто теоретический экскурс.
Да, все так. Российские производители выпускают не слишком качественные но достаточно дорогие процессоры. При этом не особенно заморачиваются с их поддержкой и продвижением. Из плюсов разве что только то что вся документация полностью на русском языке.
в Вашей статье "Документация явно переводная, есть и ошибки перевода, которые сильно искажают смысл, есть и весьма невнятно описанные места".
Что это? Писатель документации на российский микроконтроллер слямзил доку с иностранного оригинала?
У них есть IP-блоки собственной разработки, а есть покупные и DMA один из таких. Естественно документация на покупные блоки была исходно на английском. И мне, кстати, неизвестно ни одного иностранного МК использующего подобный контроллер DMA.
вообще-то интересно взаимодействие программистов firmware и разработчиков чипа — вообще эта связь существует или нет? Или производитель Миландр почивает на лаврах — «все равно МО купит»?
Как мне представляется исправить описанные Вами аппаратные проблемы наверное очень просто при желании? Или нет желания?
Это не моя статья, но мы тоже пользуем российские процессоры. Сам я скорее аналоговый схемотехник, специалист по антеннам и СВЧ, чем по процессорам. Программы пишу только небольшие, типа, чтобы не беспокоить по пустякам «настоящих» программистов. Поэтому, DMA в разработках не пользовал, но есть опыт общения с миландровскими разработчиками по поводу их CAN контроллера 1886ВЕ5, и по мылу с ними переписывался, и на их форуме вопросы задавал. Они там накосячили с этим CAN интерфейсом, сообщения принимались через раз, присылали подпрограмму на ассемблере чтобы закрыть вопрос, но все равно пришлось как-то изгаляться, не помню уже как именно. На форуме спрашивал, почему тактовый генератор не запускался и еще что-то, с генератором оказалось нога какая-то не заземлена, при включении контроллер был в sleep режиме. Нормально разъяснили, достаточно быстро, форум они отслеживают.
Глюки бывают у всех производителей. Помню сколько было косяков у новых чипов LPC в своё время. Но ребята не только работали на форуме но регулярно правили документацию, выпускали ерраты, что очень облегчало жизнь. К сожалению наши разработчики уделяют документации и её своевременной доработке крайне мало времени, возможно потому, что их изделия предназначены для очень узкого круга клиентов, в основном связанных с ВПК и проще решать проблемы при личном общении в форумах.
Вот за форум и поддержку Миландру респект и уважение — действительно грамотные спецы и оперативно работают. Но все-таки вопрос — может все таки надо больше внимания уделить разработке и документирования и нагрузка на поддержку упадет? Хотя им, конечно, виднее.
К исправлению ошибок они подходят примерно по следующему принципу:
Критические ошибки, которые делают невозможным использование МК или его ключевых функций, исправляются в новой ревизии чипа.
Некритические ошибки, которые снижают характеристики или имеют возможность программного обхода исправляются «как повезет». Если МК прошел уже несколько ревизий и не имеет критических ошибок — ничего исправляться не будет.

Справедливости ради отмечу, что не только Миландр так работает. У тех же ST косяки кочуют не только из одной ревизии в другую, но и в новые версии МК, которые они регулярно выпускают.
Ну он не такой уж и дорогой.
Версия в пластике 400 рублей.
Есть отладочные платы с коммерческим аналогом от фирмы «LDM» — стоят окол 100 грина — не даром, конечно, но и не так чтоб очень много.
Косячный да, тормозной — под вопросом, а вот навороченность, по-моему, скорее плюс, чем мину для углубленного изучения.
тормозной — под вопросом

Не менее 8 тактов с момента возникновения запроса до его фактического исполнения, за 6 обращений к системной шине. Причем 8 тактов это в идеале, на деле больше, т.к. обращение к регистрам периферии на этом проце занимает по несколько тактов. Это ли не тормозной?

Тормознутость вообще обеспечивается как раз тем, что вы записали в достоинства — постоянным размещением TCB в RAM. В более прогрессивных DMA контроллерах TCB временно размещается в RAM, и копируется в регистры перед началом исполнения (DMA со связными списками). Что дает экономию по сравнению с Миландром по 4 такта на каждый обмен.

Эти «особенности» архитектуры приводят к весьма странному формату разработки: часто заранее очень трудно сказать, что выйдет быстрее по тактам — задействовать DMA или передать данные с использованием ядра. В итоге приходится в коде критичном ко времени исполнения по два варианта писать и проверять экспериментально.
Советы автору.
Уделяйте больше внимания визуальному материалу, причём не только фотографиям. Для того чтобы понять как работает DMA очень нелишними были бы функциональные схемы устройства. Лично мне было бы интересно посмотреть на внешний вид описанного автором чипа или он настолько секретен что это военная тайна? Ещё немного странно что Вы в начале поста обещаете о том, что статья будет посвящена основным принципам применения DMA, но вскоре почему то скатываетесь на описание фич, а скорее недостатков, крайне специфического микроконтроллера, да ещё бросаете статью на полуслове — перечислении этих странностей.
Наверно для телесериала такой подход хорош, чтобы заинтересовать зрителя, но для разъяснения принципов работы DMA вряд ли.
Стоило бы поподробнее описать проблему в общем.
Затем привести функциональную схему и рассказать об части архитектуры типичного представителя АРМ ядра которая задействована в этом сложном процессе.
Ну а только затем переходить к описанию конкретной реализации.
В обучающем материале всё таки стоит придерживаться традиционной подачи информации, ну а главное делать паузу не после того как исчерпал лимит буковок, а по окончанию очередной смысловой части, чтобы мысль была закончена.
P.S. Не смотря на критику я поставил плюсик за статью просто потому, что приятно видеть попытку выйти за границы ардуино и разобраться в тонкостях архитектуры, пусть и не совсем удачную, но на ошибках учатся! Надеюсь продолжение статьи будет интереснее, нагляднее и полезнее.
Спасибо за критику, сам понимаю что картинок (хотя бы и без котиков) было бы неплохо, но у меня громадные проблемы с креативностью, то есть изложить свои мысли в более-менне связном виде еще могу, а вот снабдить иллюстративным материалом — для меня это проблема. А что касается внешнего вида — на сайте Миландра они все есть, надо бы ссылку дать, но опять таки не умею, ну да Гугл Вам в помощь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации