|
STM32F407: Ethernet + CHECKSUM_BY_SOFTWARE |
|
|
|
 |
Ответов
|
Apr 28 2017, 11:09
|
Местный
  
Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188

|
Фраза: Цитата(k000858 @ Apr 28 2017, 11:13)  Версия проекта со включенной ETH_CHECKSUM_BY_HARDWARE (в драйвере Ethernet и LwIP стеке)... наталкивает на мысль, что доступ к софтовой считалке происxодит из разных потоков. Я бы начал поиск граблей с этого места.
|
|
|
|
|
Apr 28 2017, 11:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Axel @ Apr 28 2017, 14:09)  наталкивает на мысль, что доступ к софтовой считалке происxодит из разных потоков. Я бы начал поиск граблей с этого места. Уже было озвучено  Цитата(jcxz @ Apr 28 2017, 13:46)  Не понял - и для чего это? Что за deadlines и какой от них прок? Если важна предсказуемость времени доступности ресурса (deadline), то вместо семафора нужно пользовать мьютекс, он как минимум будет бороться с инверсией приоритетов, когда занятый ресурс ожидают несколько задач с разными приоритетами и может возникнуть взаимоблокировка (deadlock). В простейших случаях, когда лишь одна задача ожидает объект (например, пришел байт в прерывании, который положили в буфер и просигналили об этом), как раз лучше использовать семафор (причем, в случае с байтом по uart лучше использовать счетный семафор). Кстати, во FreeRTOS для этого есть более быстрый метод - уведомление (notify), он жрет заметно меньше ресурсов. Другими словами: использовать семафор как средство разделения общего ресурса - это неправильно в разных смыслах. Цитирую: "Мьютекс отличается от семафора тем, что только владеющий им поток может его освободить, т.е. перевести в отмеченное состояние." ( из википедии) Ну, теперь понятно?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 28 2017, 12:02
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ Apr 28 2017, 13:39)  Если важна предсказуемость времени доступности ресурса (deadline), то вместо семафора нужно пользовать мьютекс, он как минимум будет бороться с инверсией приоритетов, когда занятый ресурс ожидают несколько задач с разными приоритетами и может возникнуть взаимоблокировка (deadlock). Вообще-то - взаимоблокировка - это нечто другое. Взаимоблокировка - это баг в ПО. Это когда например задача1 владеет неким ресурсом1 и в это время пытается занять ресурс2, занятый задачей2. Она соответственно уходит в ожидание. И в этот время задача2 если попытается занять ресурс1, то вот тут как раз и возникнет deadlock - взаимоблокировка. Сомневаюсь, что мьютекс спасёт от такого. А вот уже инверсия приоритетов задач - это уже третье. И не уверен что мьютекс спасёт от неё. Цитата(Forger @ Apr 28 2017, 13:39)  В простейших случаях, когда лишь одна задача ожидает объект (сигнал семафора или освобождение мьютекса), как раз лучше использовать семафор, бинарный (двоичный) семафор. Другими словами: использовать семафор как средство разделения общего ресурса - это неправильно в разных смыслах. Уже лет 10 пишу под uCOS-II. Куча разного ПО. И не только я (в группе разработчиков). Почти везде для разделения ресурсов используем семафоры (в некоторых ПО - по несколько десятков семафоров и почти десяток задач), устройств десятки тысяч уже у заказчиков работают - и всё ок. Странно, да? Цитата(Forger @ Apr 28 2017, 13:39)  Кстати, во FreeRTOS для этого есть более быстрый метод - уведомление (notify), он жрет заметно меньше ресурсов. В uCOS для этого есть mailbox
|
|
|
|
Сообщений в этой теме
k000858 STM32F407: Ethernet + CHECKSUM_BY_SOFTWARE Apr 28 2017, 08:13 Forger Цитата(k000858 @ Apr 28 2017, 11:13) осво... Apr 28 2017, 09:24 jcxz Цитата(Forger @ Apr 28 2017, 11:24) ... Apr 28 2017, 09:33 k000858 Цитата(Forger @ Apr 28 2017, 12:24) Очень... Apr 28 2017, 09:44  Forger Цитата(k000858 @ Apr 28 2017, 12:44) к со... Apr 28 2017, 09:58   jcxz Цитата(Forger @ Apr 28 2017, 11:58) В при... Apr 28 2017, 10:46   Forger Цитата(jcxz @ Apr 28 2017, 15:02) Вообще-... Apr 28 2017, 13:00    jcxz Цитата(Forger @ Apr 28 2017, 15:00) Если ... Apr 28 2017, 13:59     Forger Цитата(jcxz @ Apr 28 2017, 16:59) Каким о... Apr 28 2017, 14:19      jcxz Цитата(Forger @ Apr 28 2017, 16:19) мьюте... Apr 28 2017, 15:43       Forger Цитата(jcxz @ Apr 28 2017, 18:43) Ещё раз... Apr 28 2017, 16:18        jcxz Цитата(Forger @ Apr 28 2017, 18:18) Очень... Apr 28 2017, 19:58         Forger Цитата(jcxz @ Apr 28 2017, 22:58) Вы утве... Apr 28 2017, 20:41          jcxz Цитата(Forger @ Apr 28 2017, 22:41) Переч... Apr 28 2017, 21:10           Forger Цитата(jcxz @ Apr 29 2017, 00:10) ....неб... Apr 28 2017, 22:40            jcxz Цитата(Forger @ Apr 29 2017, 00:40) Когда... Apr 29 2017, 08:07             Forger Цитата(jcxz @ Apr 29 2017, 11:00) Если до... Apr 29 2017, 08:09              jcxz Цитата(Forger @ Apr 29 2017, 10:09) Если ... Apr 29 2017, 08:15               Forger Цитата(jcxz @ Apr 29 2017, 11:15) Так как... Apr 29 2017, 08:21                jcxz Цитата(Forger @ Apr 29 2017, 10:21) Справ... Apr 29 2017, 08:26                 Forger Цитата(jcxz @ Apr 29 2017, 11:23) Разжуйт... Apr 29 2017, 08:27                  jcxz Цитата(Forger @ Apr 29 2017, 10:27) У мен... Apr 29 2017, 09:00                   Forger Цитата(jcxz @ Apr 29 2017, 12:00) Последн... Apr 29 2017, 09:05                    jcxz Цитата(Forger @ Apr 29 2017, 11:05) Но су... Apr 29 2017, 09:36                     Forger Цитата(jcxz @ Apr 29 2017, 12:36) Почитал... Apr 29 2017, 13:20                      jcxz Цитата(Forger @ Apr 29 2017, 15:20) Я рад... Apr 29 2017, 20:26                       Forger Цитата(jcxz @ Apr 29 2017, 23:26) И утвер... Apr 29 2017, 21:44                        jcxz Цитата(Forger @ Apr 29 2017, 23:44) Вообщ... May 3 2017, 09:01                         Forger Цитата(jcxz @ May 3 2017, 12:01) У меня т... May 3 2017, 09:26                          jcxz Цитата(Forger @ May 3 2017, 11:26) Вот, п... May 3 2017, 09:46                           Forger Цитата(jcxz @ May 3 2017, 12:46) У меня э... May 3 2017, 09:56                            jcxz Цитата(Forger @ May 3 2017, 11:56) И как ... May 3 2017, 10:05                             Forger Цитата(jcxz @ May 3 2017, 13:05) У меня ж... May 3 2017, 11:07 scifi Цитата(Axel @ Apr 28 2017, 14:09) наталки... Apr 28 2017, 13:10  Forger Цитата(scifi @ Apr 28 2017, 16:10) Знаете... Apr 28 2017, 13:16   scifi Цитата(Forger @ Apr 28 2017, 16:16) Дабы ... Apr 28 2017, 18:40    Forger Цитата(scifi @ Apr 28 2017, 21:40) Может ... Apr 28 2017, 19:28     scifi Цитата(Forger @ Apr 28 2017, 22:28) Кстат... Apr 29 2017, 04:29  Axel Цитата(scifi @ Apr 28 2017, 16:10) Знаете... Apr 28 2017, 14:16 k000858 пока удалось выяснить вот что:
1) при шторме UDP т... May 3 2017, 11:13 Forger Цитата(k000858 @ May 3 2017, 14:13) пока ... May 3 2017, 11:22  k000858 Цитата(Forger @ May 3 2017, 14:22) Я бы э... May 3 2017, 11:29   Forger Цитата(k000858 @ May 3 2017, 14:29) Ниже ... May 3 2017, 11:36    jcxz Цитата(Forger @ May 3 2017, 13:36) Вероят... May 3 2017, 11:56 k000858 Может быть кому то поможет. Нашлось решение пробле... May 23 2017, 10:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|