- Коллеги, кто нибудь парился с ASN.1? не могу найти описание
кодирования триплета тэг 0x84 (CODED ENUM)..??? - Balda(Сегодня, 16:46, dao, полностью)
- Век живи - век учись. Не думал, что попадусь на таком инкременте в
Си: Nikolay_Po(1178 знак., 24.02.2026 00:38, dao, полностью, +1)
- Кстати, есть еще интересный вопрос на тему преобразований из
плавучки в целочисленную арифметику. Как происходит/не происходит
округление? Что говорит стандарт? Тоже ундефинед бехавиор? il-2(151 знак., 27.02.2026 16:23)
- По поводу +0.5f: есть такая функция lroundf(). - SciFi(27.02.2026 16:28, +1)
- Это в коде. А если тебе надо вычислить некую целочисленную
константу, и там в выражении используется плавучка. Хочется при
этом правильно округлить, чтобы было поточнее. il-2(118 знак., 27.02.2026 18:32)
- имхо, пример некорректен. делитель, пусть дажэ из 0,1% резисторов,
для 16р даст заметную неопределённость. Кроме того, у АЦП можэт
быть разного типа нелинейности-смещения. И от экземпляра к
экземпляру это будет плавать туды-сюды. Чо тут можэт дать плавучка,
ХЗ. чем хужэ обычная целочисленка? Я этой радости наелся в своё
время и щас тупо такое значеение выстанавливаю при калибровке. Если
оно того стоит, канэшн. mse homjak(31 знак., Вчера, 22:49)
- не вижу сложности, я делаю так int i=(int)(3.14*100 +
0.49999999999999); - IBAH(Вчера, 22:38)
- Ну я и пишу в коэффициентах: Nikolay_Po(1918 знак., 27.02.2026 20:58)
- Вот поэтому и уточнял. Вы же давний абориген Сахары, некоторое
представление о вашем уровне есть. Целые/плавучка и
рантайм/компиляция со временем на автомате уже отслеживаешь. Да и
плавучка - посчитать при инициализации разово или постоянно
пересчитать - совсем не одно ито же. И так попасться?.. Был
удивлён. (усталость, недосып, похмелье?) - Dingo(Сегодня, 07:00)
- - "В современных GCC (сейчас у меня в ходу 12..15 версии, проблески
16й от Клёна) такой дефайн, если собран из статических значений
(которые, по цепочке, ясны при проходе препроцессора),
компилируется в присвоение константы в нужном месте." - не, мне такой подход категорически не нравится. А если "не
шмогла" (GCC не той системы, или вообще не GCC) - значит вместо
константы будет минимум вызов функции... - il-2(Вчера, 15:39)
- Думаю, в этой ситуации ловить последнюю единичку не нужно. - SciFi(27.02.2026 18:36)
- Да. Раньше я писал +0.5. Но когда компиляторы научились выкидывать
статические вычисления, стал пользоваться lroundf() или llround(). - Nikolay_Po(27.02.2026 16:29)
- Уточню то, что не даёт покоя: SystemClockSpeed - динамическая
величина? Если даже так, вряд ли она произвольные значения
принимает. Понимаю, что ситуация уже решена; я ход мыслей при
написании кода понять затрудняюсь. И даже так, как у вас "правильно
было так" - странно: Dingo(465 знак., 27.02.2026 07:36)
- про насыщение ни где не сказано, а сказано: "результат не
определен" IBAH(1 знак., 26.02.2026 20:50, ссылка)
- За любое упоминание плавучки без особой на то необходимости
пожизненный эцих с гвоздями! :))) - VladislavS.(24.02.2026 09:24, +1)
- И варнинга не было? - Anvar(24.02.2026 08:56)
- Хех. А если знать правила неявного приведения типов, то ничего
удивительного. Там правила довольно простые, советую выучить. - SciFi(24.02.2026 08:35)
- Ну т.е. вместо переполнения получалось 0xFFFFFFFF ??? Интересно... - il-2(24.02.2026 06:38)
- Реализация конечного автомата на Си заданного таблицей: хочу уйти от гигантских switch-case-ов, загнать автоматы по таблицам и потом таблицы парсить, НО не догоню как кошерно записать в таблицу условие которое потом будет проверятся в if-ах. можно NAUT(99 знак., 12.04.2019 14:15, dao, полностью)
- Это посмотреть: Пpocтo_зaшeл(1 знак., 13.05.2025 17:05,
, ссылка)
- Вы бы для начала указали: автомат Мили или Мура? Пaлыч(219 знак., 12.05.2025 18:15)
- Следующее состояние автомата зависит от предыдущего? Если
однозначно, то можно просто перед выходом писАть в ячейку с
указателем точку следующего входа. Тогда ничего парсить не
придётся. Если рандомайз, то может, флажки-фильтры прикрутить, по
аналогии с онлайн-магазинами? Тогда каждое сравнение уменьшает
ареал поиска наполовину, итого имеем 8 переборов вместо 256-ти. )) - vpv.vpv(12.05.2025 07:25)
- Все что пробовал еще более громоздко. Делаю if-ы с goto. Ну и *Дункельсовские prototreads для совсем элементарных вещей (задержки и т.п.). - Скрипач(12.04.2019 14:37 - 15.04.2019 14:41)
- Пример. Блин. Хотел поправить отступы, глюкнул редактор, удалился
текст. Вечером верну пример назад. Cкpипaч(2098 знак., 12.04.2019 14:40 - 12.05.2025 18:14)
- Дикий трэш. Не в том месте скобочка, а в такой лапше ее легко пропустить - и "счастливой отладки!". - s_h_e(13.04.2019 09:17)
- "увижу кого кто напишет гоуту - убью нахуй!" LordN(36 знак., 12.04.2019 14:50)
- Мой жизненный принцип: "...но не любой ценой". Скрипач(213 знак., 12.04.2019 14:54 - 15:09)
- В начале рисуем классический switch, где перебираем все возможные
состояния. Ну, а после него - еще один switch, который вызывает
return для всех ненужных состояний, а все нужные пропускает - чтобы
перейти к "хвосту" функции, который выполняется для нескольких
возможных состояний. Eddy_Em(383 знак., 12.05.2025 09:33)
- Припомнился вариант без явного GOTO Vit(748 знак., 15.04.2019 12:02)
- Мой вариант - намного лучше. Собственно состояния - прототридсы. goto это переход на мини блоки инициализации каждого из состояний. Скрипач(232 знак., 15.04.2019 12:20)
- Мой вариант самый лучший 😁😁😁 Бoмж(1140 знак., 12.05.2025 15:09)
- Вопрос был как попасть из разных мест. А метка - хоть и точка входа на графе, но это и состояние. Хорошо, когда можно упростить, но иногда нужно и документировать. - Vit(15.04.2019 13:23)
- Именно что документировать. А не подменять документацию "осмысленными именами переменных". Вы правы в том смысле, что если уж пишем prototreads, то переход между состояниями КА неплохо бы сделать частью этой библиотеки. Скрипач(218 знак., 15.04.2019 14:10 - 14:34)
- Анонимность состояний Protothreads это не священная корова. Лечится, если нужно. Вопрос не в выборе между switch, goto или Protothreads. Переход через точку входа должен изменить состояние, иначе это не документируется (разве что вручную), а кроме Vit(204 знак., 15.04.2019 15:32)
- Вы наверно, в каком-то другом мире живете, где есть время на документирование ПО, остается только завидовать. - VLLV(15.04.2019 14:35)
- Если уж коверкать слова, предлагаю не прототриды, а пуськи бятые. Ну и switch всего лишь потому, что в рамках стандартного Си только так и можно. GCC даёт расширение "labels as values", с ним гораздо эффективнее. - SciFi(15.04.2019 14:17 - 14:21)
- офигеть, это всерьез? А то, что состояние - это не место в коде, а банальная переменная, которая выбирает место в коде - не рассматривается? т.е. массив функций по индексу - открытие? - VLLV(12.04.2019 16:04)
- Гордий вертится в гробу... - SciFi(12.04.2019 15:18)
- Его не Мисрой звали? - SciFi(12.04.2019 15:04)
- ...и поэтому юзайте jmp-ы - NAUT(12.04.2019 14:53)
- Примерно с тех дней (даты исходного поста ветки), заприметил
прототреды Адама Дункелса. Было дело, даже заглянул под капот.
Впечатлился изяществом и, одновременно, кривизной решения. Задумал
когда-нибудь использовать. Nikolay_Po(1254 знак., 11.05.2025 16:55, ссылка)
- Надо уходить в таблицы т.к. закащщик и прочие физлица будет править таблицы а не код куячить. - NAUT(12.04.2019 15:14)
- Некоторые продвинутые пацаны в таких случаях делают простенький язык под задачу и интерпретатор к нему. DSL - domain-specific language. - SciFi(12.04.2019 15:20, ссылка)
- + 100500 Именно так (когда то) сварганил свою мнемонику интерпретатора: команда/параметр/выход по признаку [Yes|No|Esc-возврат на предыдущий уровень] на другую команду ;функцию; подпрограмму. Старо , как Мир, но очень действенно! Создал "матрицу" serhio(43 знак., 12.04.2019 16:44)
- +1. И графическую конфигурялку поверх DSL. - Скрипач(12.04.2019 15:23)
- знаем мы эти IAR вижуалстейты и модные фреймворки NAUT(56 знак., 12.04.2019 15:33)
- В любом случае, то что наваяют "часные лица" я бы хранил в виде сугубо текстовых констант, которые скармливал бы интерпретатору. - Скрипач(12.04.2019 15:39)
- видимо я что-то упускаю из вида, а примером не поделитесь хоть издали? не понимаю как Вы предлагаете проверять на непротиворечивость данных допустим, это же адская бизнес-логика какая-то должна быть с кучей правил - NAUT(12.04.2019 20:40)
- Препроцессор уже придуман, до нас - VLLV(12.04.2019 15:48)
- Ин-тер-при-та-тор. Потому что перезагрузка пользовательского кода не должна подразумевать перезагрузки системного. Неправильно это. - Скрипач(12.04.2019 15:50)
- А как же "не любой ценой"? :-) - SciFi(12.04.2019 15:59, ссылка)
- И? В чем вы видите "большую цену"? - Скрипач(12.04.2019 16:39)
- Большая цена - в попытках приобщить ТС к моде :-) - SciFi(12.04.2019 16:52, ссылка)
- Сформулируйте, пожалуйста, как-то иначе, каждое слово отдельно - понимаю, предложение целиком - нет. - Скрипач(12.04.2019 16:59)
- С трудом уговорили его на X Macro. Уговорить на интерпретатор - неподъёмная задача. - SciFi(12.04.2019 17:01)
- ну, вообще, на базе готового кода, если старшие коллеги советуют, то почему бы и нет... в голове пока не вижу "красоты" интерпретатора, максимум что понимаю, это типа парсера .CFG-файлов каких-нибудь, типа разделенного строками конфигурационного NAUT(932 знак., 12.04.2019 20:16)
- Он сам решит, как ему лучше. У меня тоже интерпретатор так и не появился. Точнее, он появился совсем в другом месте и совершенно другой роли. Скрипач(121 знак., 12.04.2019 17:06)
- Неправильно - это гоуту и множить сущности, программируя для Тини ;) Одна программа, один компилятор, один идеолог, все работает. - VLLV(12.04.2019 15:57)
- Вот-вот. Физлица правят, а потом фобос в грунт. - SciFi(12.04.2019 15:42)
- При определенных условиях, switch-case вырождается после компиляции как раз в таблицу функций и мой скромный опыт говорит о том, что switch case гораздо более читабелен, надежен и лучше поддерживается, чем таблица функций. Выносите содержимое Хитрый Китаец(61 знак., 15.04.2019 10:41)
- Раз уж пошла такая "пьянка" об автоматах, то кто нибудь применял UML для описания графа конечного автомата с дальнейшей генерацией кода (или хотя бы "рыбы" кода). Если да, то можно сюда пример бросить? - Make_Pic(14.04.2019 15:01)
- Раз уж речь зашла о автоматах, может ли кто-нибудь пояснить смысл графических обозначений состояний в приложенном документе? Почему они разные? AlexG(46 знак., 14.04.2019 12:11)
- Это смутно мне напоминает то, как 35-40 лет назад делали формирователи импульсов на РЕ3 и РТ5. :-) - Лагунов(13.04.2019 17:27)
- В простых случаях примерно так AU08(597 знак., 12.04.2019 20:52)
- Тоже парился с многозадачками, от switch-case-ов не уйти, но можно их несколько штук последовательно сделать по флагам условий, код даже читабельнее становится. - Visitor(12.04.2019 18:44)
- "можно было бы в таблицу писать указатель на функцию которая проверяет сложное условие, но это некрасиво." Почему некрасиво ?? если еще сделать чтоб адрес в таблице являлся номером команды, вообще ничего парсить не надо, забрал адрес вызвал Aleksey_75(59 знак., 12.04.2019 15:32)
- Ты на псевдокоде напиши чего хош, а то так непонятно. - =AlexD=(12.04.2019 14:19)
- Раз пошла такая пьянка, расскажу как надысь меня Кейл подъебал.
Практически во всех модулях проекта присутствуют такие строки IBAH(467 знак., 26.02.2026 21:11, dao, полностью)
- А без мата можно??? - Make_Pic(28.02.2026 22:14)
- Возможно, спецификатор static при переменной был пропущен ещё в
одном модуле, что осталось незамеченным. Следует поиском переменной
Sost по проекту пройтись - Пaлыч(27.02.2026 12:39)
- А почему не uint8_t? Логичней, понятней, приятней. Eddy_Em(181 знак., 27.02.2026 09:50)
- unsigned char - из верности идеалам поколения. А еще мне нравится,
как редактор жирным шрифтом это выделяет. - IBAH(27.02.2026 12:25, +1)
- Я как-то в Delphi ловил косяк с отлично работающим под виндой
кодом, но скомпилированным в приложение для Android, iOS и Linux.
Были непонятные глюки. Оказалось, что 32-битный под виндой LongWord
в этих ОС 64-битный! После этого использую ВЕЗДЕ только безопасные
типы UInt8, UInt16, UInt32, UInt64 и пр. Integer могу только в
простейших циклах for применять для счётчика. - FDA(28.02.2026 19:34)
- Редактор жирным может выделять все что угодно - свои типы вы тоже
можете выделять. Для этого нужно: my504(1 знак., 27.02.2026 13:08, картинка)
- Ну, ладно - char, он и в Африке 8 бит. А вот с short, int, long уже
такое не прокатит! - Eddy_Em(27.02.2026 12:25)
- Еще понятнее enum - VLLV(27.02.2026 12:16)
- Состояние.. - Balda(27.02.2026 10:17)
- Мне приходилось иметь дело с кодом (чужим :-), в котором были 2
функции с названиями - Zapros и Answer :-) - il-2(27.02.2026 10:02)
- Как вариант: alho(447 знак., 27.02.2026 09:30 - 09:33)
- static область видимости ограничивает. у вас точно не было
обращения к одной переменной из разных частей программы ? Больше
подробностей, иначе - просто пошумели. - Dingo(27.02.2026 07:22)
- Дело было не в бобине :-) Не надо валить с больной головы на
здоровую. Что там у вас было на самом деле - вы (по своему-же
признанию) не захотели выяснить до конца. Так что нападки на Кейл
не защитаны :-) - il-2(27.02.2026 07:19)
- Для пользы дела, напишите, пжлст, версию компилятора в вашем кейле,
чтоб не пользоваться им никогда. Так то, никакого криминала в
описанной ситуации нет. - Sergey_sR(27.02.2026 07:11,
)
- [Сводный системный] Моделирование двигателей. - Toчкa oпopы(25.02.2026 22:07, dao, полностью)
- Приболел немного. Скучно стало - книжки читал, с ИНС переписывался.
Гляньте, полезно или хрень? Можно проверять условия всякие, если
поймали - в лог вывести или светодиодом моргнуть. Зато nullptr не
разименуем или указатель за границу памяти уходящий. Вкл/Выкл можно
по разным файлам и даже в пределах одного. Dingo(1 знак., 25.02.2026 21:17, dao, ссылка, полностью)
- Пожалуйста подскажите ссылку на скачивание электронной версии книги
на русском Reаl-Тime C++. Эffективный к0д для встр@иваемых систеm - Make_Pic(22.02.2026 22:17, dao, полностью)
- Книга книге рознь. Каждая книга для своего читателя. Далее я
рассказываю чем эта книга является для меня. EmbedProg(4010 знак., 24.02.2026 06:41,
)
- Вот электронная версия по цене издательства ecomp42(88 знак., 23.02.2026 17:05,
, ссылка, +1)
- В ваших делах плюсы только приплюсуют проблем, КМК. - SciFi(23.02.2026 09:24)
- Спасибо, скачал, почитаю как-нибудь на досуге. Eddy_Em(29 знак., 23.02.2026 00:53, ссылка)
- Пришла беда, откуда не ждали. Чистил диск, снёс Акробата. Пытался
переустановить, переустановил. А он при запуске жалуется на
отсутствие api-ms-win-core_winrt0.dll Я даже не знаю, где он лежать
должен - Kpoк(20.02.2026 19:13, dao, полностью)
- Вспомнил, было тут в конце 2024 обсуждение вопроса ЫЫyкпy(194 знак., 21.02.2026 12:00, ссылка)
- Foxitreader 4.3 идет на любой некроте (в том числе и win98),
занимает <30 Мб и читает любые даташиты Boвa(66 знак., 21.02.2026 11:34, ссылка)
- Wondershare PDFelement быстрый удобный. - jlm(21.02.2026 11:22)
- Лет 15 не пользуюсь акробатом. Есть куча альтернатив обычных и
оренсоурс. Читают любые защищённые документы, дают копировать
закрытые и куча еще всего. Как правило все портейбл . Акробат в
топку . Яндекс/гугл поможет - Driver_gv(20.02.2026 20:03)
- С человеками конечно приятнее общаться. Но если нужен результат
узкоспециализированный, то у болвана можно поинтересоваться. POV(1 знак., 20.02.2026 19:20, картинка)
- А зачем он нужен, если не секрет? - SciFi(20.02.2026 19:19)
- Винда семерка небось? MSVC переустановить не пробовали? reZident(1 знак., 20.02.2026 19:17, ссылка)
- Существуют ли какие-то стандартные, описанные требования к
разработке встроенного реалтайм софта, ориентированного на
независимость от применяемого контроллера? Ну естественно в
определенном круге контроллеров - с запасом памяти, ног, наличием
аппаратных ресурсов. Поясню - хочется иметь софт который легко
перевести на отеч. аналог если он появится. Например иметь проект
на CH32H417 или любой его функциональный аналог. Мб есть какие-то
стандартные подходы? - General(15.02.2026 09:20, dao, полностью)
- Здравствуйте, где взять отладочную плату чтобы попробовать
контроллер CH32H417 ? Глянул на Aliexpress, Ozon - не нашел. - EmbedProg(19.02.2026 18:35,
)
- Не вам ли я отвечал неделю назад? Toчкa oпopы(1 знак., 19.02.2026 21:44, ссылка)
- Месяц назад народ с покупал на али, смотрел, недорого было, но все
кончилось уже, скупили. Теперь ждать или в этой конфе спросить, в
ней есть те, кто таскает сами чипы с Китая. Andreas(1 знак., 19.02.2026 18:55, ссылка)
- Возможно их в РФ не поставляют. Если прикинуться немцем и поискать
на глобальном Алике, то например вот такую CH32H417 USB3.0
evaluation board находит. reZident(55 знак., 19.02.2026 18:46, ссылка, картинка)
- Я бы предложил Zephyr RTOS, аппаратная составляющая описывается
через devicetree. В том числе поддерживается и многоядерность. dxWAk(1 знак., 16.02.2026 08:56, ссылка, +2)
- Конечно существует. Более того - уже много лет успешно применяется.
Называется "Ардуино". - vpv.vpv(16.02.2026 06:47)
- ХЗ нащёт требований, но я делаю так... POV(441 знак., 15.02.2026 21:38, ссылка, картинка)
- Серебряной пули не существует. Отечественный аналог - значит
кривоватая переферия и нестандартное (даже RISС-V) ядро и с этим
придется разбираться. А так дорога протоптана: HAL ->
BSP-> RTOS -> OS (Linux). Городить для одного себя не
имеет особого смысла, а в небольшой команде за счет разделения
труда может получиться автоматичестки - кто-то занимается
Low-level, кто-то UI и т.д. - Chip_n_Go_24(15.02.2026 14:28,
)
- Бывший коллега был очень не ленивым человеком и строил все свои
проекты на разных микроконтроллерах на основе собственноручно
написанного единого уровня абстракции, библиотеки которого к тому
же были общими для всех его проектов и не имели специфичных для
проекта отдельных версий. И к ПЛИС у него был такой же подход.
Только что документацию на свои библиотеки не написал. - AlexG(15.02.2026 13:54)
- "Как я пришел к Ардуино")) - Peкoмeндyю(15.02.2026 11:36,
)
- Hardware Abstraction Layer (HAL) HAL(178 знак., 15.02.2026 09:25,
, ссылка)
- А это применимо к RISC-V? Где границы? Мб накладные расходы удвоят
требования? - General(15.02.2026 09:33)
- Я бы попробовал такие условия разработчикам поставить: Nikolay_Po(2258 знак., 15.02.2026 17:48, +1)
- в какой-то степени дисциплинирует предкомпиляция этого "подобия
HAL" в библиотеку - Vit(20.02.2026 02:20)
- В качестве проверки, что оно, хотя бы, компилируется? Ну и в
качестве пруфа: вот, смотрите, берём мою библиотеку, подключаем...
Видите! Работает! А то, что вы там с исходным кодом натворили, с
версией, с параметрами компилятора - это уже ваши проблемы. Выходит
так? Nikolay_Po(671 знак., 20.02.2026 10:29)
- Спасибо ОЧЕНЬ полезно - General(19.02.2026 20:42)
- HAL это просто результат проектирования "сверху вниз" (которое типа
догма программирования). По нормальному, весь прикладной код и так
от железа независим и опирается на библиотеки, в которых "замкнуто"
все аппаратно-зависимое. Cкpипaч(252 знак., 15.02.2026 10:34)
- А какие-то писаные стандарты есть? Смысл понятен, писать техзадание
не хочется. Хочется предъявить готовый документ, продуманный и
непротиворечивый. - General(15.02.2026 10:37)
- Проблема в том, что расположение и количество границ между слоями
ПО зависит от функциональности ПО и типов контроллеров. Мы сделали
универсальный проект для CM4 80 МГц и CM0 24 МГц, но без костылей
не обошлось. В результате свернули нахрен, это можно сопровождать
только за большие деньги. - VLLV(15.02.2026 13:47)
- Ну хоть намекни -в чем костыли, приведи пример. Я говорю про
аналогичные контроллеры с одной архитектурой и составом периферии.
Понятно что есть отличия в реализации периферии, так поэтому HAL
для каждого свой. - General(15.02.2026 13:54)
- Не надо делать HAL чрезмерно низкоуровневым, а учитывать модель
использования. Боюсь, что любой готовый стандарт (if any) будет
развесистой клюквой, которой на практике невозможно будет
соответствовать полностью, но зато грабли из каждого угла будут
выпадать. Плохой пример - STM HAL: 100500 флажков на каждый чих, но
при этом полной совместимости все равно нет даже между разными
камнями одного производителя. Короче говоря, самое главное
правильно установить границу между LightElf(227 знак., 15.02.2026 19:31 - 19:48)
- 1. Банальная поддержка УАРТ для RS485. В одном контроллере есть
прерывание по пустому регистру сдвига, в другом нет, нужно таймер
задействовать. 2. Переход в энергосберегающий режим одному
контроллеру пофиг, что на входе пробуждения, он на фронт реагирует,
а другой не заснёт, если на входе пробуждения не тот уровень. Тут
не просто ПО, тут еще и схемотехника завязана. А в схемотехнике
банальный детектор питания, пока сохранялись, он опять дернулся и
прибор не уснул, или не VLLV(296 знак., 15.02.2026 14:32)
- Насколько я понимаю, библиотеки ARM`ов и есть такого рода стандарт? - Cкpипaч(15.02.2026 10:41)
- Стандарты мне неизвестны. Видел проекты, в которых HAL
предоставлялся "заказчиком" и в ТЗ было прописано что все и любые
обращения к железу должны выполнятся только через него. - Cкpипaч(15.02.2026 10:40)
- Вопрос, в первую очередь, к Эдуадру Емельянову. Есть у меня
виртуальная машинка, кроме бута, в ней всё - на
BTSFS BTRFS. Какой способ, какой пакет, какие команды порекомендуете для
дедупликации файлов? Nikolay_Po(298 знак., 16.02.2026 23:37 - 17.02.2026 08:09, dao, полностью)
- а OpenZFS не подходит? Vit(1 знак., 17.02.2026 12:19, ссылка)
- И ещё: чтобы лучше сжимался образ виртуалки при бэкапе, нужно,
остановив оную, при помощи dd забить все свободное место нулями.
Потом удалить этот файл, и можно жать. - Eddy_Em(17.02.2026 08:25)
- Не, я делаю удобнее. У оркаловского ВиртуалБокса, есть хитрая
поддержка TRIM. Я в госте, на BTRFS, даю команду fsttim -a. И
система виртуализации, все свободные блоки размером, кратным
мегабайта, просто освобождает из образа .vdi. Да, сам файл образа
становится фрагментированым, дырявым, но реально уменьшается в
размере. А чтобы процесс был максимально эффективным, перед
триммингом, делаю дефрагментацию и балансировку. - Nikolay_Po(17.02.2026 12:43)
- Месье знает толк в троллинге) Судя по указанию типа фс) - ant3333(17.02.2026 01:54,
)
- Ну, прямо так официально… Eddy_Em(275 знак., 17.02.2026 00:05, ссылка)
- Поделитесь пожалуйста информацией про построение
высоконадежных/отказоустойчивых систем [на микроконтроллере]? Т.е.
когда разработчик подразумевает и учитывает, что среда исполнения
может быть не надежна. Типа критичные данные хранятся в нескольких
копиях, всё постоянно перепроверяется, проверяется корректность
работы блоков микроконтроллера и т д. Как-то давно уже слегка
затрагивали тему: - может кто подскажет ключевые слова для поиска
информации и упомянутого там AN ? pavel2000(10 знак., 09.02.2026 18:27, dao, ссылка, ссылка, полностью)
- Тут даже тэг такой есть. Тэгнул тему, смотрите связанные справа. - Toчкa oпopы(19.02.2026 11:51)
- Ключевые слова Functional Safety (FuSa). Гляньте материал по ссылке
(оно старое, но дает представление). Оно как бэ не только про
микроконтроллер, но и про систему. Если FMEA анализ своей
схемотехники вы можете провести и увеличить надежность переработкой
схемы, то для МК общего назначения - уже нет, но можете покрыть ПО
тестами и уйти в безопасный режим при обнаружении ошибки.
Библиотеки тестирования (Class B) обычно доступны у разных вендоров
(и даже у Китайцев). Под НДА Илья(198 знак., 12.02.2026 17:53, ссылка, ссылка)
- Зависит от того ездит-плавает-ныряет-летает ваше устройство и
сколько человек умрет в случае его отказа. Для народно-любимого STM
можно начать отсюда []. Если есть намерения это все продавать, то
сертификация по словам одного знакомого требует в 2-3 раза больше
усилий чем разработка. Он себе заодно язву на нервной почве
заработал... NeoPower________(1 знак., 10.02.2026 19:11, ссылка)
- делал прогу в которой главный цикл задавался через железный ресет
мк - vvv(10.02.2026 11:48,
, +1)
- Принцип Fail Fast, Restart Quickly ? bodis(1 знак., 10.02.2026 10:56, ссылка)
- Такая старинная методичка. Toчкa oпopы(263 знак., 09.02.2026 22:02, ссылка)
- Глянь на кучу материалов для Hercules Safety MCU от TI, оттуда
можно начать понимание. - VVB(09.02.2026 20:57)
- как я мечтал о такой прошивке для себя! Но до чего я ленив.... - Лaгyнoв(09.02.2026 20:40)
- Видел как-то плату вычислительного модуля импортного ПЛК для
ответственных применений. _Илья(536 знак., 09.02.2026 19:29)
- Отказоустойчивость ПЛК - это отдельная олимпиада. Есть стандарты и
уровни безопасности типа SIL или AK bodis(26 знак., 10.02.2026 10:05, ссылка)
- Я ради любопытства/просвещения изучаю прошивки вот таких устройств.
Хотелось бы не только "снизу" это изучить, но и "сверху". Грубо
говоря, в общих чертах понятно, что происходит на уровне маш.кода,
но хотелось бы также понять, как подобное изображают на С.
Например, я вижу что переменная одновременно хранится в трех
адресах, раскиданных по адресному пространству - наверное это не
совсем вручную распределяют? - pavel2000(09.02.2026 20:18)
- Не беда. Достаточно залить туда одинаковые прошивки, и они
одновременно споткнутся на одном и том же глюке. - SciFi(09.02.2026 19:37)
- Это если глюк заложен в прошивку. А если глюком является
"залипание" бита в ячейке памяти или на шине - т.е дефект/сбой
чипа? Программа должна это безопасно обработать. Такой подход
кладут в основу написания кода. - pavel2000(09.02.2026 20:22)
- Сначала надо определиться со списком угроз, потом думать как
минимизировать вероятность ущерба, исходя из имеющихся
возможностей. Универсального рецепта я думаю что нет. В простейшем
случае ограничиваются CRC флэша. Более продвинутые добавляют
контроль осцилляторов. Еще добавляют контроль ошибочных состояний
(туда попадают и аппаратные и алгоритмические ошибки). А вообще
список возможных угроз огромен, даже не выходя за границы м/к. Еще
есть внешняя схема, источники питания, AlexBi(80 знак., 10.02.2026 08:39)
- +1. Я бы даже сказал, оценить разные риски количественно. Пока ни одной цифры не было, как обычно. Так-то легко можно
направить все свои усилия на борьбу с самым маленьким риском просто
потому, что это прикольно. Условно, боролись со сбойным железом, а
в итоге заглючил софт, написанный мизинцем левой ноги. - SciFi(10.02.2026 08:45)
- Полагаю цифр нет и не может быть, т.к. они индивидуальны для
каждого изделия и появляются только после набора статистики.
Поэтому борьба с глюками плохо поддается количественной оценке.
Известна только уязвимость флэша, и та без цифр. Все остальное
плотно покрыто мраком тайны. AlexBi(147 знак., 10.02.2026 09:26)
- Цифры есть. Для МК, как я понимаю, они берутся как % количества
гейтов конкретной периферии, ядра, памяти и пр. Условно, есть FIT
конкретного МК, АЦП занимает 5%, то FIT для АЦП будет 5% от общего
(может не совсем так и у производителя есть методика расчета, но
она есть). Соответственно, тест АЦП может выявить проблему АЦП и
"программа примет надлежащие меры". Покрыв тестави критические для
безопасности блоки можно увеличить метрику надежности системы.
Цифры для FuSa-ready Илья(246 знак., 12.02.2026 18:09)
- "Цифр нет" ... "на порядок". Это цифра 10 вообще-то. Уже хорошее
начало. - SciFi(10.02.2026 09:42, +1)
- Хабарка. Запуск ядра Linux вообще без rootfs (даже без initrd!).
Это позволяет использовать ядро как обычную программу и
реализовывать прямо внутри него свои функции. bodis(1 знак., 17.02.2026 10:08, dao, ссылка, полностью)
- В старину линукс грузился без этих ваших initrd. А если вам
нравится тетрис, его можно запускать до загрузчика линукса
>>> SciFi(1 знак., 17.02.2026 10:36, ссылка)
- "запустиь linux" до загрузчика linux - эка невиаль :) эко удивили
:) - господа форточники, а посмотрите внимательно кто вам, мои
дражайшие, EFI перед загрузкой вашего масдая педалит ? да и ваще
еще раннее... кто вам маму подымает еще когда процессор даже не
очухался по питанию? ну уж если разговор пошел - на stm32 можно
специфически собрать ядро и запустить. защищенная режим памяти
будет типа эмулироватся. - klen(18.02.2026 12:39)
- невидаль - вставить один переход с фиксированного адреса на точку
входа. но нет - нужно свеженькую версию граба. там хоть картинку из
Doom ностальгическую подложить. хоть игру и подтянули через
лохматое количество лет... Vit(1 знак., 19.02.2026 08:49, ссылка)
- Это все понятно. У EFI очень специфичное применение, как и
аппаратно привязанные ядра. Здесь же спектр применения значительно
шире. Например - некий универсальный модуль (ПК без HDD), воткнул в
USB флешку с линуксом на Optane, тебе загрузился каталог c
документацией в pdf/djvu, почитал, что надо, вынул флешку и
выключил ПК. Другой человек пришел, вставил свою флешку, и вот у
него уже - осцилограф. Сейчас ПК в основном так и используется, для
1-2 задач. - bodis(18.02.2026 14:47)
- Это другое. MSI баловался этим задолго до bodis(1 знак., 17.02.2026 13:02, картинка)
- stm32h7rxx_7sxx: сделал прошивку, поддерживающую этот
микроконтроллер для отладчика BMP, который даже из транка еще не
поддерживает этих зверьков. klen(2151 знак., 18.02.2026 12:44, dao, ссылка, картинка, полностью, +1)
- Глупый вопрос: а возможно ли через классический CDC (т.е. без
vendor-запросов) передать 9-битные сообщения? То бишь 8 бит с
четностью. Eddy_Em(98 знак., 14.02.2026 23:07, dao, полностью)
- Обсуждаем такую тему. Вот есть задача freertos, она что-то делает
(встроенный веб-сервер) для буферов выделяет себе динамическую
память средствами ОС. Я так понимаю, что если было бы статическое
выделение, то в случае зависания по любой причине мы могли бы
удалить задачу и создать заново, не трогая другие задачи (очень
важно сохранить технологический процесс). При динамическом
выделении это невозможно? (промпт - нужность динамического
выделения памяти обсуждать не надо). - ЖивyчecтьПO(13.02.2026 06:08,
, dao, полностью)