В целом, все компьютерные чипы имеют документацию, которая сообщает дизайнерам и программистам, что они делают и как их настроить для этого. Низкий уровень доступа к этим чипам может быть сделан путем чтения и записи непосредственно в регистры чипа.
Более сложные чипы могут поставляться с программным обеспечением, называемым «драйвером», которое обеспечивает высокий уровень доступа к операционной системе или даже к другим приложениям. Например, ваш смартфон имеет интерфейс прикладного программирования (API), который обеспечивает доступ ко многим аппаратным средствам телефона, GPS, акселерометру, батарее, камере и т. Д. Когда вы пишете «приложение», вы можете получить доступ к этим аппаратным устройствам с помощью API. так же, как операционная система (хотя ОС обычно имеет более широкий доступ, чем программа, выполняемая в «пространстве пользователя».)
Эти интерфейсы очень хорошо определены, поэтому, когда вы выполняете вызов функции для аппаратного чипа, он отвечает запрошенной информацией. Микросхема контроллера батареи является лишь одним из примеров этой общей инфраструктуры.
Кто бы ни писал код операционной системы, он получает документацию для чипа и пишет программное обеспечение для связи с чипом и извлечения информации, которую он желает.
Поэтому в следующий раз, когда вы загрузите «драйвер» (или это будет сделано автоматически) для внешнего жесткого диска, флэш-накопителя USB или чего-то еще, вы поймете немного больше о том, как все происходит «под капотом».