The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В Си-библиотеке  nolibc, входящей в состав ядра Linux, реализована поддержка сигналов, opennews (??), 23-Янв-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


15. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 23-Янв-23, 12:10 
> Не надёжнее ли следить за завершением какого-либо процесса через pid?

какой pid скажет тебе когда подключенное USB устройство готово к обмену ?

Ответить | Правка | Наверх | Cообщить модератору

22. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от YetAnotherOnanym (ok), 23-Янв-23, 12:34 
А какой там у ядра PID, согласно народной традиции?
Ответить | Правка | Наверх | Cообщить модератору

38. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 23-Янв-23, 14:19 
> А какой там у ядра PID, согласно народной традиции?

не все драйверы в ядре?

https://en.wikipedia.org/wiki/Libusb

Ответить | Правка | Наверх | Cообщить модератору

111. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (-), 24-Янв-23, 00:04 
> А какой там у ядра PID, согласно народной традиции?

Изначально в линуксе все начинается с ядерного треда, его PID = 0 вроде бы номинально. Потом он кроме всего прочего создаст еще один, который уже PID = 1, он попытается стать вашим init'ом.

Но это не конец истории. Во первых есть такая штука как kthreadd. Обычно он садится на PID=2, хотя является ли это каким-то жестким requirement - черт знает, сорц смотреть надо. Как можно догадаться из названия, это - как инит, но для тредов кернела. Треды ядра считаются запущенными им, он их "parent pid" для всего что важно.

Ах да, из всего этого следует что ядро так то threaded и может запускать треды. Какой там у них PID будет? Да любой валидный. Это мало чем хуже обычного процесса. Ну разве что исполняемого файла нет (линк на образ исполняемого в proc не работает) и убить стандартным способом нельзя.

Если этого показалось мало, есть еще такая штука как kworker. На самом деле довольно забавная штука, используется для дефера тяжелых операций в фоновые воркеры. Те кому в ядре надо тяжелые операции пульнуть могут зарегистрировать это в воркере и отвалить по быстрому. А вот это добро потом в фоне отпедалит запрошенное. Так то довольно продвинуто, для ядра то, такому то сервису и апликушник высокоуровневый позавидует иной раз.

Ну вон ps -AF какой рисует ядерные тредики не как processname а как [processname], квадратные скобки хинтят что это принадлежит ядру. Так что если вы хотели все его PID познать - да вот, изучайте. Ну там ps -AFH вам в руки (это еще и иерархически, показывает что треды ядра под kthreadd живут например).

Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

146. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +2 +/
Сообщение от YetAnotherOnanym (ok), 24-Янв-23, 13:21 
> Изначально в линуксе все начинается с ядерного треда, его PID = 0
> вроде бы номинально.

Вот-вот, я именно его имел в виду. Дождаться завершения PID=0, чтобы определить готовность USB-устройства - эта идея мне нравится.

Ответить | Правка | Наверх | Cообщить модератору

163. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (-), 27-Янв-23, 23:18 
Он по моему уже не существует на момент старта инита, так что "condition always true, optimize out". А коли так - считайте что usb девайс всегда доступен, с дельфистов пример берите!
Ответить | Правка | Наверх | Cообщить модератору

112. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +1 +/
Сообщение от Аноним (-), 24-Янв-23, 00:05 
> какой pid скажет тебе когда подключенное USB устройство готово к обмену ?

sleep это тоже не подскажет сам по себе :)


Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

141. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 24-Янв-23, 10:34 
> sleep это тоже не подскажет сам по себе

он используется по прямому назначению - задержка в многозадачной среде исполнения в ожидании готовности устройства

Ответить | Правка | Наверх | Cообщить модератору

151. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (-), 24-Янв-23, 20:33 
> он используется по прямому назначению - задержка в многозадачной среде исполнения в
> ожидании готовности устройства

Тут кмк от деталей все сильно зависит, usb устройства разные бывают. Но вообще есть и менее дурацкие способы отлова наличия нужного девайса. Начиная с рулесов udev допустим, когда тот сам желаемую программу позовет по факту "обнаружен девайс VID:PID такой-то". Можно serial или что там еще взять.

Я так себе сделал /dev/board0 допустим для вон той платки. Или /dev/china-crap для кетайского сериального шнурка (crap за глючность его чипа). Ну, как появляется так с ним что-то и делается.

Ответить | Правка | Наверх | Cообщить модератору

155. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 25-Янв-23, 09:38 
> дурацкие способы отлова наличия нужного девайса

я не про это говорил. Послал ты уже обнаруженной по USB китайской платке команду стереть флешь память - какой удав тебе скажет что процесс завершён и можно следующую команду слать ?  только ждать определённое время - sleep/usleep в зависимости от команды.

Ответить | Правка | Наверх | Cообщить модератору

157. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (-), 26-Янв-23, 16:11 
> я не про это говорил. Послал ты уже обнаруженной по USB китайской
> платке команду стереть флешь память - какой удав тебе скажет что
> процесс завершён и можно следующую команду слать ?

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

> только ждать определённое время - sleep/usleep в зависимости от команды.

Это что-то совсем уж донный уровень инженерии. Даже для китайцев.

Ответить | Правка | Наверх | Cообщить модератору

159. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 26-Янв-23, 17:10 
> Это что-то совсем уж донный уровень инженерии. Даже для китайцев.

подозреваю у тебя просто отсутствует опыт

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/porta...

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/main....

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/dfuse...

и тд

Ответить | Правка | Наверх | Cообщить модератору

164. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (-), 27-Янв-23, 23:26 
Чего сказать то хотели?
Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так. И мне такое поведение вполне нравится. При том это не обязан быть USB. Хотя по нему тоже так можно. А в чем прикол? Мне не нравятся заваленые апдейты и левак прошитый в устройства, равно как и отсутствие диагностики что не так. Если вы хотели сказать что г@вняная работа прошивалок это так и задумано - вот я и пожелаю вам удачных обновлений ваших фирмварей.
Ответить | Правка | Наверх | Cообщить модератору

168. "В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."  +/
Сообщение от Аноним (15), 31-Янв-23, 10:22 
> Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так.

ваши протоколы никто не видел, а DFU отлично работает везде, от микроконтроллеров до SoC c UDC на u-boot и любой хостовой ОС.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру