IgorKossak 0 6 февраля, 2008 Опубликовано 6 февраля, 2008 · Жалоба Подскажите, а как пользоваться SVN под proxy? Есть проблемы с подключением к репозиторию, а вот как их решить - неразобрался. :( На сайте http://subversion.tigris.org/ в поле поиска набираете proxy и вперёд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Поднята и действует система ежедневних снапштотов. В снапшот входит порт+пример - тот же комплект, что и на download странице проекта. Берется это здесь. Дополнительная инфа тут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 7 апреля, 2008 Опубликовано 7 апреля, 2008 · Жалоба В порт avr-gcc добавлены недостающие примеры. В примерах 1 и 3 для scmRTOS_CONTEXT_SWITCH_SCHEME == 1 используется преривание SPM_vect, для примера 2 сделан применявшийся ранее вариант прерывания по компаратору, пусть будут оба. Обсуждение использования разных прерываний и логики их выбора где-то там: http://electronix.ru/forum/index.php?showt...43646&st=15 там и продолжать, если что. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 4 ноября, 2008 Опубликовано 4 ноября, 2008 · Жалоба Нашел небольшую недоработку. При изменении значений параметров: scmRTOS_IDLE_PROCESS_DATA_STACK_SIZE scmRTOS_IDLE_PROCESS_RETURN_STACK_SIZE (в версии 3.00-beta под AVR) возникает ошибка компиляции. Приходится править вручную функцию: OS_PROCESS void process<prIDLE, **, **>::Exec() И если не сложно, подскажите где определяется размер стека прерываний? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 4 ноября, 2008 Опубликовано 4 ноября, 2008 · Жалоба (в версии 3.00-beta под AVR) возникает ошибка компиляции. И если не сложно, подскажите где определяется размер стека прерываний? Эти параметры определяются в scmRTOS_TARGET_CFG.h. Другое дело, что в соответствующем месте OS_Target_cpp.cpp вместо определений в версии 3.00 стояли численные значения. В версии 3.05 уже исправлено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 4 ноября, 2008 Опубликовано 4 ноября, 2008 (изменено) · Жалоба Спасибо. Но это всё пол беды ... Не могу преодолеть трудность. Запускаю прием данных по прерыванию от SPI. Система падает. Причём, чёткой закономерности нет. Может работать очень долго а иногда после первого же байта и умирает. Перевёл всё процессы в Sleep(0) чтоб не мешали, отключил всё лишнее, на вход поступает только SPI сигнал блоками по 8 байт 1 раз в секунду. Обработчик прерывания упрощён для отладки и выглядит так: //SPI Interrupt Handler #pragma vector = SPI_STC_vect OS_INTERRUPT void SPI_ISR(void) { //класс обёртка OS::TISRW_SS ISRW; unsigned char temp; //Забираем принятые данные из регистра SPDR temp = SPDR; //Загружаем следующий байт для передачи //SPDR = 0xAA; //импульс на осц для контроля CLRBIT(PORTA,LED_AVR); __delay_cycles(10); SETBIT(PORTA,LED_AVR); } Аппаратно сдвиговый регистр SPI интерфейса работает, видно как он передаёт пустой байт вместо 0xAA. Но прерывание не происходит. Что можно сделать? Изменено 4 ноября, 2008 пользователем sevstels Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 4 ноября, 2008 Опубликовано 4 ноября, 2008 · Жалоба И если не сложно, подскажите где определяется размер стека прерываний?Зависит от применяемого класса в обработчике TISRW - прерывание полностью работает на стеке прерванного процесса TISRW_SS (Separate Stack) - прерывание сохраняет то, что счёл нужным компилятор, на стеке процесса затем переключается на отдельный стек. Что за стек - надо смотреть конкретный порт. Порты avr использует основной стек (на котором начинается работа main), для avr/gcc размер - всё что осталось от памяти после статически размещённых переменных и стеков процессов, для avr/IAR - CSTACK и RSTACK. Думается, TISRW_SS имеет смысл только при разрешении вложенных прерываний (тогда вложенное сразу начнёт работать на отдельном стеке) либо если прерывание вызывает каскад внешних функций, каждая из которых что-то сохраняет на стеке, или для жадных до стека (заводящих там переменные). Если вложенных прерываний нет, а вызываемих функций нет либо стек не особо расходуется - отдельный стек ничего не сэкономит (а время на переключение займёт). Разные прерывания могут пользоваться разной обёрткой. p.s. на мой взгляд, тема не для "news:scmRTOS" Может, для "Начало работы with scmRTOS" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 5 ноября, 2008 Опубликовано 5 ноября, 2008 · Жалоба Спасибо :) Нашел где было. Дело оказалось не в софте. Самопроизвольно останавливался кварц. Как начались проблемы ещё год назад в AT90CAN с осц, так и не работает нормально. - Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться