- 51 живее всех чивых! [N76E003] - $0.25 на Nuvoton Direct -> - Evgeny_CD(22.04.2018 19:12, MCU, ссылка, полностью)
- свежак KGP для gd32vf103, хост linux64 klen(667 знак., 02.02.2020 20:18, MCU, полностью)
- FT232H, SPI-режим, Python-библиотека pyftdi maleon(481 знак., 30.01.2020 01:42 - 21:40, MCU, полностью)
- свежак KGP для gd32vf103, хост linux64 klen(455 знак., 19.01.2020 16:51, MCU, полностью)
- Писал три месяца проект, писал.. тот внезапно перестал работать.... POV_(208 знак., 06.12.2019 09:42, , MCU, полностью)
- В функции RxTx(554 знак., 08.12.2019 00:29)
- Что за ересь?! С чего бы у меня был использован один и тот же буфер?.. POV_(70 знак., 08.12.2019 11:49, )
- "buffer у тебя глобальная переменная" - Где? - VLLV(08.12.2019 08:23)
- Беда, коль пироги начнет печи сапожник, Ruslan(290 знак., 08.12.2019 07:31)
- спасибо! ТС так и вылечил -> - Evgeny_CD(08.12.2019 00:46, ссылка)
- Мне показалось он "вылечил", а сделал перестановку кроватей. ;-) - RxTx(08.12.2019 00:56)
- Мне кажется, что суть этого важного глюка до нас еще толком не дошла. Evgeny_CD(82 знак., 08.12.2019 01:51)
- "Важный глюк" - фантазия. "Многопоточность может случиться в однопоточной системе" - заблужение. "Очень поучительно" - фантазия. Молодец, возьми с полки пирожок. - SciFi(08.12.2019 11:20)
- Нет ли тут интересного... POV_(73 знак., 09.12.2019 11:53, )
- Вызов вложенной функции - всего лишь несколько байт стека. - VLLV(09.12.2019 12:16)
- А вызов одной и той же функции в иерархии вызовов несколько раз - многопоточность в однопоточном приложении. И если эта функция не реентерабельна, то вылет. - Evgeny_CD(09.12.2019 14:12)
- Ну ты же понял что там происходит. sprintf() ожидает что её %s параметр (его char* буфер) имеет ожидаемую ей длину. RxTx(655 знак., 09.12.2019 16:10)
- Вы все обкуренные и не лечитесь. Невозможно устроить рекурсивный вызов sprintf(). По буквам: николай, елена, владимир, олег, зинаида, михаил, ольга, жозефина, нина, оксана. Как этот простой факт ускользает от здешней публики - для меня загадка. - SciFi(09.12.2019 14:17)
- попробуйте выровнять буфер на 8 байт(aligned(8)). Было что то подобное. - Mikla(06.12.2019 17:46)
- Когда я вижу без ошибок написанную нереентрантную функцию, на которую жалуются "что-то странно она себя ведет", то сразу возникает вопрос: откуда она у тебя вызывается? Если из разных потоков и обработчиков - то буратино найден :-) - il-2(06.12.2019 14:30)
- Может, не в тему. Всегда (если в библиотеке есть) вместо sprintf использую snprintf. От переполнений стека, правда, это не спасает. - Сидоргек(06.12.2019 11:26)
- sprintf может валить прогу, если 1) аргументы не соответствуют строке формата (в частности опасно использование "%n"), 2) нижележащие функции, через которые printf (без s) печатает, вызывают ошибку, 3) если это sprintf и переполняется буфер... fk0(2051 знак., 06.12.2019 10:50)
- Зачетно , местами гениально! - PlainUser(09.12.2019 15:25)
- +100500 за valgrind. При компиляции в режиме отладки утилита показывает стек вызовов с именами функций и номерами строк. Уйму блох отловил этим полезным инструментом. - =AlexD=(06.12.2019 11:58)
- Варнинги проверял, snprintf пробовал, строку подставлял фиксированную без параметров. Валится всегда в одном и том же месте. Ниже я описал где... POV_(23 знак., 06.12.2019 11:41, )
- Спасибо! Душевно. - Evgeny_CD(06.12.2019 11:06)
- Вдогонку, в embedded ещё встречаются проблемы с распечаткой чисел с плавающей точкой -- в процессоре может не быть fpu, а в библиотеке используется, или наоборот и разный ABI (call convention), если библиотеки какие-то экзотические, то могут плохо fk0(34 знак., 06.12.2019 10:54)
- Опытные товарищи берут в зубы отладчик и ищут косяк. - SciFi(06.12.2019 09:46)
- Так оно уходит в никуда при пошаговой работе. Соседние строчки с тем же sprintf норм работают. - POV_(06.12.2019 09:49, )
- Чехарда в адресной арифметике ? К примеру: Есть массив из 10 элементов, а делается запись в 11-ый. Результат: затёрта память в соседней переменой. "Чудный" результат. Был обнаружен при смене компилятора (или по другому выполнял линковку). - Zoro(06.12.2019 10:42)
- Не, такого что нет. А вот что есть... POV_(228 знак., 06.12.2019 11:39, )
- default может добавить? в Винавр помогало。 - Symbions(06.12.2019 13:24)
- В дизассемблере по шагам пройдись. Указатель стека проверь. - SciFi(06.12.2019 11:48)
- В общем сам "дурак", дал шанс компилятору при оптимизации повертеть меня на херу... POV_(534 знак., 06.12.2019 15:11, )
- Основной вопрос в этом коде - это где хранится результат внутренних sprintf после возвращения из функции psu_GetField. Ведь переменным bb присваиваются указатели на некий буфер. Если это глобальный буфер, то последовательные вызовы psu_GetField PSP(148 знак., 08.12.2019 20:28)
- Проблема при вложенности функций указывает в первую очередь на проблему со стеком. - VLLV(07.12.2019 05:00)
- А внутри psu_GetField, когда вызывается sprintf, он печатает случайно не в ту же статическую переменную, в которую печать происходит в той функции, где глюки были обнаружены? Тогда чего же ты хочешь? snprintf начинает читать из буфера и fk0(771 знак., 06.12.2019 20:21)
- есть у меня подозрения, что либа со спринтфом настолько "однопоточная", что там даже просто для sprintfa используется какая-нить static переменная, в которой, например, хранится счётчик выведенных байт. в итоге при вложении спринтфов вложеннные Mahagam(128 знак., 07.12.2019 12:36)
- Нет, там массив "строк". А именно 5 штук. И вызывается не более 3 за раз... POV_(115 знак., 07.12.2019 02:05, )
- Но почему при присваивании возвращаемых psu_GetField значений временным переменным эффект пропал? Хотя вопрос, откуда psu_GetField берёт буфер для sprintf, весьма уместен. - йцукен(06.12.2019 22:07)
- Может и туплю, но как именно это объясняет глюки? - SciFi(06.12.2019 15:19)
- Это уж в понедельник. Пройдусь по асму. - POV_(06.12.2019 13:34, )
- а мне тут говорили, как крут gcc, все предупреждения. Ни фига он не умеет против погроммиста) - VLLV(06.12.2019 11:55)
- Придется, но ассемблер егойный не знаю, читать придется. - POV_(06.12.2019 11:54, )
- Это частный случай "неопределённого поведения". В таких случаях gcc временами делает такое, что глаза на лоб лезут. А что? Имеет право. - SciFi(06.12.2019 10:48)
- Такая ерунда не может остановить опытных товарищей. - SciFi(06.12.2019 09:52)
- Стек кончился? - ASDFS(06.12.2019 09:52)
- По мотивам моего поста... Атмега самый крутой микроконтроллер ;) Все-таки пришлось мне вплотную поковырять эту хрень. Поделие -спортивное табло для волейбола. Сверху бегущая строка на ~20 символов, ниже два ряда 7-сегментников + различные значки. Гудвин(2176 знак., 17.11.2019 16:21 - 16:55, MCU, ссылка, полностью)
- «Стековые компьютеры - новая волна» (1989). Процессоры, которым не нужны счётчики команд и инструкции условных переходов, способные вызвать обработчик прерывания за пару машинных циклов и возвращающиеся из подпрограмм, не тратя процессорного teap0t(38 знак., 26.11.2019 21:29, MCU, ссылка, ссылка, полностью)
- Коллеги подскажи, если в составе изделия входит микроконтроллер, то по логике в кд для производства должна входить прошивка. Вопрос – есть ли какие указания в госте на состав документации для производства такого рода продукции. Ситуации в том, что garry_(379 знак., 12.12.2019 13:10, MCU, полностью)
- LСDIСОNы выросли до версии х.3.77 Иваныч(303 знак., 17.10.2006 18:51, MCU, полностью)
- Прошу помощь: Для ускорения работы решил использовать ардуиновские библы с готовыми стеками, но столкнулся с проблемой - Использую несколько устройств, работающих по I2C шине, в частности контроллер светодиодной матрицы IS31FL3137 и порт Make_Pic(820 знак., 07.12.2019 08:54, MCU, полностью)
- A ещё хочется найти программиста турникетов вот такого типа, как на картинке, и переломать руки. Чтоб больше ничего не программировал. Ибо если в метро, например, зажигается зелёная лампочка, то можешь идти (и дверка, если закрывалась, быстро fk0(763 знак., 04.12.2019 14:19, MCU, картинка, полностью)
- Турникеты говорите..."Нельзя сделать понятный среднему человеку интерфейс на текстовом терминале, потому что понятность интерфейса — это и разрешение монитора, и приятные картинки, которые не пугают мозг..." - Chum_A(06.12.2019 11:56, ссылка)
- Ха! Я уже ж рассказывал про лифты в одном посёлке, которые через инет управлялись... - Звероящер(06.12.2019 10:02)
- На ардуино легко можно и не такое достигнуть. - PlainUser(05.12.2019 07:29)
- Откуда такая ненависть к rtos? - _Constantin24(05.12.2019 07:20)
- Ардуино. Может перекрестить перед проходом, были случаи - помогает. - ILYAUL(04.12.2019 22:09)
- всех погромистов искать - патронов не хватит.. - LordN(04.12.2019 18:20)
- Вероятно турникет не хранит базу карточек у себя, а запрашивает где-то (в облаке?) разрешение. Что бы не тормозить процесс, предполагая что ходить будут в основном те, у кого разрешение есть, калитку открывает сразу, как прочитает карту. Но потом AlexBi(112 знак., 04.12.2019 18:07)
- Ха. У нас такое же говно и точно так же глючит :) Зато если идти паровозиком достаточно плотно, то максимум пикнуть успевает. А еще можно пройдя стеклянные ворота прикрыть рукой фото-линейку до ворот и пропустить кучу коллег, чтоб не мучились с Shatun_(37 знак., 04.12.2019 16:52)
- Скорее всего, там просто временную задержку слишком короткой поставили, чтобы два челоека по одной карте пройти не могли. А RTOS тут ни при чем. - Ксения(04.12.2019 16:20)
- RTOS виновата, да. В каком-то древнем амерском кино, старичок-автомеханик во всём, что ему не нравилось, винил японцев. И метрическую резьбу у него придумали японцы, и электронное зажигание, и т.п. - Сидоргек(04.12.2019 16:13)
- а причем тут ртос? кривизна рук мало зависит от инструмента - AVF(04.12.2019 15:29)
- Это где такие стоят? Друг интересуется... :) - LightElf(04.12.2019 15:15)
- Может разработчику не заплатили? ;-) - misyachniy(04.12.2019 15:11)
- Подносишь карточку - загорается зелёная лампочка - включается питание распбери пай - загружается луникс - лезет за апдейтами вобла ко... Там много чего можно придумать. SciFi(461 знак., 04.12.2019 14:22 - 14:27)
- Навеяно топиком -> Собственно, что для вас значит [embedded OS] в контексте МК? Почему вы используете/не используете (вытесняющую, кооперативную, main loop)? Dingo(1251 знак., 20.09.2019 05:40 - 06:42, MCU, ссылка, полностью)
- "В контексте МК" никаких задач не должно быть! :) Контроллер рассчитан на обслуживание периферии, а потому никаких других событий, помимо тех, что происходят на периферии, в его внутренней среде нет. А такие события, как правило, способны вызывать Ксения(2322 знак., 20.09.2019 15:15)
- Вот видишь, опять все уперлось в то что каждый норовит свои конкретные задачи натянуть даже не на глобус, а на всю Вселенную. Осознать что кто-то в этой Вселенной может заниматься чем то иным чем он сегодня ну никак. И все должны мацать только ту Codavr(178 знак., 20.09.2019 12:54 - 13:21)
- мое персональное виденье. ОС в любом проекте. Если для камня нет оси в топку этот камень. abivan(1730 знак., 20.09.2019 11:15 - 13:02)
- Все же проектировать ПО лучше "сверху-вниз". Скрипач(632 знак., 20.09.2019 09:24)
- Quantum Leaps предлагает другие подходы к построению системы. VVB_(248 знак., 20.09.2019 08:58)
- Сейчас у меня и в дружественной конторе делаются два
одинаковых похожих проекта на одинаковой элементной базе, наш - на main loop, их на RTOS. Да, есть несколько задач, которые под RTOS написать гораздо проще, но лучше я сделаю автомат VLLV(156 знак., 20.09.2019 07:54)
- Если бы оси не жрали столько ресурсов, я бы их в каждый проект пихал. Но к моему глубокому сожалению это не так. Особенно оперативу жалко. - Codavr(20.09.2019 05:47)
- Silabs прикупил Micrium (uCOS) - General(04.10.2016 23:05, MCU, ссылка, полностью)
- и сколько ж в итоге фирм по компонентам останется в мире? :-) - Лагунов(05.12.2019 10:52)
- Ну вот, "дело всей жизни" Jean J. Labrosse завершило свой жизненный цикл. Однако неожиданно долго они смогли прожить как самостояельная фирма. - Evgeny_CD(04.10.2016 23:35, ссылка)
- Всему есть предел. В среду свою интегрируют. Дай бог, не пропадёт. - General(04.10.2016 23:53)
- Да ладно, RTOS - это банальщина. Опять же, а вдруг чувак на пенсии хочет орхидеи выращивать? Короче, я бы не парился. - SciFi(04.10.2016 23:40)
- Я не парюсь, я констатирую. Просто интересно, как они так долго продержались на фоне изобилия вполне неплохих RTOS, в том числе бесплатных. - Evgeny_CD(04.10.2016 23:47)
- А напомните кто в фоне может сравниться с микриумом? Что то ничего в голову не приходит. Я полагаю, что вы подразумеваете не поделки типа фриртоса или прости господи стм-овкий говнокод. - ig_z(05.10.2016 00:35)
- Их есть у нас! -> --> Evgeny_CD(85 знак., 05.10.2016 17:31, ссылка, ссылка)
- [ ChibiOS ] - кто-нить щупал? Да, не
FreeRTOS майстрим , но многие тонкости весьма интересны. Dingo(1009 знак., 05.12.2019 09:32 - 12:46)
- Потому и продержались, что на фоне uCOS подавляющее число остальных из этого гигантского списка были хуже. Это же просто. - Codavr(05.12.2019 09:44)
- Ну вы и сравнили! Микриум это самодостаточная экосистема, начиная с ртос, мидлвари и драйверов на периферию и заканчивая отладочными мониторами, логерами, плагинами к отладчикам и прочими тулзами, тут я слегка не в теме. Если хотите затянуть ig_z(50 знак., 05.10.2016 21:56)
- Они, конечно, хотят валить всё в кучу. Переключалку задач, модель периферии и дрова, стеки усб, сетки, гуй. Некоторые даже убивают отличные наработки (слияние фрискаликов и nxp, смерть mqx). Амбиции эффективных манагеров сталкиваются с технической SciFi(19 знак., 04.10.2016 23:51)
- Название хорошее - Юкос :) - Ксения(04.10.2016 23:24)
- Интересно... будут ли они продолжать продавать всем... к примеру, Analog Devices... - sav6622(04.10.2016 23:19)
- Computer Organization and Design RISC-V edition. просто бесподобны мануаЛЬ! klen(871 знак., 30.11.2019 18:41, MCU, ссылка, ссылка, полностью)
- Подскажите насколько реально реализовать такую задачу у кого есть опыт. Есть микроконтролер общего пользования подключенный к сети ethernet через мост. К нему подключаемся через порт USB и в нем настраиваем почту (вообще не представляю что туда 60i90(188 знак., 27.11.2019 16:45, , MCU, полностью)