Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: _Pragma(), етить ее!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Сергей Борщ
Имеем:
Код
#pragma segment = "INT_HANDLERS"
#pragma location = "INT_HANDLERS"
В задачнике спрашивается, как это засунуть в _Pragma(), чтобы использовать внутри #define? Ведь _Pragma() сама хочет свой аргумент видеть в кавычках. Голову сломал.
zltigo
Цитата(Сергей Борщ @ Jul 5 2007, 00:54) *
Голову сломал.

Смотрю решил сделать порт на STR71x ???

Удивил smile.gif, не ожидал от тебя:
#define I_LOC _Pragma( "location=\"INT_HANDLERS\"" )
как и
printf( "Hello from \"Hell\"! " );
Сергей Борщ
Цитата(zltigo @ Jul 5 2007, 01:05) *
Смотрю решил сделать порт на STR71x ???
Угу, его и мучаю. Ты был прав - мама дорогая, до чего же кривой контроллер прерываний!
Цитата(zltigo @ Jul 5 2007, 01:05) *
не ожидал от тебя:
И правда, прошло. Просто вчера, когда с паковкой возился пытался сделать что-то похожее (передать аргумент #define внутрь _Pragma("pack (push, N)" и ничего не получилось. Вот и решил, чо тут по аналогии будет ж будут те же грабли.
zltigo
Цитата(Сергей Борщ @ Jul 5 2007, 01:48) *
вчера, когда с паковкой возился пытался сделать что-то похожее (передать аргумент #define внутрь _Pragma("pack (push, N)" и ничего не получилось.

Ну тут отцы-основатели недоделали ## sad.gif могли-бы 'правильно' склеивать строки а не в рассчете, например, на printf() который сам потом доклеит. Тогда-бы и вещи типа:
Код
#define PPP(x) _Pragma( "pack (push,"###x##")"

работали-бы на ура.
Натыкался тоже уже однажды на подобное неудобство sad.gif
Сергей Борщ
Цитата(zltigo @ Jul 5 2007, 12:23) *
Ну тут отцы-основатели недоделали ## sad.gif
Или решение есть, но мы его пока не знаем. На этом считаем исходную тему исчерпавшей себя. Закрываю. Обсуждение _Pragma("pack(push, N")) продолжаем в другой ветке.
zltigo
Цитата(Сергей Борщ @ Jul 5 2007, 13:14) *
Или решение есть, но мы его пока не знаем.

Решения нет, ибо подстановки в стрингах, естествено, не работают, а предусмотренный для обхода такого механизм склеивания литералов, как я уже писал, слишком примитивно работает при склеивании строк sad.gif.
Вот на этой безрадостной ноте и можно закрыть sad.gif.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.