Comments 9
И есть ли возможность на чипсетах Cortex M использовать дисплеи 2k/4k по DSI?
Ну и USB 3.x, либо другой вариант скоростного общения с Cortex M?
Собственный поиск приводит к мысли, что 2k/4k и USB 3.x возможно только на Cortex A…
Ну и USB 3.x, либо другой вариант скоростного общения с Cortex M?
А откуда там USB 3.0+ быть? Нормальные частоты для микроконтроллеров на Cortex-M — до 200 с небольшим MHz (и то, это для Cortex-M7). Туда 5 Gbit/s, используемые в USB 3.0, пролезут на пределе в кольцевой буфер, если пролезут вообще, но не более. На полезную нагрузку тактов не останется.
Если вы уверены, что вам не хватит USB 2.0 HS (480 Mbit/s), то бывают специализированные чипы для предоставления интерфейса USB 3.0 к памяти (в которую, например, пишут из FPGA/ADC). Можно посмотреть в сторону cypress'овских поделий.
Стоит также отметить, что разводить плату и отлаживать 3.0 может быть безумно весело. Таки высокоскоростной интерфейс. И, если на проце окажется только MAC, то могут понадобиться дополнительные чипы для реализации 3.0.
А так из высокоскоростного — SPI (обычно может работать на частотах до 1/2 частоты контроллера). Можно ещё использовать FMSC (на stm32 или аналог у других вендоров), если пушить данные с контроллера на что-то предоставляющее более-менее стандартный интерфейс внешней памяти.
А бывает ли литература на русском по ARM серии Cortex A?
Скорее всего, оно того не стоит, если судить по тому, что я видел в продаже про ARM7 и Cortex-M. Ошибки перевода, наложенные на ошибки/неоднозначности оригинала — это очень весело, а errata всё равно читать придётся в оригинале и сопоставлять с оригиналами документации/даташитов и пр.
ошибки/неоднозначности это все ерунда. непонятно с чего начать. я так понимаю главная проблема Cortex A — это многозадачность. собственно, чтобы что то поднять нужно иметь ядро ОС и это уже большие проблемы для использования в роли «микроконтроллера». но мне как программисту это кажется меньшее из зол. не так давно научился пользоваться феном и вот теперь хочу Cortex A в минимальной обвязке…
cypress'овские поделия тоже по всей видимости уже далеко не Cortex M и ARM7.
Да, там arm9, который относительно похож на cortex-a.
главная проблема Cortex A — это многозадачность. собственно, чтобы что то поднять нужно иметь ядро ОС и это уже большие проблемы для использования в роли «микроконтроллера». но мне как программисту это кажется меньшее из зол. не так давно научился пользоваться феном и вот теперь хочу Cortex A в минимальной обвязке…
Нет. Главное отличие, что cortex-a — уже ни пол раза не микроконтроллер. Это полноценный процессор, setup которого существенно сложнее. Инициализация в минимальном варианте будет включать настройку кэшей, MMU, настройку внешней памяти (RAM и ROM). В общем, если вы не в курсе отличий, как работает MMU и написание примитивной многозадачной ОС вас пугает — лучше к Cortex-A/R не приближаться за версту.
В некоторых случаях у процессу первоначального запуска доступа у вас просто не будет, например, из-за использования проприетарных блобов в firmware. Т. е. bare metal похож на таковой в случае x86, где firmware/bios/uefi уже есть как данность. Как пример можно глянуть на boot sequence rpi.
Тогда первым делом на arm infocenter, читать technical reference manual (или искать перевод где-нибудь). Потом искать data sheet и app notes для имеющегося проца и надеяться, что есть описание начальной загрузки и периферии не под NDA. Переводы trm вполне могут быть в продаже (видел для M3, M0+, но не для A), но рассчитывать на наличие русскоязычного datasheet'а какого-нибудь mtk или exynos не стоит.
Начать на старом девайсе может быть не лучшей идеей: можно оказаться в ситуации, когда нет никакой нормальной информации о загрузке, нет отладочного интерфейса и документации не под NDA. Лучше найти какую-нибудь популярную плату, про которую ситуация с загрузчиком и написанием драйверов для периферии более-менее понятна.
ARM-ы для самых маленьких: компоновка-2, прерывания и hello world!