Jump to content

    
Sign in to follow this  
dxp

v5

Recommended Posts

Начал править С-style cast'ы, проверяю, опять ругань, но уже на другие места:

 

Remark[Pa137]: use of C-style cast D:\pro\scmRTOS\scmrtos-sample-projects\scmRTOS\port\avr\iar\os_target.h 228

 

А код, на который ругается, такой:

 

INLINE stack_item_t* get_data_sp()   { return reinterpret_cast<stack_item_t*>(ABS_WORD(28)); }

 

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

#define ABS_WORD(x) (*((volatile uint16_t*)x))

 

Share this post


Link to post
Share on other sites

Отсюда скачал примеры https://github.com/scmrtos/scmrtos-sample-projects.git

Я раньше не знал о файле .gitmodules и никогда не пользовался этой возможностью (а потребность такая была)

Так вот при клонировании папка scmRTOS создалась а файлы в ней не появились.

Клиент tortoisegit это в нем проблема или что-то не так в .gitmodules?

Share this post


Link to post
Share on other sites

После клонирования репозитория надо дать две команды:

git submodule init
git submodule update

Либо можно клонировать сразу с субмодулями, при помощи команды

git clone --recursive

Как это делается в tortosegit - к сожалению не знаю.

Share this post


Link to post
Share on other sites

Похоже, остался старый баг в порте для IAR AVR - сообщение N227

При выборе режима передаче управления через системное прерывание (#define scmRTOS_CONTEXT_SWITCH_SCHEME 1) и

отключении пользовательского хука при переключении контекста (#define scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE 0)

постоянно висит и не сбрасывается системное прерывание SPM_READY, программа тормозит, а прерывания, имеющеи вектор

ниже SPM_READY_vect не вызываются никогда.

При выборе прямой передаче управления (#define scmRTOS_CONTEXT_SWITCH_SCHEME 1) или при передаче управления через прерывание SPM_READY (#define scmRTOS_CONTEXT_SWITCH_SCHEME 1) ,

но включении (#define scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE 1) все работает правильно.

Причем Real вроде-бы это дело фиксил, но точно не помню.

Прикладываю тестовый проект.

Test.zip

Share this post


Link to post
Share on other sites

Этот флаг не сбрасывается никогда. Точнее его невозможно сбросить программно. Поэтому там после вызова должно сниматься разрешение этого прерывания. Если это выключение разрешения прерывания потеряли мы - да, баг.

Share this post


Link to post
Share on other sites

начал посмотреть :)

респект за док

----

scmRTOS.en.Blackfin.VDSP.pdf

scmRTOS.en.MSP430.IAR.pdf

scmRTOS.ru.AVR.GCC.pdf

scmRTOS.ru.AVR.IAR.pdf

scmRTOS.ru.Blackfin.VDSP.pdf

scmRTOS.ru.CortexM3.GCC.pdf

scmRTOS.ru.CortexM3.IAR.pdf

scmRTOS.ru.MSP430.GCC.pdf

scmRTOS.ru.MSP430.IAR.pdf

----

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.

Sign in to follow this