Сергей Борщ 186 September 23, 2011 Posted September 23, 2011 · Report post Для ускорения выхода релиза я принял решение прекратить поддержку следующих портов ARM7: IAR/STR71x - ибо порт был написан по просьбе местного представителя ST в обмен на обещание упомянуть scmRTOS на сайте ST. Обещание не выполнено, кит я отдал после выхода порта, отлаживаться не на чем. GCC/ADuC70xx - ибо ADuC тоже не применяю, а для полноценного порта надо добавлять еще и поддержку ADuC71xx, которых у меня нет. По статистике загрузок с sourceforge.net оба эти порта были скачаны в сумме 17 раз за последний год, что показывает их неактуальность. всю ветку IAR4.xx, ибо не актуально. По поводу IAR версии 6.xx - я с версии 4.хх перескочил на GCC, с пятой и более поздними не разбирался и разбираться желания нет - во-первых, GCC меня устраивает полностью, во-вторых - принято решение переползать на кортексы. Если несмотря на засилие кортексов кому-то еще интересены порты ARM7/IAR6.xx - добро пожаловать в команду разработчиков. Вышлю присланый мне когда-то очень давно порт scmRTOS v3.10 под IAR5.xx для допиливания под 6.xx и дальнейшей поддержки. Quote Share this post Link to post Share on other sites More sharing options...
jorikdima 0 September 23, 2011 Posted September 23, 2011 · Report post Вопрос решён положительно, все private члены классов-сервисов теперь являются protected. Спасибо! Quote Share this post Link to post Share on other sites More sharing options...
AHTOXA 25 September 23, 2011 Posted September 23, 2011 · Report post GCC/ADuC70xx - ибо ADuC тоже не применяю А я применяю (706x). Давай тогда мне его? Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 186 September 23, 2011 Posted September 23, 2011 · Report post А я применяю (706x). Давай тогда мне его?А забирай. Я сегодня зафиксировал последние (надеюсь) правки порта, осталось добить примеры и документацию. Добавил возможность компилить любые файлы (включая файлы ОС) в thumb - для ADuC, с его 16-битной флешью, будет полезно. Проверил - первый пример на SAM7, полностью в thumb за исключением трех необходимых файлов, запустился. Quote Share this post Link to post Share on other sites More sharing options...
AHTOXA 25 September 24, 2011 Posted September 24, 2011 · Report post Забрал:) Все примеры компилятся, thumb ещё не пробовал. Примеры LPC2xxx - тоже обновил, арбайтен. (И то и то - GCC.) Пример №4 делать не буду ни там ни там, нет времени. Может потом... Quote Share this post Link to post Share on other sites More sharing options...
Артём__ 1 October 26, 2011 Posted October 26, 2011 · Report post Вопрос к разработчикам ОС. Будет ли поддержка новых AVR в последующих версиях? Интересует семейство xMega. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 November 8, 2011 Posted November 8, 2011 · Report post Будет. STM8 я так-сяк запустил, теперь время на Xmega выделю. Потом на доводку STM8. Quote Share this post Link to post Share on other sites More sharing options...
a9d 0 January 28, 2012 Posted January 28, 2012 (edited) · Report post В версии для GCC есть небольшой косяк. При сборки версии, для ATmega168pa , с программным прерывание вылетает ошибка "SPM ready interrupt vector not defined". Это происходит из-за того, что вектор SPM_READY_vect называется SPM_Ready_vect. А так-же есть еще эта ошибка # if scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE != 1 # error scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE must be 1\ for SPM_READY interrupt context switcher # endif Это опечатка? (Этот вопрос уже прояснил, при программном прерывании scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE =1 ) Edited January 28, 2012 by a9d Quote Share this post Link to post Share on other sites More sharing options...
dxp 213 January 29, 2012 Posted January 29, 2012 · Report post В версии для GCC есть небольшой косяк. При сборки версии, для ATmega168pa , с программным прерывание вылетает ошибка "SPM ready interrupt vector not defined". Это происходит из-за того, что вектор SPM_READY_vect называется SPM_Ready_vect. Вообще-то, выбор и конфигурирование источника программного прерывания специально вынесен на уровень пользовательского проекта для: 1) предоставления пользователю полной свободы в этом вопросе; 2) обхода косяков в заголовках тулчейнов, когда для разных МК аналогичные макросы имеют чуть разные имена, как в примере выше. Поэтому, как я понимаю, ошибки тут нет - для МК, который используется в примере всё указанно верно, а при смене МК просто нужно откорректировать этот код проекта. Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 12, 2012 Posted February 12, 2012 · Report post Это происходит из-за того, что вектор SPM_READY_vect называется SPM_Ready_vect.Ой, а где это он так (SPM_Ready_vect) называется? В h-файлах от avr-libc есть только SPM_READY_vect и SPM_RDY_vect, эти имена и используются в примерах scmRTOS. Quote Share this post Link to post Share on other sites More sharing options...
a9d 0 February 12, 2012 Posted February 12, 2012 (edited) · Report post AVR Studio 5.1 хеадер для ATmega168pa. Там еще имена других прерываний отличаются от нормальных тем, что добавлено одно нижнее подчеркивание. Edited February 12, 2012 by a9d Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 12, 2012 Posted February 12, 2012 · Report post Т.е. в «тулчейне», который со студией? Тьху, заразы. И зачем они так? В предшественнике WinAVR было только с большими буквами. Кому-то захотелось красоту навести... Но когда в прошлый раз наводили, то XXX_YYY_vect поставили параллельно с SIG_XXX_YYY, старое всё собиралось. Хм. так это ж в avr-libc изменение. Это что, как у меня в убунте свежая версия avr-gcc появится, так тоже поменяется? Quote Share this post Link to post Share on other sites More sharing options...
Артём__ 1 March 8, 2012 Posted March 8, 2012 · Report post Как в версии 4 использовать исходники написанные для 3.10? Нужно где-то определить #define scmRTOS_OBSOLETE_NAMES 1 ? В каком файле это должно быть определено? Quote Share this post Link to post Share on other sites More sharing options...
Артём__ 1 March 8, 2012 Posted March 8, 2012 · Report post Задал в файле scmRTOS_CONFIG.h scmRTOS_OBSOLETE_NAMES 1 Получил: ../scmRTOS/Common/OS_Kernel.h: In member function 'void OS::TKernel::raise_context_switch()': ../scmRTOS/Common/OS_Kernel.h:182:46: error: 'RaiseContextSwitch' is not a member of 'OS' ./src/main.cpp: In function 'void OS::system_timer_user_hook()': ./src/main.cpp:116:6: error: redefinition of 'void OS::system_timer_user_hook()' ../scmRTOS/Common/OS_Kernel.h:496:17: error: 'void OS::system_timer_user_hook()' previously defined here make: *** [obj/main.o] Ошибка 1 Ошибка на строке: INLINE void raise_context_switch() { OS::RaiseContextSwitch(); } Что неправильно делаю? Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 March 8, 2012 Posted March 8, 2012 · Report post Значит, Вы не задали функцию RaiseContextSwitch() в пространстве OS у себя в проекте, в файле scmRTOS_TARGET_CFG.h И если исходники были для 3.10, то в них не могло быть функции system_timer_user_hook(), должна была быть SystemTimerUserHook() Пример 3-Channel для порта AVR/GCC специально оставлен в режиме совместимости, т.е. там все исходники примера от 3.10 Только в scmRTOS_CONFIG.h добавлена строка #include "scmRTOS_310_compat.h" и всё. Этого достаточно — компилируется в режиме совместимости. В том include-файле кроме #define scmRTOS_OBSOLETE_NAMES 1 ещё определено несколько нужных для 3.10 типов. Quote Share this post Link to post Share on other sites More sharing options...