|
scmRTOS (v3) blackfin, переключение контекста + IMASK |
|
|
|
Mar 7 2008, 13:50
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Сергей Борщ @ Mar 7 2008, 19:28)  А попробуйте взять OS_Services.h и OS_Services.cpp из этой ветки. Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил. Там, вроде, дело к ошибке вело, когда использовался один и тот же сервис в разных процессах. А тут, я понял, spi_send нигде больше не завязан.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Mar 7 2008, 13:57
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Сергей Борщ @ Mar 7 2008, 16:28)  А попробуйте взять OS_Services.h и OS_Services.cpp Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил. Спасибо. А обсуждения (описание) бага как посмотреть ? Цитата(dxp @ Mar 7 2008, 16:50)  Там, вроде, дело к ошибке вело, когда использовался один и тот же сервис в разных процессах. А тут, я понял, spi_send нигде больше не завязан. да, посылается в прерывании, ожидается только в одном процессе (причем процесс приоритетный)
|
|
|
|
|
Mar 7 2008, 14:03
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(yes @ Mar 7 2008, 15:57)  А обсуждения (описание) бага как посмотреть ? Там в названии ветки есть номер бага. Его описание можно найти в трекере и вот в этом обсуждении на сахаре. Цитата(yes @ Mar 7 2008, 15:57)  да, посылается в прерывании, ожидается только в одном процессе (причем процесс приоритетный) Если ожидается с таймаутом - то вполне может быть.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 7 2008, 14:28
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Сергей Борщ @ Mar 7 2008, 20:03)  Если ожидается с таймаутом - то вполне может быть. Вообще да, тут пробуждение по таймауту и по событию начинают конкурировать. Но yes сказал, что при отсуствии других прерываний все ок. И, кроме того, ранее у него был код ожидания без таймаута. Т.ч., видимо, там что-то другое. 2yes: если не получится обнаружить косяк, может кинете мне проект (или его огрызок), чтобы я у себя мог погонять. Надо выяснить, что там не так.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Mar 7 2008, 14:34
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Сергей Борщ @ Mar 7 2008, 16:28)  А попробуйте взять OS_Services.h и OS_Services.cpp из этой ветки. Возможно это одно из проявлений правящегося там бага. Я надеюсь, что баг исправил, но может еще чего-то не заметил. Еще раз спасибо! прогнал 6*10^7 переключений - не подвисло дифом я исходники посмотрел, но увы  ничего не понял, но работает (по крайней мере значительно лучше) Цитата(Сергей Борщ @ Mar 7 2008, 17:03)  Если ожидается с таймаутом - то вполне может быть. изначально было без таймаута, с ошибочным поведением. таймаут я поставил, чтобы проверить железо (прерывание SPI) работает UPD: так как я вносил еще правки - после добавления таймаута, то возможно первоначальная причина была другой но время таймаута - 10мс (tick=1ms), а SPI работает на 4МГц - на 3 порядка разные времена Цитата(dxp @ Mar 7 2008, 17:28)  2yes: если не получится обнаружить косяк, может кинете мне проект (или его огрызок), чтобы я у себя мог погонять. Надо выяснить, что там не так. если есть интерес - могу кинуть, там ничего секретного нет. но много лишнего и железка, имхо, нужна, чтобы поймать
|
|
|
|
|
Mar 9 2008, 06:44
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(yes @ Mar 7 2008, 20:34)  если есть интерес - могу кинуть, там ничего секретного нет. но много лишнего и железка, имхо, нужна, чтобы поймать Что именно от железяки нужно? Я понял, что проблема возникает при совместной работе прерываний - например, SPI и UART. Если оба устройства работают в режиме передачи, то никакое внешнее железо не нужно и можно попытаться восстановить ситуацию на голом проце. Если проблема не ушла, то пришлите (можно сюда: hz<барбос>oesd.ru). Нельзя глюки за спиной оставлять, они обязательно "укусят" сзади в самый неподходящий момент.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Mar 10 2008, 13:08
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(yes @ Mar 10 2008, 02:44)  если есть возможность ответить - fix тот который предложил Сергей Борщ или fix переключателя задач ? Переключалка задач - то, с чего ветка началась. В скором времени будем все фиксы объединять (и не только фиксы) и делать новый релиз. Добавление: эти фиксы не пересекаются. Тот, про который Сергей сказал - это часть Common, а та, про которую я - это порт. Т.ч. можно смело брать файлы из обоих источников одновременно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|