DMA есть смысл использовать и ради того, чтобы не нагружать контроллер "мартышкиной работой", занимающей процессорное время перекладыванием байт из памяти в периферию.
Можно, но ненамного. Зато код станет сильно кудрявее. Придется перейти к асинхронной модели и наплодить глобальный контекст. По моему опыту к подобным радикальным средствам нужно прибегать только после того, как все остальные исчерпаны. В mbed API ведь уже есть готовый метод для асинхронной передачи блока данных, но им мало кто пользуется — с асинхронным кодом никому не хочется связываться без крайней необходимости.
Я планирую сделать на этом железе какую нибудь красивую игрушку, так что продолжение следует.
Не совсем понял, что переписать. Тут идея была в том чтобы подключать библиотеки от mbed к проекту на HAL. Подключать их к ардуйне смысла мало, там вроде своих библиотек достаточно, например вот
Боюсь Вас огорчить, но для Ардуины такое вряд ли реализуемо. Там вся аппаратура надежно скрыта от пользователя библиотеками, а если делать все с непостердственным доступом к регистрам, то это уже не Ардуино стиль.
Вот если просто взять Ардуино плату и в Ардуино среде написать прямое обращение — тогда можно, встает вопрос — зачем?
Библиотеки под ардуино скорее всего так же медленно работают с дисплеем. Поэтому библиотека или пример, работы напрямую с увеличением скорости FPS были бы весьма кстати.
Я просто к тому, что это можно сделать, но в любой обычной среде программирования, поскольку основные фичи Ардуино мы все равно потеряем, хотя кто знает, надо подумать.
Использование mbed кода в собственном проекте на STM32 — опыт разгона китайского LCD