Наша компания разрабатывает мобильные вычислительные устройства. Этот процесс включает три ключевых направления: — индустриальный дизайн и конструктив; — схемотехника и производство плат; — разработка и адаптация драйверов. Именно последнее направление отвечает на вопрос, почему и как мы используем низкоуровневое программирование. Представьте печатную плату с десятками компонентов: процессором, памятью, модулями связи, при подаче питания на ней появляется напряжение, но ничего не происходит — плата остается «немой». Чтобы она заработала, необходим комплекс программ, который управляет каждым ее компонентом. Этот комплекс называется BSP (Board Support Package) или пакет поддержки платы. Его разработка — и есть наша ключевая задача, решаемая с помощью низкоуровневого программирования. Программное обеспечение любого устройства можно сравнить со слоеным пирогом: — верхний слой (верхнеуровневое ПО): прикладные программы пользователя; — средний слой (user space): интерфейсы операционной систе