Подтвердить что ты не робот

BSP vs Device-Drivers

Понимая каждого из себя (или, может быть, нет), похоже, что я далек от понимания практических различий между ними.

В моем понимании, BSP представляет собой пакет драйверов и параметров конфигурации, позволяющий загружать изображение ядра на доску (и является ее частью). Драйвер отдельного устройства работает на определенном компоненте (HW), взаимодействуя с одной стороны с ядром ядра, а с другой стороны с самим устройством.

Глядя на ядро ​​Linux, мне непонятно, где начинается роль BSP и роль драйвера устройства. В частности, я привык видеть один BSP на плату на изображение, однако общее ядро ​​Linux может быть загружено в любое семейство архитектуры с одним и тем же изображением (понятно, что для разных семейств существуют разные изображения: x86, amd64, arm, и т.д.), где конкретные драйверы плат и периферийных устройств загружаются по потребности из initrd.

Есть ли BSP для общих дистрибутивов ядра Linux? Или BSP относится только к доскам для особых случаев?

Является ли подобное поведение аналогичным для других ядер? VxWorks?

И последнее, часто ли слияние разных BSP/s для создания одного изображения, которое будет соответствовать различным платам?

4b9b3361

Ответ 1

Я вижу отношения между BSP и драйверами устройств как "has-a". Пакеты поддержки платы включают в себя драйверы устройств.

Различия между BSP и ядрами не легко различить. Ядро переводит инструкции в аппаратное обеспечение. Ядра часто пишутся для определенных семейств оборудования, поэтому они не так переносимы или универсальны, как кажутся. Это составляет различные перестановки кода для каждого семейства архитектуры.

BSP действует как своего рода обратное: он предоставляет инструменты и инструкции для работы с конкретным набором аппаратного обеспечения этой платы. В определенных контролируемых ситуациях ядро может выполнить эту работу. Но BSP позволяет любому совместимому стеку ядра/ОС/приложения использовать эту плату, следуя инструкциям по конфигурации.

Если вам просто необходим доступ к циклам ЦП и памяти, возможно, к нескольким протоколам (USB, Ethernet, пара типов видео), ядро с поддержкой широкой архитектуры просто фантастическое, и было время, когда широта этой аппаратной абстракции была оценена предпоследним образом., Но теперь учтите, что на плате может быть набор датчиков (акселерометр, магнитометр, гироскоп, свет, близость, атмосферное давление и т.д.), Телефония, может быть несколько процессоров, несколько графических процессоров и так далее. Ядро может быть написано для обеспечения VGA/DVI/HDMI/DisplayPort и нескольких комбинаций комбинаций CPU/GPU, если/когда кто-то использует эти конкретные аппаратные пакеты, но нецелесообразно писать поддержку для всех теоретических контекстов по сравнению с использованием BSP, который построен для конкретной платы. И даже тогда это было бы для одного ядра; плата способна поддерживать Linux, Windows, Android, Symbian, что угодно.

Вот почему существуют усилия, подобные Yocto, для дальнейшего разделения ядра и оборудования. BSP делают наборы оборудования расширяемыми за пределы стека ядра /os/app или двух, в то время как ядра делают конкретный стек os/app переносимым на несколько архитектур HW.

Ответ 2

Основываясь на моем опыте, BSP - это гораздо больший объем. он включает в себя загрузчик, rootfs, ядро ​​и драйверы и т.д., что означает, что BSP делает вашу плату способной загружаться. Драйверы делают устройства работающими и являются лишь частью BSP.

Драйверы не равны BSP.

Ответ 3

Сегодня все модульные, чтобы увеличить повторное использование, разработка программного обеспечения для встроенных систем обычно разбивается на три уровня.

  • Ядро (которое включает обработку задач, планирование, управление памятью)
  • Stack (который является верхним уровнем на драйверах устройства и обеспечивает реализацию протокола для I2C, SPI, Ethernet, SDIO, серийный, файловой системы, сети и т.д.).
  • BSP = Драйверы устройств (которые предоставляют доступ к любому регистру контроллера на аппаратных устройствах, таких как регистры I2C, SDIO, SPI, Ethernet_MAC, UART (последовательный) и обработка прерываний (ISR).

Пакет поддержки плат (драйвер устройства) - это программный уровень, который изменяется на каждой плате, сохраняя другие два программных уровня без изменений.

Ответ 4

Пакет поддержки Совета включает все, что необходимо для использования платы приложением. К ним относятся драйверы устройств для устройств на плате и служебное программное обеспечение для прикладных программистов. Окружающая среда окна также доступна на мультимедийных платах. Системные инженеры могут дополнительно добавлять расширения на плату. Некоторые приложения требуют повторной реализации некоторой части bsp для улучшений. Здесь bsp играет роль эталонной реализации или отправной точки для таких требований.

Путаница лежит в бизнес-модели. Плата эталонной или разработки не является конечным/потребительским продуктом, таким как мобильное устройство. Он играет важную роль в разработке и разработке продукта, такого как iPhone или Samsung Galaxy.

В большинстве случаев общий bsp не будет оптимизирован, поэтому вы можете ожидать только общий bsp для модели новичка или если для вас остается оптимизация. В случае дешевых плат bsp довольно общий, потому что производитель будет вкладывать в него меньше инвестиций.

Не особо подчеркивайте условия ядра и пользовательского пространства, так как доступны также микроядра. Здесь драйверы являются частью пользовательского пространства! Снова подумайте о панели с низким энергопотреблением, которая имеет только один кусок кода без какого-либо ядра. Таким образом, это сводится к программному обеспечению, которое поддерживает плату, чтобы выполнить эту работу.

Ответ 5

Драйвер - это программа, которая сообщает ядру о поведении устройства... Устройство может быть USB-устройством, камерой или Bluetooth, или может быть чем угодно. В зависимости от размера операции мы разделяем на три символа: блок, сеть. Но это только дает доступ к каждому устройству... Он настраивает только одно устройство, не настраивать память, скорость процессора. Он не дает инструкции для этого процессора или контроллера. Это работа на этом процессоре или контроллере. Кто включает тот микроконтроллер, который определяет функциональные возможности,.... кто дает отправную точку микроконтроллера... Кто дает инструкции. Теперь приходит ответ, как BSP.................... Bsp - это пакет поддержки плат, который включает загрузчик. Это дает поведение системы. Рассмотрим два сценария: 1. один из них имеет ПК на ПК с опцией USB-коннектора, все в порядке, это первый сценарий 2. Во-вторых, у меня ПК, на плате есть только плата с USB. Плата должна общаться с USB, что может Я делаю...

  1. В этом случае у меня есть компьютер с ОС, поэтому мне не нужно думать о поведении системы. Поэтому я просто включаю поведение устройства с ОС

  2. При этом под платой подразумевается, что процессор со всеми периферийными устройствами..... В данном случае не имеет ОС, поэтому нам нужно сделать или нам нужно включить поведение этого устройства......