Как создать устройство в linux (подробности внутри)? Хочу подключить экран от Nokia 5110 к Raspberry Pi 3 и чтобы можно было делать так:echo "hello world" > /dev/screen0
Как можно это сделать? Есть ли какой-то пример написания подобного для работы с какими-нибудь внешними устройствами?

21 Авг 2019 в 06:33
249 +1
1
Ответы
1

Для создания устройства в Linux, вам необходимо написать драйвер устройства или модифицировать существующий драйвер для вашего устройства. В вашем случае, вам нужно создать драйвер для подключения экрана от Nokia 5110 к Raspberry Pi 3.

Одним из способов создания устройства является создание файла устройства в директории /dev/. В вашем случае, вы можете создать устройство /dev/screen0, которое будет отображать данные на экране Nokia 5110.

Примерно так можно создать устройство /dev/screen0:

Определите структуру устройства в заголовочном файле:

#define SCREEN_MAJOR 0
#define SCREEN_MINOR 0

Реализуйте и зарегистрируйте драйвер устройства:

#include <linux/fs.h>
#include <linux/uaccess.h>

static ssize_t screen_write(struct file file, const char __user buf, size_t count, loff_t *pos)
{
// Здесь реализуйте код для записи данных на экран
}

static const struct file_operations screen_fops = {
.write = screen_write,
};

static int __init screen_init(void)
{
int ret;

ret = register_chrdev(SCREEN_MAJOR, "screen", &screen_fops);
if (ret < 0) {
printk("Failed to register screen device\n");
return ret;
}
printk("Screen device registered\n");
return 0;

}

static void __exit screen_cleanup(void)
{
unregister_chrdev(SCREEN_MAJOR, "screen");

printk("Screen device unregistered\n");

}

module_init(screen_init);
module_exit(screen_cleanup);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");

3. Скомпилируйте ваш драйвер и загрузите его в ядро. После этого вы сможете использовать команду echo для записи данных на экран:

echo "hello world" > /dev/screen0


Это только примерный шаблон для создания устройства в Linux. Вам следует ознакомиться с документацией по разработке драйверов устройств для дальнейшей реализации вашего проекта.
20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 117 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир