Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.
-
- Вопрос в ресурсоемкости. Жопой чую, что uC/OS-III не для 2k RAM создавалось. - Evgeny_CD(29.04.2013 12:52)
- Ага, щас фсе бросим и будим писать свой код. - tesla(04.05.2013 18:47)
- Для 2k RAM ОС не нужна. - fk0(29.04.2013 13:00)
- Вопрос в фичастости. Таск свитчер, шедулер и простейшие примитивы синхронизации и влезут, и полензны, и использовать их стоит. Я же не говорю про POSIX. - Evgeny_CD(29.04.2013 13:49)
- Честное управление задачами требует для них раздельного стека. 2k - это очень-очень немного, если еще учесть, что стек выделяется с избытком. - Хитрый Китаец(02.05.2013 22:20)
- Для простой задачи потребление стека расчитать вполне можно. Возможно придётся добавить к полученному числу стек для прерываний. Информацию для расчёта линкер даёт. - Apтём(02.05.2013 23:22)
- До первого вызова чего-то вроде qsort()... - fk0(02.05.2013 23:49)
- стекозанятость нормального qsort`а ~log2(N). +оверхед какой. один раз померять и ссё. - Mahagam(03.05.2013 00:08)
- Померять != линкер даёт. Линкер тут ничего не даст. Да и измерить не всегда можно правильно... - fk0(03.05.2013 00:26)
- Мне qsort не нужен. - Apтём(02.05.2013 23:55)
- стекозанятость нормального qsort`а ~log2(N). +оверхед какой. один раз померять и ссё. - Mahagam(03.05.2013 00:08)
- Вероятно, для компактности лучше иметь отдельный стек для прерываний. - Evgeny_CD(02.05.2013 23:33)
- Лучше, но это уже от прозводителя МК зависит - сделает он такой стек или нет. - Apтём(02.05.2013 23:38)
- Производитель МК не нужен. Достаточно в обработчике переключить стек. - fk0(02.05.2013 23:49)
- Это чревато всякого рода неприятностими. Я сам на них не нарывался, но люди говорят, что бывает. - Apтём(02.05.2013 23:56)
- Говорят, что кур доят. Сделать можно. Кто ниасилил это сделать корректно без глюков -- сам виноват. Другое дело что... накладные расходы большие, лучше аппаратно. - fk0(03.05.2013 00:28)
- Вопрос не в том что можно.Делать там особо и нечего - на входе прерывания SP процесса сохранил, заменил на SP прерываний. На выходе наоборот. Apтём(1052 знак., 03.05.2013 00:36)
- Фуфлология. Тут соглашаться не с чем и читать подобную ерунду я бы не стал. Принципиально сделать можно. Рассматривать же какой-то конкретный авторский говнокод с неведомо каким компилятором... оно того не стоит. Я могу согласиться, лишь с тем, fk0(238 знак., 03.05.2013 00:49)
- Компилятор IAR либо GCC, МК - АВР может ещё какие из любительских. - Apтём(03.05.2013 00:57)
- Надо за деревьями уметь увидеть лес. Компилятор не важно какой. Можно вовсе на ассемблере написать (вход-выход из прерываний). - fk0(03.05.2013 01:50)
- Не знаю где тут лес, где деревья, но что на асме писать муторно - это точно. - Apтём(03.05.2013 02:00)
- Надо за деревьями уметь увидеть лес. Компилятор не важно какой. Можно вовсе на ассемблере написать (вход-выход из прерываний). - fk0(03.05.2013 01:50)
- Компилятор IAR либо GCC, МК - АВР может ещё какие из любительских. - Apтём(03.05.2013 00:57)
- Фуфлология. Тут соглашаться не с чем и читать подобную ерунду я бы не стал. Принципиально сделать можно. Рассматривать же какой-то конкретный авторский говнокод с неведомо каким компилятором... оно того не стоит. Я могу согласиться, лишь с тем, fk0(238 знак., 03.05.2013 00:49)
- Вопрос не в том что можно.Делать там особо и нечего - на входе прерывания SP процесса сохранил, заменил на SP прерываний. На выходе наоборот. Apтём(1052 знак., 03.05.2013 00:36)
- Говорят, что кур доят. Сделать можно. Кто ниасилил это сделать корректно без глюков -- сам виноват. Другое дело что... накладные расходы большие, лучше аппаратно. - fk0(03.05.2013 00:28)
- Это чревато всякого рода неприятностими. Я сам на них не нарывался, но люди говорят, что бывает. - Apтём(02.05.2013 23:56)
- В RL78 ваще 4 банка регистров :) - Evgeny_CD(02.05.2013 23:42)
- Банки это конечно хорошо, если StackPointer переключается, то ещё лучше. RL78, при чём тут RL78 - топик-то про АВР...а у meg/xmeg ни того, ни другого. :( - Apтём(02.05.2013 23:50 - 03.05.2013 00:00)
- Производитель МК не нужен. Достаточно в обработчике переключить стек. - fk0(02.05.2013 23:49)
- Лучше, но это уже от прозводителя МК зависит - сделает он такой стек или нет. - Apтём(02.05.2013 23:38)
- До первого вызова чего-то вроде qsort()... - fk0(02.05.2013 23:49)
- И тут мы подходим к самому интимному моменту компактного осестроения - точному измерению потребления стека каждой задачей. Да, это вопрос вопросов. - Evgeny_CD(02.05.2013 23:16)
- а фигли его мерять? забили стеки при старте хитрожопой константой, а потом в отдельном потоке раз в пару секунд смотрим что изменилось Mahagam(383 знак., 02.05.2013 23:41)
- Как предсказывали потребление, если не секрет? И для каких МК? - Apтём(02.05.2013 23:51)
- навскидку, по количеству переменных и вызовов других функций. оказалось что не сильно-то и вяжется. Mahagam(194 знак., 03.05.2013 00:03)
- Логично что не вяжется: переменные компилятор сотпимизировать может. Apтём(131 знак., 03.05.2013 00:12)
- из либ 99% - memset да memcpy, местами itoa да strncmp. Mahagam(221 знак., 03.05.2013 00:44)
- Сортировать пузырьком -- это попросту неприлично. Есть, например, сортировка Шелла, прекрасно заменяет qsort, не требует рекурсий, работает не сильно хуже... По ссылке весьма наглядная демонстрация. - fk0(03.05.2013 00:51, ссылка)
- видел я эти анимации. Mahagam(80 знак., 03.05.2013 01:05)
- Сортировать пузырьком -- это попросту неприлично. Есть, например, сортировка Шелла, прекрасно заменяет qsort, не требует рекурсий, работает не сильно хуже... По ссылке весьма наглядная демонстрация. - fk0(03.05.2013 00:51, ссылка)
- Помимо рекурсий может быть что-то типа char s[много] или alloca(много). И это много может не являться константой... - fk0(03.05.2013 00:30)
- из либ 99% - memset да memcpy, местами itoa да strncmp. Mahagam(221 знак., 03.05.2013 00:44)
- Логично что не вяжется: переменные компилятор сотпимизировать может. Apтём(131 знак., 03.05.2013 00:12)
- навскидку, по количеству переменных и вызовов других функций. оказалось что не сильно-то и вяжется. Mahagam(194 знак., 03.05.2013 00:03)
- Как предсказывали потребление, если не секрет? И для каких МК? - Apтём(02.05.2013 23:51)
- а фигли его мерять? забили стеки при старте хитрожопой константой, а потом в отдельном потоке раз в пару секунд смотрим что изменилось Mahagam(383 знак., 02.05.2013 23:41)
- Для простой задачи потребление стека расчитать вполне можно. Возможно придётся добавить к полученному числу стек для прерываний. Информацию для расчёта линкер даёт. - Apтём(02.05.2013 23:22)
- Честное управление задачами требует для них раздельного стека. 2k - это очень-очень немного, если еще учесть, что стек выделяется с избытком. - Хитрый Китаец(02.05.2013 22:20)
- как сказать, вот еле удержался чтобы не впихнуть шедулер на мегу16 - Mahagam(29.04.2013 13:33)
- Вопрос в фичастости. Таск свитчер, шедулер и простейшие примитивы синхронизации и влезут, и полензны, и использовать их стоит. Я же не говорю про POSIX. - Evgeny_CD(29.04.2013 13:49)
- Вопрос в ресурсоемкости. Жопой чую, что uC/OS-III не для 2k RAM создавалось. - Evgeny_CD(29.04.2013 12:52)