Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Иар 5.10 для MSP430 и scmRTOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > scmRTOS
yuragv
Иар 5.10 для MSP430

компилятор выдает Internal Error на
INLINE inline void SetISRStackPointer() { __set_SP_register( reinterpret_cast<word>(__segment_end("CSTACK")) ); }

подскажите как по другому можно написать?

Можно обойти ошибку, выбрав уровень оптимизации Low. но тогда на все инлайн функции
выдает предупреждения - слишком низкий уровень оптимизации.

чем это чревато?
dxp
Цитата(yuragv @ Jun 14 2011, 21:33) *
Иар 5.10 для MSP430

У меня 5.30, ошибок нет.

Цитата(yuragv @ Jun 14 2011, 21:33) *
компилятор выдает Internal Error на
INLINE inline void SetISRStackPointer() { __set_SP_register( reinterpret_cast<word>(__segment_end("CSTACK")) ); }

подскажите как по другому можно написать?

Что по-другому написать? Ошибка возникает внутри компилятора, вы тут ничего сделать не сможете, кроме замены компилятора. А вообще, сильно не рекомендую использовать переключение на стек прерываний на процессорах, в которых такая возможность не поддерживается аппаратно.

Цитата(yuragv @ Jun 14 2011, 21:33) *
Можно обойти ошибку, выбрав уровень оптимизации Low. но тогда на все инлайн функции
выдает предупреждения - слишком низкий уровень оптимизации.

чем это чревато?

Чревато ошибками. Низкий уровень оптимизации приводит прежде всего к размещению переменных не в регистрах, а в стеке, и если это размещение происходит до переключения стеков, программа ляжет. Поэтому и не рекомендую это использовать без крайней необходимости.
demiurg_spb
Цитата(dxp @ Jun 15 2011, 11:23) *
А вообще, сильно не рекомендую использовать переключение на стек прерываний на процессорах, в которых такая возможность не поддерживается аппаратно.
Действительно. Какой вообще в этом толк?
dxp
Цитата(demiurg_spb @ Jun 15 2011, 15:41) *
Действительно. Какой вообще в этом толк?

Толк в чём? В отдельном стеке прерываний? Или в чём?
demiurg_spb
Цитата(dxp @ Jun 15 2011, 13:24) *
Толк в чём? В отдельном стеке прерываний? Или в чём?
В отдельном стеке прерываний на процессоре без оного.
dxp
Цитата(demiurg_spb @ Jun 15 2011, 16:57) *
В отдельном стеке прерываний на процессоре без оного.

Ну, причина та же - хоцца сэкономить на стеках процессов. Других причин в отдельном стеке прерываний я не знаю.
demiurg_spb
Понял. Я упустил момент что обсуждение в контексте ОСи происходит.
yuragv
простите за глупый вопрос. где бы качнуть 5.30 ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.