Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Вот такой вот достаточно узконаправленный материал сегодня получился. Не претендую, что материал станет достаточно успешным, но полагаю кому-то всё же будет интересно. С другой стороны, меня просто удивляют некоторые проекты компьютеров из МК: люди реально пишут эмуляторы иных архитектур, вместо того чтобы использовать возможности целевого МК на максимум!
Собственно, почему бы и не поделится своим видением!?
В следующей статье вас ждёт легенда своих лет: Nokia N-Gage QD, с ремонтом и рассказом о типовых болячках смартфонов Nokia тех лет, ковырянии в Symbian SDK и попытках написать игру под эту платформу. Мы рассмотрим некоторые особенности Symbian и попробуем разобраться, почему эта система проиграла войну с Android и iOS!
И хардварно оживил, и софтварно обогатил :)
О, нормальный пост на ВТФ
Думал зайти на DTF, а попал на Хабрахабр🤯.
@Якорь КАК ДУМАЕТЕ, ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ - ЯКОРНЫЙ КОНТЕНТ ДТФ!?
Половину не понял , другую половину сделал вид , что понял
Но контент топ , помогает осознать свою умственную отсталость, и заниматься прокачкой мозгов , чтобы хоть чуть чуть приблизиться к сверх интеллекту
Якорнее некуда, но теорию нужно разбавлять практикой. То есть например делать какой-то пошаговый «рецепт» который можно повторить для определенного телефона. Когда-то давно я изучал с++ и понял более менее идею, типа в разных операционках свой подход к работе с памятью и переменными и хрен реализуешь кросплатформенность без костылей, но не хватает наглядности. Допустим взять простую программу, выводящую hello world и запустить на разных архитектурах, там где есть глобальные переменные, где нет, на примере конкретных моделей, а когда только код и текст, визуалам вроде меня сложно. Спасибо за материал, очень познавательно!