eddy_em: (Default)
[personal profile] eddy_em
Собственно, вот: "новый подход" к USB. Вынес базовую часть, общую для "всего на свете" в usb_lib.c; дескрипторы с функцией их выдачи — usb_descr.c (функции записи пришлось туда пихать, т.к. sizeof() не хочет между файлами работать); базовый функционал — usb_dev.c.
Реализовал HID, CDC, PL2303 и 7 CDC "в одном флаконе". С последним хотел буфер максимально использовать, однако, в отладке увидел, что ни хрена хост не хочет по 22 байта присылать/отправлять, а упорно присылает лишь по 16 (а когда пытаешься ему 22 отправить, вообще считает этой ошибкой, несмотря на то, что в дескрипторах конечных точек указано 22 и lsusb это отображает). Баг какой-то в libusb, наверное (а то и в ядре).
Теперь остается это дело испытать на F0x2 и F303, и можно будет в "snippets" переместить.

Еще, возможно, полезно было бы MSD сделать (чтобы вообще по-максимуму настройки упростить: тупо открываешь файл, да читаешь/пишешь, а как файл с новыми записями сохранил, МК это во флеш-памяти обновит). Но пока что-то не хочется лезть в дебри блочных устройств и, тем более, файловых систем. На гитхабе есть проект littlefs (вроде как вообще достаточно компактная штука), и она вроде как через FUSE в линуксе работает. Но интересней было бы, конечно, выдрать из какого-нибудь ядра v1.0.0 модуль ext2 и портировать на микроконтроллеры — уж эта ФС однозначно "из коробки" в любом линуксе будет работать.

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 06:42 am
Powered by Dreamwidth Studios