Глубокость колена во светодиодах: хакеры получают акцию бежать на смарт-ламп Ikea
Группа хакеров взялась на обречении и работает на необычной платформе: смарт-лампочка IKEA. Группа записала свой проект по следующему взлому и поделилась деталям реализации.
Эта группа решила воспользоваться DOOM, бегающим на нижней платформе и установила конкретные правила для себя в том, что бы и не было бы приемлемым. Устройство должно иметь разумную вычислительную мощность относительно оригинальных требований DOOM. Команда ссылается на 486-33, хотя я могу сказать вам от личного опыта, вы можете сыграть его с скромным просмотром Frustum на оборудовании, так и слабым, как 80386SX-16. Только микроконтроллер внутри выбранного устройства можно использовать для запуска игры. Добавление небольшого цветного дисплея и дополнительная флэш-память для хранения файлов была приемлемой. Минимальная цель состояла в том, чтобы воспроизвести E1M1, иначе известный как первый уровень «колена в мертве».
Команда изначально планировала развернуть лампу Ikea Trådefri. Хотя скромный 40 МГц Cortex M4 был достаточно мощным, чип только имел 32 КБ оперативной памяти. Это было считалось невозможным. Затем, через несколько месяцев IKEA обновился с новой моделью. Эти новые лампы показали 80 МГц Cortex-M33 и 108KB RAM в общей сложности с 1 МБ NAND Flash. Команда также прикрепила дополнительную 8 МБ NAND Flash.
Развитие было обработано на сравнительно мощной Cortex-M7. STM-чип, который они использовали, STM32H743, имеет память спущенной памятью QSPI (Quad Serial Parallel Interface) Nand Flash Chip, позволяя команде относиться к нему в качестве вспышки памяти.
Команда шаги по оптимизации, которые она сделала, чтобы воспользоваться DOOM, запущенной под 108 кБ ОЗУ, в отличие от 160 КБ +, они оценивают, это требует по умолчанию. Они сохранили значительное количество памяти, преобразуя типы данных - Doom используют 32-битные целые числа в некоторых случаях, где требовались только 8 или 16 битов. В нескольких случаях они взяли данные, которые были первоначально хранятся в ОЗУ и переместили его в Nand Flash, чтобы освободить достаточно емкости, чтобы впустить игру в первую очередь. Они даже оптимизировали буфер памяти для экономии 5КБ ОЗУ. Одно интересное, что их тестирование показало: производительность, даже на умной лампочке, определяется больше скоростью доступа к памяти флэш-памяти, чем по скорости CPU.
Но даже после всего этого команда возникла проблема: скорости передачи данных на STM32H743 были достаточно быстрыми, но EFR32MG21 они работали с внутренней частью Smart Smart Pulb, не поддерживали одинаковый высокоскоростной (относительно) интерфейс. Их начальная пропускная способность хранения была ограничена 2,5 Мбит / с, пока они не разогнали чип до 80 МГц. Что улучшена пропускная способность до 5 МБ / с. Я позволю им объяснить, как они снова удвоили это:
EFR32MG21 имеет три USAPTS. Один O TEM используется для печати сообщений отладки и загрузка файла WAD на внешнюю вспышку. У нас осталось два усарта ... и периферическая рефлекторная система! С этими двумя мы можем синхронизировать два USAPTS (работающих в режиме SPI), чтобы они одновременно читали данные, на самом деле создающие двойные SPI (DSPI). К счастью, память QSPI также поддерживает двойную прочитанную, и таким образом, мы можем достичь 10 МБ / с!
История продолжается, чтобы описать, как они сохраняли два SPIS синхронизированных и дополнительную работу, которую команда сделала, чтобы получить звук, работающую и играющую в игру ультра насилия, не выходя из оперативной памяти. Есть также пошаговые инструкции для создания устройства. Общая производительность и качество изображения лучше, чем версия GBA. Группа указывает на то, что 16,7 МГц ARM7TDMI GBA был способен только 0,9 DMIPS / MHZ, а CM33 достигает ~ 1.5DMIPS / MHZ и работает на 80 МГц. Команда не выполнена оптимизированной гибелью для их уменьшенной платформы, и они планируют улучшить работу, так и использование RAM в ближайшие дни.
Читать далее
Новая клавиатура Asus Mechanical отображает изображения с 312 крошечными светодиодами
Все, что и скорость опроса 8 000 Гц делает для одного игрового совета навыков.