-
- Пока вычеркиваем - интересует просто вариант решения без глобальных и extern - MBedder(27.04.2013 16:12)
- Так а в чем вопрос? Обращение к глобальной переменной всегда можно заменить вызовом интерфейсной функции модуля, в которой будет обращение к скрытой в этом модуле переменной. Такой подход применим везде, и везде он даёт ухудшение эффективности. - Леонид Иванович(27.04.2013 19:22)
- Конечно. Зато, в случае применения ОСРВ (извиняюсь за выражение)имеем универсальность подхода и прочие плюсы. - tesla(27.04.2013 19:39)
- А какие интерфейсные функции могут быть у ISR? - MBedder(27.04.2013 19:29)
- ISR принадлежит модулю и работает с приватными данными модуля. Другой модуль получает доступ к этим данным через интерфейсные функции. Леонид Иванович(539 знак., 27.04.2013 19:39 - 19:56)
- Ну давай предельно упростим мою модель - ISR складывает данные в кольцевой буфер и, получив CRLF, выставляет флаг и обновляет указатель LastBytePtr. Фон, увидев этот флаг, обрабатывает данные от LastBytePtr до предыдущего CRLF - как всей MBedder(20 знак., 27.04.2013 20:07)
- Фон должен не читать напрямую флаг, а вызвать функцию, которая вернёт значение этого флага. Да, лишние накладные, зато очень легко вносить изменения в реализацию и таскать модули между проектами. - =AlexD=(27.04.2013 20:54)
- В принципе согласен, но жаба душит из-за накладных - MBedder(27.04.2013 20:58)
- у меня что-то подобное. накладные уменьшаю тем, что имею возможность сделать кольцевые буфера (куда всё складывает даже не софт, а DMA) оочень большими, такими, чтобы с запасом хватило при любых затыках, если они вдруг будут. - Mahagam(28.04.2013 00:41)
- Это само собой, но иногда памяти впритык, а иногда и ДМА нетути - MBedder(28.04.2013 00:42)
- Любая красота в программе вредит её эффективности. Но ведь предназначение человека - создавать в первую очередь красивые вещи, и только во вторую - работоспособные. - Леонид Иванович(27.04.2013 21:42)
- Я всю жизнь стремлюсь создавать красивые работоспособные вещи - пока получалось :)) - MBedder(27.04.2013 21:51)
- Красивые и работоспособные - это вообще идеал. Леонид Иванович(135 знак., 27.04.2013 21:57)
- Я для РС написал всего несколько программ - на Васике в конце 80-х и на TASM в 90-х, и больше туда не совался (и не собираюсь) - MBedder(27.04.2013 22:16)
- Увы, для сопроводжения "всякого своего дерьмеца", приходится, как минимум, вяско-разно "помахать дельфями". Например, для сопряжения с 1С делами. Или для конфигурирования этого "всякого своего дерьмеца". - Гудвин(27.04.2013 22:34)
- РС-шную задачу я легко могу сформулировать программисту, а МК-шную - с очень большим трудом и непредсказуемым результатом. Вот и пишу для МК сам, а для РС держу пару придворных щелкоперов :)) - MBedder(28.04.2013 00:21)
- Так речь не идет о том, что нужно собственноручно писать программы для PC. Просто на "взрослых" машинах ушли далеко вперед в вопросах архитектуры программ. Особенно с использованием ООП. Микроконтролерщики варятся в собственном соку, а правильнее Леонид Иванович(51 знак., 28.04.2013 02:18)
- там просто есть ресурсы на то, чтобы каждый класс задач реализовывать на своём языке. зачастую ни разу не оптимальном с точки зрения скорости исполнения, зато средства языка оптимальны для задачи. а даже eLua далеко не во всякий контроллер влезет. - Mahagam(28.04.2013 05:40)
- Скорее не опыт, а стиль, архитектуру и приемы - MBedder(28.04.2013 02:34)
- Ну у меня такой роскоши нет :) 1С программеры свое дело делают. Туда лезу только для "накропать OLE приблудку"+ "тестилку" для совокупления. - Гудвин(28.04.2013 00:29)
- "Делиться надо!"(с) Лившиц, R.I.P. :(( - MBedder(28.04.2013 00:44)
- Так речь не идет о том, что нужно собственноручно писать программы для PC. Просто на "взрослых" машинах ушли далеко вперед в вопросах архитектуры программ. Особенно с использованием ООП. Микроконтролерщики варятся в собственном соку, а правильнее Леонид Иванович(51 знак., 28.04.2013 02:18)
- РС-шную задачу я легко могу сформулировать программисту, а МК-шную - с очень большим трудом и непредсказуемым результатом. Вот и пишу для МК сам, а для РС держу пару придворных щелкоперов :)) - MBedder(28.04.2013 00:21)
- Увы, для сопроводжения "всякого своего дерьмеца", приходится, как минимум, вяско-разно "помахать дельфями". Например, для сопряжения с 1С делами. Или для конфигурирования этого "всякого своего дерьмеца". - Гудвин(27.04.2013 22:34)
- Я для РС написал всего несколько программ - на Васике в конце 80-х и на TASM в 90-х, и больше туда не совался (и не собираюсь) - MBedder(27.04.2013 22:16)
- Красивые и работоспособные - это вообще идеал. Леонид Иванович(135 знак., 27.04.2013 21:57)
- Я всю жизнь стремлюсь создавать красивые работоспособные вещи - пока получалось :)) - MBedder(27.04.2013 21:51)
- "Самый страшный зверь - это жаба. Она душила многих наших современников." А если серьёзно, то пока измерения не покажут необходимость оптимизации, то вся эта гонка за эффективностью - пустая трата драгоценного времени. - SciFi(27.04.2013 21:06)
- С++ рулит, флаг может быть статическим членом класса, а функция инлайновой. Тогда накладных нет. - =AlexD=(27.04.2013 21:00)
- Не факт. Есть ведь мелие MCU. - tesla(27.04.2013 21:07)
- Для мелких С++ вдвойне востребован. Если он вообще есть в наличии. - =AlexD=(27.04.2013 21:08)
- Эт чем же он востребован? Будем писать классы для ATtiny2313 ? tesla(25 знак., 27.04.2013 21:21)
- для ATtiny2313 ? Не, не классы. Шаблоны! - =AlexD=(27.04.2013 21:56)
- Эт чем же он востребован? Будем писать классы для ATtiny2313 ? tesla(25 знак., 27.04.2013 21:21)
- Для мелких С++ вдвойне востребован. Если он вообще есть в наличии. - =AlexD=(27.04.2013 21:08)
- Ага, ща я попрусь в С++, едва вступив в С :)) - MBedder(27.04.2013 21:04)
- Ага :-) бомж(28.04.2013 00:21)
- :)) - MBedder(28.04.2013 00:25)
- Пожалуй, поддержу призыв посмотреть в сторону C++. Монстроподобность его слишком преувеличена теми, кто с ним не знаком. - Леонид Иванович(27.04.2013 21:44)
- Может быть, может быть - но явно не в этой жизни :)) - MBedder(28.04.2013 00:22)
- Лучше не задерживайся на полдороге :-) - =AlexD=(27.04.2013 21:08)
- "Не царское это дело - в п#зде ковыряться, прикажу - в&ебут!"(с) :)) - MBedder(27.04.2013 21:17)
- Ага :-) бомж(28.04.2013 00:21)
- Не факт. Есть ведь мелие MCU. - tesla(27.04.2013 21:07)
- у меня что-то подобное. накладные уменьшаю тем, что имею возможность сделать кольцевые буфера (куда всё складывает даже не софт, а DMA) оочень большими, такими, чтобы с запасом хватило при любых затыках, если они вдруг будут. - Mahagam(28.04.2013 00:41)
- В принципе согласен, но жаба душит из-за накладных - MBedder(27.04.2013 20:58)
- Фон должен не читать напрямую флаг, а вызвать функцию, которая вернёт значение этого флага. Да, лишние накладные, зато очень легко вносить изменения в реализацию и таскать модули между проектами. - =AlexD=(27.04.2013 20:54)
- Ну давай предельно упростим мою модель - ISR складывает данные в кольцевой буфер и, получив CRLF, выставляет флаг и обновляет указатель LastBytePtr. Фон, увидев этот флаг, обрабатывает данные от LastBytePtr до предыдущего CRLF - как всей MBedder(20 знак., 27.04.2013 20:07)
- Долго думал. Думал, может я не прав. Нет, ни фига. Никаких интерфейсных функций у ISR быть не может! - tesla(27.04.2013 19:44)
- Хорошо задал вопрос. А то ить некоторые предполагают, что вызов функции из прерывания - это самое оно. tesla(129 знак., 27.04.2013 19:35)
- ISR принадлежит модулю и работает с приватными данными модуля. Другой модуль получает доступ к этим данным через интерфейсные функции. Леонид Иванович(539 знак., 27.04.2013 19:39 - 19:56)
- Так а в чем вопрос? Обращение к глобальной переменной всегда можно заменить вызовом интерфейсной функции модуля, в которой будет обращение к скрытой в этом модуле переменной. Такой подход применим везде, и везде он даёт ухудшение эффективности. - Леонид Иванович(27.04.2013 19:22)
- Пока вычеркиваем - интересует просто вариант решения без глобальных и extern - MBedder(27.04.2013 16:12)