Jump to content
    

Для ускорения выхода релиза я принял решение прекратить поддержку следующих портов 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 и дальнейшей поддержки.

Share this post


Link to post
Share on other sites

Вопрос решён положительно, все private члены классов-сервисов теперь являются protected.

Спасибо!

Share this post


Link to post
Share on other sites

А я применяю (706x). Давай тогда мне его?
А забирай. Я сегодня зафиксировал последние (надеюсь) правки порта, осталось добить примеры и документацию. Добавил возможность компилить любые файлы (включая файлы ОС) в thumb - для ADuC, с его 16-битной флешью, будет полезно. Проверил - первый пример на SAM7, полностью в thumb за исключением трех необходимых файлов, запустился.

 

Share this post


Link to post
Share on other sites

Забрал:)

Все примеры компилятся, thumb ещё не пробовал. Примеры LPC2xxx - тоже обновил, арбайтен. (И то и то - GCC.)

Пример №4 делать не буду ни там ни там, нет времени. Может потом...

Share this post


Link to post
Share on other sites

Вопрос к разработчикам ОС.

 

Будет ли поддержка новых AVR в последующих версиях?

Интересует семейство xMega.

 

Спасибо.

Share this post


Link to post
Share on other sites

Будет. STM8 я так-сяк запустил, теперь время на Xmega выделю. Потом на доводку STM8.

Share this post


Link to post
Share on other sites

В версии для 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 by a9d

Share this post


Link to post
Share on other sites

В версии для GCC есть небольшой косяк. При сборки версии, для ATmega168pa , с программным прерывание вылетает ошибка "SPM ready interrupt vector not defined". Это происходит из-за того, что вектор SPM_READY_vect называется SPM_Ready_vect.

Вообще-то, выбор и конфигурирование источника программного прерывания специально вынесен на уровень пользовательского проекта для: 1) предоставления пользователю полной свободы в этом вопросе; 2) обхода косяков в заголовках тулчейнов, когда для разных МК аналогичные макросы имеют чуть разные имена, как в примере выше.

 

Поэтому, как я понимаю, ошибки тут нет - для МК, который используется в примере всё указанно верно, а при смене МК просто нужно откорректировать этот код проекта.

Share this post


Link to post
Share on other sites

Это происходит из-за того, что вектор SPM_READY_vect называется SPM_Ready_vect.
Ой, а где это он так (SPM_Ready_vect) называется? В h-файлах от avr-libc есть только SPM_READY_vect и SPM_RDY_vect, эти имена и используются в примерах scmRTOS.

Share this post


Link to post
Share on other sites

AVR Studio 5.1 хеадер для ATmega168pa.

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

Edited by a9d

Share this post


Link to post
Share on other sites

Т.е. в «тулчейне», который со студией? Тьху, заразы. И зачем они так? В предшественнике WinAVR было только с большими буквами.

Кому-то захотелось красоту навести... Но когда в прошлый раз наводили, то XXX_YYY_vect поставили параллельно с SIG_XXX_YYY, старое всё собиралось.

Хм. так это ж в avr-libc изменение. Это что, как у меня в убунте свежая версия avr-gcc появится, так тоже поменяется?

Share this post


Link to post
Share on other sites

Как в версии 4 использовать исходники написанные для 3.10?

Нужно где-то определить

#define scmRTOS_OBSOLETE_NAMES 1

?

В каком файле это должно быть определено?

Share this post


Link to post
Share on other sites

Задал в файле 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(); }

Что неправильно делаю?

Share this post


Link to post
Share on other sites

Значит, Вы не задали функцию 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 типов.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...