-
- "критически важных драйверов ядра системы" Что вы под этим понимаете? Желательно с примером для тупеньких. - VladislavS.(22.02.2024 09:08)
- в планировщике собственного изготовления, помимо собственно
планировщика, нужен аппаратный таймеры 1mS и 10mS (а в более
шустром, чем XMEGA, камешке и побыстрее хотелось бы, в которых ещё
с десяток-другой системных таймеров, RTC, мегабитный RS
,буферизованный драйвер, постоянно крутящийся и обеспечивающий
трафик (от 100К о мегабита на шустром камне для распределённой
внешней периферии) - эдакая внешняя периферийная шина с
квитированием и ретреями:) Adept(643 знак., 22.02.2024 12:00)
- Почему не получить таймер на 10ms из таймера 1ms простым
программным счетчиком, зачем всенепременно аппаратный? - RxTx(22.02.2024 18:13)
- ну 1mS во первых сильно перегружен системными драйверами, и он
должен быть ОЧЕНЬ быстрым, чтобы оставалось время на другие задачи,
а в 10mS запиханы не столь жёстко привязанные ко времени процедуры,
но условный реалтайм там всё же должен быть, поэтому чисто софтовый
из ядра, по семафорам 1mS таймера, - не катит. Особенно это
проявляется на меге88/16, особенно на низком такте (7,3728MHz). На
иксмеге попроще, всё ж она значительно шустрее. - Adept(22.02.2024 18:25)
- Что-то я не понимаю, наверное туповат еще в деле
планировшиков/RTOS. Но дело в том что у процессора сколько времени
есть, столько есть. Больше не станет. Какая разница, нарезаешь ты
слайсы времени (типа прерывания) аппаратно по 1ms или по 10ms или
ты нарезаешь софтварно. Ничего не изменится. Развет что если 1ms
таймер и 10ms чуть "расстроены" по микро-нансоекундам друг от друга
и поэтому они могут вытеснять друг друга. Но если в реальности 10ms
дубасит строго синхронно с RxTx(302 знак., 22.02.2024 19:04)
- дело в том, что в хэндлере 1mS таймера я не могу делать практически
ничего, кроме выставления семафоров, управления набором софтовых
таймеров (которые совершенно не обязаны отрабатывать синхронно, с
минимальным джиттером, и даже могут и не отработать в цикле
системного клока 1mS, а пропустить его), и выполнения нескольких
очень компактных реалтайм драйверов ядра. На 10mS же таймер
навешана всякая дрянь вроде драйверов клавиатуры, индикации,
системных часиков, ах да, Adept(888 знак., 22.02.2024 19:51)
- Ну это такой очень специфичный диспетчер со встроенными двумя
"потоками", вытесняющими друг друга, с фиксированным приоритетом
устроенным отношением частот таймеров и подвешенными на аппаратные
таймеры. В большинстве RTOS шедулер вызывается с частотой 1мс. При
этом 1-мс потоку подвешенному у тебя на таймер 1мс, так как у него
высший приоритет он будет выдавать время каждые 1мс. А вот на
второй твой 10мс-поток он может переключаться чрез 10мс, при этом
на 1мс поток он RxTx(193 знак., 22.02.2024 20:13)
- а если теперь положить в каждый таймер по очереди задач (причём в
таймере 1mS критически важные), то всё заиграет новыми красками, и
не будет уже так весело :)) Конечно всё можно разрулить через
дополнительную логику семафоров, при желании, но с аппаратными
таймерами всё получается просто элементарно. - Adept(22.02.2024 20:30)
- Я думаю все-таки будет работать с одним 1мс таймером, но с RTOS это видимо будет сделать проще/универсальнее. RxTx(282 знак., 22.02.2024 21:01)
- а если теперь положить в каждый таймер по очереди задач (причём в
таймере 1mS критически важные), то всё заиграет новыми красками, и
не будет уже так весело :)) Конечно всё можно разрулить через
дополнительную логику семафоров, при желании, но с аппаратными
таймерами всё получается просто элементарно. - Adept(22.02.2024 20:30)
- Если перелезть на жирное ядро то в 1 мс прерывание влезет дохрена
логики ASDFS(431 знак., 22.02.2024 20:02)
- ну это понятно, а я максимально рационально старался использовать
ресурсы :) компактную версию планировщика, без проблем засовываю в
любую "тайню", практически, единый подход к написанию ПО ждя всех
случаев сильно всё упрощает. И да, камкой смысл пихать в цикл
"инвариантные действия" (в чём сакральный смысл, к примеру
отрабатывать клавиатурный драйвер или драйвер индикаций каждые 100
микросекунд?? Ну кроме излишней загрузки CPU :) Вот так и
скатываемся к говнокодингу Adept(63 знак., 22.02.2024 20:23 - 20:31)
- В STM32, даже в F1, достаточно уровней прерываний и их источников
("триггеров") чтобы разрулить штук 7 разных очередей и даже больше
(у меня в текущем проекте, на данный момент, 7). Nikolay_Po(1187 знак., 22.02.2024 22:25)
- ну дык STM32 в разных весовых категориях с АВР, даж достаточно
продвинутая иксмега, в общем, уступает и по возможностям периферии
и по MIPSам младшей STM32 - Adept(22.02.2024 22:56)
- Вот про Хмеги не надо. Младшие STM АТмега АТмегой, в периферии
ничего особо интересного и на что MIPSы уходят не понятно. Была в
периферии Хмег некоторая стройность, хоть и недоделанная. - AlexG(23.02.2024 06:34)
- А можно поподробнее мнение раскрыть, интересно послушать. Что
именно ничего интересного, и в чем стройность в периферии Xmega.
Как бы реально интересно, в техдеталях. - RxTx(23.02.2024 23:00)
- Xmeg'и отличались от более ранних AVR и от STM тем, что их
периферия была набрана из множества стандартных блоков
ограниченного чиста типов с фиксированной раскладкой регистров всех
однотипных блоков и с понятными и очевидными способами
взаимодействия блоков периферии без участия ядра. Такой себе C++ в
железе. В классических AVR было "тут у нас такой таймер, а там вот
такой", "регистры этого UARTа мы разложили так, а того вот так". В
STM блоки периферии может быть и AlexG(1269 знак., 24.02.2024 06:12, ссылка)
- жалко, что семейство "убили" практически неадекватно высокой ценой
("с завода" $3 на "средненькую" A4 и на "старшие" A3/A1 по $5..7 +
наценка барыг :( а с ковидом санкциями вообще всё похоронили :( Но
оно и понятно, микрочипу нах не нужен внутренний конкурент в виде
"чужого гадкого утёнка" их же dsPICам и с младшими АРМами, не
побороться по цене. Adept(761 знак., 24.02.2024 12:37)
- Цена 8битного Atmel'а всегда была предметом удивления всех и всегда. - RxTx(24.02.2024 19:07)
- Для меня точкой были все-таки санкции. До них цены особо не
останавливали, каждый раз оказывалось, что прям подходящий для меня
ARM еще попробуй найди где купить. Сейчас иногда еще пописываю под
Хмеги, но это только доработки уже давно запущенных в серию
изделий. - AlexG(24.02.2024 14:19)
- самая жопа даже не санкции (Гамма возит "параллельным импортом" по
2x цене от "директа"), жопа с внутренней политикой микрочипа -
ближайшее пополнение склада микрочипа (когда мне надо было
год-полтора назад), было аж на 2025 год :(( - Adept(24.02.2024 14:28)
- У снабженцев, покупающих Хмеги, условно, для меня всё очень
безрадостно с ценами и качеством чипов. В итоге я переписал свои
наработки на китайские STM и причин использовать Хмеги в новых
проектах не осталось (это было не сильно просто, раньше я
использовал много специфических фишек микроконтроллера и
компилятора). - AlexG(24.02.2024 19:20)
- для меня было критично наличие 4-х UART-ов и не менее 6К ОЗУ на бору, смотрел уже на STM, да тут увидел, что мега 4809 подходит :) в итоге закупился ими по $2, но пришлось тыщу штук брать, меньше не везли (при моей потребности в 500, ну да ладно, я им уже применение нашёл :)) (код править почти не придётся (а там прошивки по 30+ кило на выходе :)) переписывать на другой МК - повеситься легче. - Adept(25.02.2024 01:34)
- У снабженцев, покупающих Хмеги, условно, для меня всё очень
безрадостно с ценами и качеством чипов. В итоге я переписал свои
наработки на китайские STM и причин использовать Хмеги в новых
проектах не осталось (это было не сильно просто, раньше я
использовал много специфических фишек микроконтроллера и
компилятора). - AlexG(24.02.2024 19:20)
- самая жопа даже не санкции (Гамма возит "параллельным импортом" по
2x цене от "директа"), жопа с внутренней политикой микрочипа -
ближайшее пополнение склада микрочипа (когда мне надо было
год-полтора назад), было аж на 2025 год :(( - Adept(24.02.2024 14:28)
- Спасибо, ясно. - RxTx(24.02.2024 06:21)
- жалко, что семейство "убили" практически неадекватно высокой ценой
("с завода" $3 на "средненькую" A4 и на "старшие" A3/A1 по $5..7 +
наценка барыг :( а с ковидом санкциями вообще всё похоронили :( Но
оно и понятно, микрочипу нах не нужен внутренний конкурент в виде
"чужого гадкого утёнка" их же dsPICам и с младшими АРМами, не
побороться по цене. Adept(761 знак., 24.02.2024 12:37)
- Xmeg'и отличались от более ранних AVR и от STM тем, что их
периферия была набрана из множества стандартных блоков
ограниченного чиста типов с фиксированной раскладкой регистров всех
однотипных блоков и с понятными и очевидными способами
взаимодействия блоков периферии без участия ядра. Такой себе C++ в
железе. В классических AVR было "тут у нас такой таймер, а там вот
такой", "регистры этого UARTа мы разложили так, а того вот так". В
STM блоки периферии может быть и AlexG(1269 знак., 24.02.2024 06:12, ссылка)
- А можно поподробнее мнение раскрыть, интересно послушать. Что
именно ничего интересного, и в чем стройность в периферии Xmega.
Как бы реально интересно, в техдеталях. - RxTx(23.02.2024 23:00)
- Вот про Хмеги не надо. Младшие STM АТмега АТмегой, в периферии
ничего особо интересного и на что MIPSы уходят не понятно. Была в
периферии Хмег некоторая стройность, хоть и недоделанная. - AlexG(23.02.2024 06:34)
- ну дык STM32 в разных весовых категориях с АВР, даж достаточно
продвинутая иксмега, в общем, уступает и по возможностям периферии
и по MIPSам младшей STM32 - Adept(22.02.2024 22:56)
- Ну, рациональность мы понимаем по-разному, видимо :-) - SciFi(22.02.2024 20:33)
- Говнокодинг это когда дюжина прерываний и надо как то
контролировать что все это еще летит ASDFS(71 знак., 22.02.2024 20:30)
- для этого нужно правильно организовать структуру программы и
расставить приоритеты и при необходимости средства контроля
выполнения, и обработку исключений :) И правильно реализованная
система с кучей прерываний будет радовать быстрой, надёжной и
стабильной работой :)) - Adept(22.02.2024 20:33)
- Сразу видно эмбеддера который всю жизнь провел на одной платформе. ASDFS(241 знак., 22.02.2024 20:41)
- Я б повесился от такой жизни :(( Мне сильно повезло, что могу сам
выбирать и проекты, и зачастую заказчика :)) И да, действительно
сижу на одной платформе (ну если считать тайни и иксмегу одной
платформой :) и в ус не дую, но вот последнее время немного
"тесновато" становится, надоть чё нить освоить пошустрее и
поинтереснее (и ещё лет на двадцать хватит /оптимистично так/ ) :) - Adept(22.02.2024 20:46)
- Все слишком быстро меняется. Когда я начинал инженерить i8748 был
последним писком моды. ASDFS(448 знак., 22.02.2024 21:01)
- поймал себя на мысли, что уже даже институтский курсовик по
аналоговым устройствам (надо было спроектировать (с расчётами,
есно) широкополосный транзисторный усилитель с полосой 10МГц при
неравномерности 3dB, для источника с Rвых=10K и температурного
диапазона -40..+75) с трудом наверно осилю без книжек :)) Надоть
перечитать классиков, и уходить в аналоговую дискретную
схемотехнику, скоро это будут забытые сакральные знания :)) - Adept(22.02.2024 21:15 - 21:20)
- Они сакральные потому что МП42 купить сложнее чем дуину. - ASDFS(22.02.2024 21:17)
- Если у кого прям сильная ностальгия, у меня где-то в запасах должно
быть килограмма полтора МП42 - AlexG(23.02.2024 16:41)
- из них можно фототранзистор слелать, если шляпу отпилить :) а ещё в
макетировании удобные и в "пионерских самоделках", вместе с
резисторами МЛТ на картонных платах :) (проволочные длинные ноги).
А сейчас да, если только в каком-нить кружке юных радиолюбителей,
как наглядное пособие и расходники для экспериментов с
транзисторными схемами. Но навряд ли удастся пристроить :) - Adept(23.02.2024 20:56)
- О методах вскрытия МП42 RxTx(619 знак., 23.02.2024 23:10)
- эт метод быстрый, но неправильный. Если аккуратно спилить шляпку (можно даже напильником, там нетолстая медь, но лучше "шлицовкой", то получается нормальный "тубус", защищающий кристалл). h21э у них около сотни, помнится (у буковки "Б"), - максимальный из "германия", вроде как, что на фоне 39-х и 25-х со значением в 10-20, - просто подарок :) - Adept(23.02.2024 23:19)
- О методах вскрытия МП42 RxTx(619 знак., 23.02.2024 23:10)
- из них можно фототранзистор слелать, если шляпу отпилить :) а ещё в
макетировании удобные и в "пионерских самоделках", вместе с
резисторами МЛТ на картонных платах :) (проволочные длинные ноги).
А сейчас да, если только в каком-нить кружке юных радиолюбителей,
как наглядное пособие и расходники для экспериментов с
транзисторными схемами. Но навряд ли удастся пристроить :) - Adept(23.02.2024 20:56)
- Можно купить МП39 и перемаркировать. Лайфхак. - Kpoк(23.02.2024 12:01)
- контрафакт :) - тама h21э в разы хужее. Эт Вы плохому от китайцев научились "... Шурик, Вы комсомолец? ... это же не наш метод..." (С) . - освоить производство на минском "Интеграле" - "купляй
белорусскоенастоящее" (С) :)) - Adept(23.02.2024 14:36)- Их новгородская Планета делала. Toчкa oпopы(1 знак., 23.02.2024 15:40, ссылка)
- контрафакт :) - тама h21э в разы хужее. Эт Вы плохому от китайцев научились "... Шурик, Вы комсомолец? ... это же не наш метод..." (С) . - освоить производство на минском "Интеграле" - "купляй
- Если у кого прям сильная ностальгия, у меня где-то в запасах должно
быть килограмма полтора МП42 - AlexG(23.02.2024 16:41)
- Они сакральные потому что МП42 купить сложнее чем дуину. - ASDFS(22.02.2024 21:17)
- поймал себя на мысли, что уже даже институтский курсовик по
аналоговым устройствам (надо было спроектировать (с расчётами,
есно) широкополосный транзисторный усилитель с полосой 10МГц при
неравномерности 3dB, для источника с Rвых=10K и температурного
диапазона -40..+75) с трудом наверно осилю без книжек :)) Надоть
перечитать классиков, и уходить в аналоговую дискретную
схемотехнику, скоро это будут забытые сакральные знания :)) - Adept(22.02.2024 21:15 - 21:20)
- Все слишком быстро меняется. Когда я начинал инженерить i8748 был
последним писком моды. ASDFS(448 знак., 22.02.2024 21:01)
- Я б повесился от такой жизни :(( Мне сильно повезло, что могу сам
выбирать и проекты, и зачастую заказчика :)) И да, действительно
сижу на одной платформе (ну если считать тайни и иксмегу одной
платформой :) и в ус не дую, но вот последнее время немного
"тесновато" становится, надоть чё нить освоить пошустрее и
поинтереснее (и ещё лет на двадцать хватит /оптимистично так/ ) :) - Adept(22.02.2024 20:46)
- Сразу видно эмбеддера который всю жизнь провел на одной платформе. ASDFS(241 знак., 22.02.2024 20:41)
- для этого нужно правильно организовать структуру программы и
расставить приоритеты и при необходимости средства контроля
выполнения, и обработку исключений :) И правильно реализованная
система с кучей прерываний будет радовать быстрой, надёжной и
стабильной работой :)) - Adept(22.02.2024 20:33)
- В STM32, даже в F1, достаточно уровней прерываний и их источников
("триггеров") чтобы разрулить штук 7 разных очередей и даже больше
(у меня в текущем проекте, на данный момент, 7). Nikolay_Po(1187 знак., 22.02.2024 22:25)
- Если мипсов много, то почти всё вот это вот нормально живёт в Main
Loop. Исключения немногочисленны и легко цепляются к аппаратным
таймерам, например. - SciFi(22.02.2024 20:15)
- Просто ты не пробовал Main Loop в систике. ASDFS(32 знак., 22.02.2024 20:22)
- ну это понятно, а я максимально рационально старался использовать
ресурсы :) компактную версию планировщика, без проблем засовываю в
любую "тайню", практически, единый подход к написанию ПО ждя всех
случаев сильно всё упрощает. И да, камкой смысл пихать в цикл
"инвариантные действия" (в чём сакральный смысл, к примеру
отрабатывать клавиатурный драйвер или драйвер индикаций каждые 100
микросекунд?? Ну кроме излишней загрузки CPU :) Вот так и
скатываемся к говнокодингу Adept(63 знак., 22.02.2024 20:23 - 20:31)
- Ну это такой очень специфичный диспетчер со встроенными двумя
"потоками", вытесняющими друг друга, с фиксированным приоритетом
устроенным отношением частот таймеров и подвешенными на аппаратные
таймеры. В большинстве RTOS шедулер вызывается с частотой 1мс. При
этом 1-мс потоку подвешенному у тебя на таймер 1мс, так как у него
высший приоритет он будет выдавать время каждые 1мс. А вот на
второй твой 10мс-поток он может переключаться чрез 10мс, при этом
на 1мс поток он RxTx(193 знак., 22.02.2024 20:13)
- дело в том, что в хэндлере 1mS таймера я не могу делать практически
ничего, кроме выставления семафоров, управления набором софтовых
таймеров (которые совершенно не обязаны отрабатывать синхронно, с
минимальным джиттером, и даже могут и не отработать в цикле
системного клока 1mS, а пропустить его), и выполнения нескольких
очень компактных реалтайм драйверов ядра. На 10mS же таймер
навешана всякая дрянь вроде драйверов клавиатуры, индикации,
системных часиков, ах да, Adept(888 знак., 22.02.2024 19:51)
- Что-то я не понимаю, наверное туповат еще в деле
планировшиков/RTOS. Но дело в том что у процессора сколько времени
есть, столько есть. Больше не станет. Какая разница, нарезаешь ты
слайсы времени (типа прерывания) аппаратно по 1ms или по 10ms или
ты нарезаешь софтварно. Ничего не изменится. Развет что если 1ms
таймер и 10ms чуть "расстроены" по микро-нансоекундам друг от друга
и поэтому они могут вытеснять друг друга. Но если в реальности 10ms
дубасит строго синхронно с RxTx(302 знак., 22.02.2024 19:04)
- ну 1mS во первых сильно перегружен системными драйверами, и он
должен быть ОЧЕНЬ быстрым, чтобы оставалось время на другие задачи,
а в 10mS запиханы не столь жёстко привязанные ко времени процедуры,
но условный реалтайм там всё же должен быть, поэтому чисто софтовый
из ядра, по семафорам 1mS таймера, - не катит. Особенно это
проявляется на меге88/16, особенно на низком такте (7,3728MHz). На
иксмеге попроще, всё ж она значительно шустрее. - Adept(22.02.2024 18:25)
- Почему не получить таймер на 10ms из таймера 1ms простым
программным счетчиком, зачем всенепременно аппаратный? - RxTx(22.02.2024 18:13)
- в планировщике собственного изготовления, помимо собственно
планировщика, нужен аппаратный таймеры 1mS и 10mS (а в более
шустром, чем XMEGA, камешке и побыстрее хотелось бы, в которых ещё
с десяток-другой системных таймеров, RTC, мегабитный RS
,буферизованный драйвер, постоянно крутящийся и обеспечивающий
трафик (от 100К о мегабита на шустром камне для распределённой
внешней периферии) - эдакая внешняя периферийная шина с
квитированием и ретреями:) Adept(643 знак., 22.02.2024 12:00)
- Нет, калокуб - это тупиковый путь. Есть риск превратиться в абдуринщика. Сразу начинать надо с голого CMSIS и заголовочных файлов с регистрами (правда, под, скажем, STM8 у меня такого не было, пришлось самому писать). Линкер-скрипт, стартап и базовый набор макросов однозначно надо писать самому. И никаких кодогенераторов от быдлокодеров (тем более, индусов из ST). - Eddy_Em(22.02.2024 08:04)
- "критически важных драйверов ядра системы" Что вы под этим понимаете? Желательно с примером для тупеньких. - VladislavS.(22.02.2024 09:08)