Перейти к содержанию
    

А попробуйте взять OS_Services.h и OS_Services.cpp из этой ветки. Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил.

Там, вроде, дело к ошибке вело, когда использовался один и тот же сервис в разных процессах. А тут, я понял, spi_send нигде больше не завязан.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А попробуйте взять OS_Services.h и OS_Services.cpp

Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил.

 

Спасибо.

А обсуждения (описание) бага как посмотреть ?

 

Там, вроде, дело к ошибке вело, когда использовался один и тот же сервис в разных процессах. А тут, я понял, spi_send нигде больше не завязан.

 

да, посылается в прерывании, ожидается только в одном процессе (причем процесс приоритетный)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А обсуждения (описание) бага как посмотреть ?
Там в названии ветки есть номер бага. Его описание можно найти в трекере и вот в этом обсуждении на сахаре.

 

да, посылается в прерывании, ожидается только в одном процессе (причем процесс приоритетный)
Если ожидается с таймаутом - то вполне может быть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если ожидается с таймаутом - то вполне может быть.

Вообще да, тут пробуждение по таймауту и по событию начинают конкурировать. Но yes сказал, что при отсуствии других прерываний все ок. И, кроме того, ранее у него был код ожидания без таймаута. Т.ч., видимо, там что-то другое.

 

2yes: если не получится обнаружить косяк, может кинете мне проект (или его огрызок), чтобы я у себя мог погонять. Надо выяснить, что там не так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А попробуйте взять OS_Services.h и OS_Services.cpp из этой ветки. Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил.

 

Еще раз спасибо!

прогнал 6*10^7 переключений - не подвисло

 

дифом я исходники посмотрел, но увы :) ничего не понял,

но работает (по крайней мере значительно лучше)

 

 

Если ожидается с таймаутом - то вполне может быть.

 

изначально было без таймаута, с ошибочным поведением. таймаут я поставил, чтобы проверить железо (прерывание SPI) работает

 

UPD: так как я вносил еще правки - после добавления таймаута, то возможно первоначальная причина была другой

но время таймаута - 10мс (tick=1ms), а SPI работает на 4МГц - на 3 порядка разные времена

 

2yes: если не получится обнаружить косяк, может кинете мне проект (или его огрызок), чтобы я у себя мог погонять. Надо выяснить, что там не так.

 

если есть интерес - могу кинуть, там ничего секретного нет. но много лишнего и железка, имхо, нужна, чтобы поймать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если есть интерес - могу кинуть, там ничего секретного нет. но много лишнего и железка, имхо, нужна, чтобы поймать

Что именно от железяки нужно? Я понял, что проблема возникает при совместной работе прерываний - например, SPI и UART. Если оба устройства работают в режиме передачи, то никакое внешнее железо не нужно и можно попытаться восстановить ситуацию на голом проце. Если проблема не ушла, то пришлите (можно сюда: hz<барбос>oesd.ru). Нельзя глюки за спиной оставлять, они обязательно "укусят" сзади в самый неподходящий момент. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема, с которой началась ветка, пофиксена. Взять можно из репозитория. Работоспособность проверена на рабочем проекте (но с ним и ранее не было проблем из-за достаточной оптимизации - фукнция не вызывалась, а встраивалась). Попробуйте, если есть время и желание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема, с которой началась ветка, пофиксена. Взять можно из репозитория. Работоспособность проверена на рабочем проекте (но с ним и ранее не было проблем из-за достаточной оптимизации - фукнция не вызывалась, а встраивалась). Попробуйте, если есть время и желание.

 

спасибо. ну значит свой проект я не отсылаю...

 

если есть возможность ответить - fix тот который предложил Сергей Борщ или fix переключателя задач ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если есть возможность ответить - fix тот который предложил Сергей Борщ или fix переключателя задач ?

Переключалка задач - то, с чего ветка началась.

 

В скором времени будем все фиксы объединять (и не только фиксы) и делать новый релиз.

 

Добавление: эти фиксы не пересекаются. Тот, про который Сергей сказал - это часть Common, а та, про которую я - это порт. Т.ч. можно смело брать файлы из обоих источников одновременно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...