-
- смешались кони с котлетами koyodza(2082 знак., 26.04.2013 18:00)
- Вы потянули слишком сильно в грубины RTOS. Имеем жесткий быстрый реал-тайм в нескольких логических модулей плюс мягкий разноуровневый реалтайм. Я реализую как последовательные вызовы функций из каждого модуля в прерываниях по системному тику, плюс Vladimir Ljaschko(358 знак., 27.04.2013 16:58)
- поясните, что Вы называете "жестким реалтаймом"? На примере, пожалуйста - koyodza(27.04.2013 20:30)
- Например ногодрыганье квантами 500 мкс с джиттером до 5-10 мкс и наличие других процессов с тем же периодом, пусть большим джиттером (например, программный опрос счетчиков). Поясните плз Вашу альтернативу без ISR и вызова функций. - Vladimir Ljaschko(27.04.2013 20:46)
- там, где тайминги важны, нужно максимально делать аппаратно. То, что не получается делать аппаратно - делается с использованием прерываний, но с минимумом работы внутри прерывания koyodza(1395 знак., 27.04.2013 21:00)
- К сожалению, требования появились через 3-4 года после начала выпуска, поэтому аппаратуру (в том числе ISR в полном объеме) использовать не получается :( В части завышения требований есть пара слабых мест, но они существенно не спасают. Vladimir Ljaschko(228 знак., 27.04.2013 21:23)
- Ну вот и ответ. Попытки впихнуть дополнительный функционал в старое железо - это особый случай, тут все методы хороши. Но не следует на этом примере строить свой стиль программирования. - Леонид Иванович(27.04.2013 21:52)
- Мой стиль идеален для множества идеальных микроконтроллеров ибо знание архитектуры и периферии не требуется. Простое портирование проекта только по критериям быстродействия ядра. Поставил бы ARM - все проблемы бы отпали при сохранения стиля! :) - Vladimir Ljaschko(27.04.2013 22:13)
- Вы сильно заблуждаетесь: бардак имеет свойство нарастать, если ему предоставлять дополнительные ресурсы - koyodza(27.04.2013 22:22)
- +100500 - koyodza(27.04.2013 21:55)
- Мой стиль идеален для множества идеальных микроконтроллеров ибо знание архитектуры и периферии не требуется. Простое портирование проекта только по критериям быстродействия ядра. Поставил бы ARM - все проблемы бы отпали при сохранения стиля! :) - Vladimir Ljaschko(27.04.2013 22:13)
- изначально неправильно спроектированную систему вряд-ли удастся превратить в нормальную, но можно по крайней мере попытаться не усугублять ситуацию. А какой там МК - не важно, если его в принципе хватает - koyodza(27.04.2013 21:43)
- Ну вот и ответ. Попытки впихнуть дополнительный функционал в старое железо - это особый случай, тут все методы хороши. Но не следует на этом примере строить свой стиль программирования. - Леонид Иванович(27.04.2013 21:52)
- К сожалению, требования появились через 3-4 года после начала выпуска, поэтому аппаратуру (в том числе ISR в полном объеме) использовать не получается :( В части завышения требований есть пара слабых мест, но они существенно не спасают. Vladimir Ljaschko(228 знак., 27.04.2013 21:23)
- Собственно, я выше указал. - Vladimir Ljaschko(27.04.2013 20:48, ссылка)
- там, где тайминги важны, нужно максимально делать аппаратно. То, что не получается делать аппаратно - делается с использованием прерываний, но с минимумом работы внутри прерывания koyodza(1395 знак., 27.04.2013 21:00)
- Например ногодрыганье квантами 500 мкс с джиттером до 5-10 мкс и наличие других процессов с тем же периодом, пусть большим джиттером (например, программный опрос счетчиков). Поясните плз Вашу альтернативу без ISR и вызова функций. - Vladimir Ljaschko(27.04.2013 20:46)
- Присоединяюсь к вопросу, который задал fk0 ниже: какой-такой жесткий реалтайм? Придумываете несуществующие требования, чтобы только оправдать свою точку зрения. - Леонид Иванович(27.04.2013 19:24)
- поясните, что Вы называете "жестким реалтаймом"? На примере, пожалуйста - koyodza(27.04.2013 20:30)
- просцыте великодушно, но почему бы вытесняющую многозадачность не влепить? - Mahagam(26.04.2013 19:46)
- накуа? Чтобы ничего не контролировать? Хватит с меня и винды, в МК по-возможности минимизирую использование чужого кода - koyodza(26.04.2013 20:10)
- я без исходников (или с малочитаемыми) многозадачку и не рассматриваю. а та которая понята - та полностью под контролем. - Mahagam(26.04.2013 20:34)
- мне эта понятнее. Вытесняемость пока не нужна - koyodza(26.04.2013 21:28)
- а по мне так оно куда как проще получается. - Mahagam(26.04.2013 20:12)
- Как в вытесняющей многозадачности сделать два параллельных strtok() ? Или как многозадачность -- так вытесняющая. А как библиотечные функции -- не используем. (можно сделать, но не на всякой libc) - fk0(26.04.2013 20:35)
- да, нужна аккуратность. Либо abivan(2420 знак., 27.04.2013 14:07)
- и много таких однопоточных функций? если придётся отказаться от strtok() ради всего удобства многозадачности - то почему бы и нет? - Mahagam(26.04.2013 21:36)
- Если явно то не указано -- вся C-библиотека. И масса собственного кода, если не принималось мер против того. Любая static переменная всё портит же. Что характерно во многих "ОС" нет понятия thread local storage. Что наводит мысль на крайнюю их fk0(14 знак., 26.04.2013 22:28)
- галимейший фриртос портировали на всё что может исполнять хоть какое-то подобие программ. сделали поддержку чуть ли не всех существующих компиляторов, и кагбээ проблем особо не возникает. вы про все Си-либы серьёзно? да? - Mahagam(27.04.2013 01:06)
- В "галимейшем фриртосе" как раз проблема с отсутствием глобальной переменной позволяющей хранить thread specific data. А проблем не возникает потому, что фриртос используют совместно с весьма специфическими программами. Где библиотечных функций не fk0(1061 знак., 27.04.2013 11:57)
- Пардон за вмешательство.Это не FF виноват. saifullin(82 знак., 27.04.2013 20:24)
- у меня 98% вызовов библиотечных функций - это тупо memcpy() да memset(). всё. остальное - свой код, который пишется вручную. а вы что? используете кодогенераторы? или как? Mahagam(1016 знак., 27.04.2013 13:15)
- А malloc? rand? А errno, наконец? А на errno, между прочим, завязана масса функций из math.h -- всё это неиспользовать, написать своё? Уже маразм в полную силу, не кажется? И попрошу заметить, во вменяемых ОС с потокобезопасностью всего этого fk0(2841 знак., 27.04.2013 16:47)
- malloc() пусть горит в огне. нехватало ещё нарваться на утечки памяти да отказ в выделении. цена крэша ~100k$, а MMU прикручивать пока что нет времени и возможностей. ведь на примитивном уровне TLS - это стек потока, ну так избавится от статиков Mahagam(1310 знак., 28.04.2013 01:37)
- Изначально речь шла про FreeRTOS, а не CrossWorks. Так вот в FreeRTOS невозможно ожидать множество событий. Это принципиальное ограничение. - fk0(28.04.2013 16:06)
- Утечки и фрагментация памяти -- это миф, как мне кажется, про который любят очень рассказывать те, кто их в глаза не видел. Только в узком круге задач возможна фрагментация или требуется гарантированное выделение памяти. Там и там можно тем же fk0(179 знак., 28.04.2013 16:02)
- MMU притянут за уши. Для реализации TLS нужна всего лишь некая глобальная переменная-указатель меняющая значение при переключении задач. MMU для неё не нужен и при наличии MMU она автоматически не появится, если её нет. - fk0(28.04.2013 15:31)
- MMU и будет менять адрес с переключением задач. - Mahagam(28.04.2013 15:37)
- "цена крэша ~100k$" - чуть не помер от хохота. Пальцы веером у Вас, наверное, даже во сне? - Леонид Иванович(28.04.2013 02:14)
- какое отношение имеет сон к суровой реальности? - Mahagam(28.04.2013 14:48)
- Уважаемый Леонид Иванович, не смейтесь, знаете, как тяжело отлаживать софт, не имея возможности протестировать все на рабочем объекте? Потому как сделать это можно всего один раз, ибо цена, скажем так, "включения" этого объекта, несколько alex68(187 знак., 28.04.2013 03:35)
- Да ладно Вам, знаю я, какие космические корабли тут запускают с крыш курятников. Один-единственный фирменный БП на весь форум говорит о многом. - Леонид Иванович(28.04.2013 11:56)
- разные есть. Но те, что громче кричат о "сотнях к$" обычно об этом только мечтают. Фирменное оборудование - тоже не показатель серьёзности/ответственности проектов, а только показатель количества выделяемых на его закупку денег koyodza(285 знак., 28.04.2013 12:58)
- Конечно, дело не в том, что кушать нечего. Леонид Иванович(115 знак., 28.04.2013 13:08)
- возможно, точно так же никто ни разу не уперся в проблему, когда нужен лабораторный БП от агилента, всех устраивают mastech и подобные, а выкидывать кучу денег непонятно на что мало кому хочется. Так зачем Вы всё время об этом вспоминаете? - koyodza(28.04.2013 14:51)
- Off. Не очень понял - меня пинают всуе за то, что имел наглость купить себе дешевый фирменный блок питания? :) Или за то, что написал здесь про это? - alex68(28.04.2013 15:26)
- Наоборот, только Вам я могу поверить, что участвуете в проектах за килобаксы. Кстати, хотел спросить: Леонид Иванович(149 знак., 28.04.2013 18:13)
- Они не бывают на форумах. Но спросите здесь, я узнаю всё у них. - alex68(28.04.2013 18:32)
- не Вас, а ЛИ: за то, что он всех пинает за то, что все рассказывают о "крутых проектах", а сами не хотят покупать дорогие блоки питания - koyodza(28.04.2013 15:47)
- В это верю - проекты на работе, а не дома , а руководство жмется на оборудование. У нас редкое исключение, покупают СВЧ анализаторы и тому подобное за реально большие деньги. Но без них невозможно обеспечить требуемые параметры. - alex68(28.04.2013 15:58)
- это понятно koyodza(212 знак., 28.04.2013 16:02)
- У нас не так. Просто так не покупают даже простой отладчик. Надо подойти к начальнику (иногда и ко мне) и внятно сказать зачем оно надо :) - alex68(28.04.2013 16:31)
- У "крутого" оборудования есть и масса других недостатков - масса, габариты, шумящее охлаждение, долгая загрузка Windows XP... :-)) - =AlexD=(28.04.2013 16:25)
- Если нужно увидеть шумы на уровне минус 160-170 децибел, то без разницы, сколько весит аппарат, хоть центнер. Либо глянуть на работу фазового модулятора на гигагерцах :) - alex68(28.04.2013 16:35)
- Это я не к тому, что крутое оборудование - плохо, а к тому, что покупка чего попроще может быть сознательным выбором, а не прихотью начальства :-). - =AlexD=(28.04.2013 17:08)
- +100500. В этом вопросе тоже полезна бывает умеренность - koyodza(28.04.2013 17:09)
- Это я не к тому, что крутое оборудование - плохо, а к тому, что покупка чего попроще может быть сознательным выбором, а не прихотью начальства :-). - =AlexD=(28.04.2013 17:08)
- К слову, Linux загружается на менее крутом оборудовании не сильно быстрее - Alex B.(28.04.2013 16:33)
- бывает и 95 или даже NT3.51 :=) - koyodza(28.04.2013 16:26)
- Если нужно увидеть шумы на уровне минус 160-170 децибел, то без разницы, сколько весит аппарат, хоть центнер. Либо глянуть на работу фазового модулятора на гигагерцах :) - alex68(28.04.2013 16:35)
- это понятно koyodza(212 знак., 28.04.2013 16:02)
- В это верю - проекты на работе, а не дома , а руководство жмется на оборудование. У нас редкое исключение, покупают СВЧ анализаторы и тому подобное за реально большие деньги. Но без них невозможно обеспечить требуемые параметры. - alex68(28.04.2013 15:58)
- Наоборот, только Вам я могу поверить, что участвуете в проектах за килобаксы. Кстати, хотел спросить: Леонид Иванович(149 знак., 28.04.2013 18:13)
- Off. Не очень понял - меня пинают всуе за то, что имел наглость купить себе дешевый фирменный блок питания? :) Или за то, что написал здесь про это? - alex68(28.04.2013 15:26)
- возможно, точно так же никто ни разу не уперся в проблему, когда нужен лабораторный БП от агилента, всех устраивают mastech и подобные, а выкидывать кучу денег непонятно на что мало кому хочется. Так зачем Вы всё время об этом вспоминаете? - koyodza(28.04.2013 14:51)
- Конечно, дело не в том, что кушать нечего. Леонид Иванович(115 знак., 28.04.2013 13:08)
- Речь не о космосе, там стоимость запуска много выше :) Ну и не все говорят всю правду о себе и работе :) Повторюсь - не имея сколько нибудь адекватного стенда, отлаживаться очень трудно, и стоимость ошибок очень велика. Приходится все отлаживать alex68(57 знак., 28.04.2013 12:44)
- В таком случае есть какая-то модель объекта, симулятор. Не надо перегибать палку. - fk0(28.04.2013 16:10)
- Нет, совет должен быть другим. Леонид Иванович(144 знак., 28.04.2013 18:10)
- По этому поводу могу сказать, что всегда говорю программистам - не получается что-то, не молчите, скажите, будем разбираться вместе, либо найдем еще кого-то для консультации. А то тянут до сдачи этапа :) Ну а простых задач у нас нет вообще. - alex68(28.04.2013 18:36)
- Никогда не понимал, почему некоторые люди идут, например, в шахтеры, ведь более легкая работа всегда есть. - Леонид Иванович(28.04.2013 18:41)
- есть места, где другой работы практически нет, всё завязано на шахту. Альтернатива - только менять место жительства koyodza(147 знак., 28.04.2013 18:54)
- Никогда не понимал, почему некоторые люди идут, например, в шахтеры, ведь более легкая работа всегда есть. - Леонид Иванович(28.04.2013 18:41)
- По этому поводу могу сказать, что всегда говорю программистам - не получается что-то, не молчите, скажите, будем разбираться вместе, либо найдем еще кого-то для консультации. А то тянут до сдачи этапа :) Ну а простых задач у нас нет вообще. - alex68(28.04.2013 18:36)
- Блин, сами идите и полетайте, а потом пишите :) - alex68(28.04.2013 17:20)
- модель часто сильно отличается от реальности в крупных проектах, где задействован не только электронщик с программистом, а токари, слесари, строители и прочие, а сама модель строится по чисто теоретическим оценкам какого-то математика, зачастую не koyodza(65 знак., 28.04.2013 16:18)
- плюс мильярд :) - alex68(28.04.2013 17:22)
- Нет, совет должен быть другим. Леонид Иванович(144 знак., 28.04.2013 18:10)
- В таком случае есть какая-то модель объекта, симулятор. Не надо перегибать палку. - fk0(28.04.2013 16:10)
- разные есть. Но те, что громче кричат о "сотнях к$" обычно об этом только мечтают. Фирменное оборудование - тоже не показатель серьёзности/ответственности проектов, а только показатель количества выделяемых на его закупку денег koyodza(285 знак., 28.04.2013 12:58)
- Да ладно Вам, знаю я, какие космические корабли тут запускают с крыш курятников. Один-единственный фирменный БП на весь форум говорит о многом. - Леонид Иванович(28.04.2013 11:56)
- Ну и напрасно. "Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам"(с) - MBedder(28.04.2013 02:33)
- malloc() пусть горит в огне. нехватало ещё нарваться на утечки памяти да отказ в выделении. цена крэша ~100k$, а MMU прикручивать пока что нет времени и возможностей. ведь на примитивном уровне TLS - это стек потока, ну так избавится от статиков Mahagam(1310 знак., 28.04.2013 01:37)
- А malloc? rand? А errno, наконец? А на errno, между прочим, завязана масса функций из math.h -- всё это неиспользовать, написать своё? Уже маразм в полную силу, не кажется? И попрошу заметить, во вменяемых ОС с потокобезопасностью всего этого fk0(2841 знак., 27.04.2013 16:47)
- ы? -> - Snaky(27.04.2013 12:16, ссылка)
- жаль, было бы интересно почитать - koyodza(27.04.2013 12:00)
- В "галимейшем фриртосе" как раз проблема с отсутствием глобальной переменной позволяющей хранить thread specific data. А проблем не возникает потому, что фриртос используют совместно с весьма специфическими программами. Где библиотечных функций не fk0(1061 знак., 27.04.2013 11:57)
- галимейший фриртос портировали на всё что может исполнять хоть какое-то подобие программ. сделали поддержку чуть ли не всех существующих компиляторов, и кагбээ проблем особо не возникает. вы про все Си-либы серьёзно? да? - Mahagam(27.04.2013 01:06)
- Если явно то не указано -- вся C-библиотека. И масса собственного кода, если не принималось мер против того. Любая static переменная всё портит же. Что характерно во многих "ОС" нет понятия thread local storage. Что наводит мысль на крайнюю их fk0(14 знак., 26.04.2013 22:28)
- проще, не спорю - по крайней мере для случаев, когда есть асинхронные задачи, выполняющиеся долго. Но лучше обойдусь без этого. Вопросы надёжности и разделения ответственности мне более важны, чем простота использования - koyodza(26.04.2013 20:13)
- Как в вытесняющей многозадачности сделать два параллельных strtok() ? Или как многозадачность -- так вытесняющая. А как библиотечные функции -- не используем. (можно сделать, но не на всякой libc) - fk0(26.04.2013 20:35)
- я без исходников (или с малочитаемыми) многозадачку и не рассматриваю. а та которая понята - та полностью под контролем. - Mahagam(26.04.2013 20:34)
- накуа? Чтобы ничего не контролировать? Хватит с меня и винды, в МК по-возможности минимизирую использование чужого кода - koyodza(26.04.2013 20:10)
- Вы потянули слишком сильно в грубины RTOS. Имеем жесткий быстрый реал-тайм в нескольких логических модулей плюс мягкий разноуровневый реалтайм. Я реализую как последовательные вызовы функций из каждого модуля в прерываниях по системному тику, плюс Vladimir Ljaschko(358 знак., 27.04.2013 16:58)
- смешались кони с котлетами koyodza(2082 знак., 26.04.2013 18:00)