Цитата(Aprox @ May 23 2012, 15:30)

По-моему inline-подстановка в данном случае используется не по назначению. Не для этого она придумана.
Её можно и не использовать. Тут она предлагается исключительно в целях повышения эффективности построенного кода, для чего она и придумана.
Цитата(Aprox @ May 23 2012, 15:30)

Да и вообще, задача сделать метод класса обработчиком прерывания имеет чисто академический интерес из той же серии- использовать обьектное программирование не по назначению.
Ну это с Вашей,
современной точки зрения.
Со
старой, привычной точки зрения
In OOP, each object is capable of receiving messages, processing data, and sending messages to other objectsThe tasks we are allowed to ask an object to perform (or equivalently, the messages it understands) are that object's methods.Вызов метода — это способ послать сообщение объекту. Прерывания — это сообщения от аппаратуры.
Так что всё в рамках использования по назначению.
Цитата(Aprox @ May 23 2012, 17:57)

Иными словами, время старых, привычных решений уходит.
Уже слышали.
В подпись поставьте, чтобы не писать каждый раз.
Только новую тему с обсуждением устаревшести движка данного форума и возможностях подписей в
современных движках не открывайте.
Если кто захочет ответить по сути вопроса, вынесенного в заголовок этой темы — просмотрите сначала
ту тему, из которой обсуждение выплеснулось сюда.
Если очень лень, можно ограничиться этим:
Цитата(Aprox @ Apr 16 2012, 23:04)

Наверное вы не поняли, что задачей в моем случае является ISR, которая оформлена в виде защищенного метода в классе с защищенными данными.
Т.е. в сообщении 103 автор использует ISR - приватные методы и именно это он противопоставляет scmRTOS на протяжении нескольких страниц той темы. Но когда ему показали, как это делается в scmRTOS, он в сообщении 143 уже пишет:
Цитата(Aprox @ Apr 18 2012, 22:38)

Кстати, у вас метод uart_t::irq_handler() представлен как член класса uart_t. Позвольте каверзный вопрос, как это удается в С++ оформить метод класса в виде ISR? Да еще и зарегестрировать соответствующий вектор в контроллере прерываний?
И десятком сообщений позже по поводу своего знания C++ и инструментария:
Цитата(Aprox @ Apr 19 2012, 15:57)

Цитата(ReAl @ Apr 19 2012, 00:22)

Естественно, нестатический метод обработчиком не поставить.
Отчего же? Что нам мешает динамически изменять вектора в контроллере прерываний? Дело же в другом- ISR должна быть оформлена по другому, не как обычные процедуры и функции.
Цитата
Естественно, статический можно либо вызвать из обработчика либо назначить обработчиком — в зависимости от возможностей компилятора.
С++ знаете так же хорошо, как и историю развития микроконтроллеров?
Вполне достаточно, чтобы понять- методы в классах нельзя назначать как ISR. В принципе нельзя, независимо от возможностей компилятора. На эту ошибку я и указал
Antoxa. Что же касается вызвать метод класса из настоящей ISR, то последняя должна размещаться в программном модуле, тоже написанном на С++. И вот, я действительно не знаю- есть ли
в компиляторе С++, например IAR, такие служебные слова, которые превращают обычную функцию в ISR? Если знаете- буду очень признателен услышать.
И это несмотря на наличие примеров и ссылок на примеры до этого.
И несмотря на то, что начинал он разговор с того, что «в его случае»
ISR является методом класса.
После чего решайте, стоит ли дублировать тут ответы, которые уже давались.
Кстати, обратите внимание на реакцию на слова «нестатический метод класса». В привате с предложением «продолжить дискуссию» он тоже спрашивал меня — что я имею ввиду под «статическим и динамическим» методами класса (это я к тому, что с таким уровнем постановки вопроса тема точно для раздела «В помощь начинающему»)